@aya-flights/ngx-goox-lib 2.19.63 → 2.19.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aya-flights-ngx-goox-lib.mjs","sources":["../../../projects/ngx-goox-lib/src/lib/ColumnDef.ts","../../../projects/ngx-goox-lib/src/lib/TimeFrame.ts","../../../projects/ngx-goox-lib/src/lib/TimeDataPoint.ts","../../../projects/ngx-goox-lib/src/lib/TimeSeries.ts","../../../projects/ngx-goox-lib/src/lib/BaseEntity.ts","../../../projects/ngx-goox-lib/src/lib/BaseEntityEx.ts","../../../projects/ngx-goox-lib/src/lib/Tuple.ts","../../../projects/ngx-goox-lib/src/lib/AirplaneValidationFlag.ts","../../../projects/ngx-goox-lib/src/lib/FlightPurposeCode.ts","../../../projects/ngx-goox-lib/src/lib/AirplaneStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/CampaignTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/LicenseTypeFlag.ts","../../../projects/ngx-goox-lib/src/lib/MaintenanceActionCode.ts","../../../projects/ngx-goox-lib/src/lib/ModuleCode.ts","../../../projects/ngx-goox-lib/src/lib/ValidationFlag.ts","../../../projects/ngx-goox-lib/src/lib/AccountStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ConfirmStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ErrorCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightClassCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/PermissionFlag.ts","../../../projects/ngx-goox-lib/src/lib/UserStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ADSBSourceFlag.ts","../../../projects/ngx-goox-lib/src/lib/BookingStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightCategoryCode.ts","../../../projects/ngx-goox-lib/src/lib/LessonTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/MessageTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/PaymentMethodCode.ts","../../../projects/ngx-goox-lib/src/lib/UserRoleFlag.ts","../../../projects/ngx-goox-lib/src/lib/UserTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/AssessmentCode.ts","../../../projects/ngx-goox-lib/src/lib/CampaignStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/CurrencyCode.ts","../../../projects/ngx-goox-lib/src/lib/InstructionTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/LessonSubjectCode.ts","../../../projects/ngx-goox-lib/src/lib/StatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FilterFlag.ts","../../../projects/ngx-goox-lib/src/lib/ADSBCategoryCode.ts","../../../projects/ngx-goox-lib/src/lib/BillingStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightStateCode.ts","../../../projects/ngx-goox-lib/src/lib/LeadStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/OperatorCode.ts","../../../projects/ngx-goox-lib/src/lib/TransactionTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/BookingTypeFlag.ts","../../../projects/ngx-goox-lib/src/lib/PriorityCode.ts","../../../projects/ngx-goox-lib/src/lib/TicketStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ADSBState.ts","../../../projects/ngx-goox-lib/src/lib/Airplane.ts","../../../projects/ngx-goox-lib/src/lib/BillingRecord.ts","../../../projects/ngx-goox-lib/src/lib/DepartureRisks.ts","../../../projects/ngx-goox-lib/src/lib/FlightTicket.ts","../../../projects/ngx-goox-lib/src/lib/BookingsFilter.ts","../../../projects/ngx-goox-lib/src/lib/Price.ts","../../../projects/ngx-goox-lib/src/lib/ContactsFilter.ts","../../../projects/ngx-goox-lib/src/lib/UsersFilter.ts","../../../projects/ngx-goox-lib/src/lib/PostFlightData.ts","../../../projects/ngx-goox-lib/src/lib/FlightPassenger.ts","../../../projects/ngx-goox-lib/src/lib/AccountsFilter.ts","../../../projects/ngx-goox-lib/src/lib/LeadsFilter.ts","../../../projects/ngx-goox-lib/src/lib/MaintenancesFilter.ts","../../../projects/ngx-goox-lib/src/lib/SyllabusFilter.ts","../../../projects/ngx-goox-lib/src/lib/FlightRisk.ts","../../../projects/ngx-goox-lib/src/lib/AuditLogFilter.ts","../../../projects/ngx-goox-lib/src/lib/CertificatesFilter.ts","../../../projects/ngx-goox-lib/src/lib/CreditsFilter.ts","../../../projects/ngx-goox-lib/src/lib/BookingPlan.ts","../../../projects/ngx-goox-lib/src/lib/FlightBilling.ts","../../../projects/ngx-goox-lib/src/lib/SpecialRisks.ts","../../../projects/ngx-goox-lib/src/lib/FlightPlan.ts","../../../projects/ngx-goox-lib/src/lib/Maintenance.ts","../../../projects/ngx-goox-lib/src/lib/LoginParams.ts","../../../projects/ngx-goox-lib/src/lib/Account.ts","../../../projects/ngx-goox-lib/src/lib/AuditLog.ts","../../../projects/ngx-goox-lib/src/lib/Flight.ts","../../../projects/ngx-goox-lib/src/lib/RiskAssessment.ts","../../../projects/ngx-goox-lib/src/lib/IntKeyValue.ts","../../../projects/ngx-goox-lib/src/lib/ReFuel.ts","../../../projects/ngx-goox-lib/src/lib/Lesson.ts","../../../projects/ngx-goox-lib/src/lib/Billing.ts","../../../projects/ngx-goox-lib/src/lib/Mitigation.ts","../../../projects/ngx-goox-lib/src/lib/Permission.ts","../../../projects/ngx-goox-lib/src/lib/TOLData.ts","../../../projects/ngx-goox-lib/src/lib/PilotQualificationsRisks.ts","../../../projects/ngx-goox-lib/src/lib/DestinationRisks.ts","../../../projects/ngx-goox-lib/src/lib/Lead.ts","../../../projects/ngx-goox-lib/src/lib/TokenData.ts","../../../projects/ngx-goox-lib/src/lib/Engine.ts","../../../projects/ngx-goox-lib/src/lib/TripRisks.ts","../../../projects/ngx-goox-lib/src/lib/LeadAction.ts","../../../projects/ngx-goox-lib/src/lib/LogBookRecord.ts","../../../projects/ngx-goox-lib/src/lib/PreFlightData.ts","../../../projects/ngx-goox-lib/src/lib/DocumentRevision.ts","../../../projects/ngx-goox-lib/src/lib/LookupGroup.ts","../../../projects/ngx-goox-lib/src/lib/SystemMessage.ts","../../../projects/ngx-goox-lib/src/lib/Address.ts","../../../projects/ngx-goox-lib/src/lib/AnyKeyValue.ts","../../../projects/ngx-goox-lib/src/lib/FlightsFilter.ts","../../../projects/ngx-goox-lib/src/lib/PreFlightInfo.ts","../../../projects/ngx-goox-lib/src/lib/Magneto.ts","../../../projects/ngx-goox-lib/src/lib/OnBoard.ts","../../../projects/ngx-goox-lib/src/lib/User.ts","../../../projects/ngx-goox-lib/src/lib/StringKeyValue.ts","../../../projects/ngx-goox-lib/src/lib/Propeller.ts","../../../projects/ngx-goox-lib/src/lib/Contact.ts","../../../projects/ngx-goox-lib/src/lib/Document.ts","../../../projects/ngx-goox-lib/src/lib/Group.ts","../../../projects/ngx-goox-lib/src/lib/Lookup.ts","../../../projects/ngx-goox-lib/src/lib/Booking.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlot.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlots.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlotsSet.ts","../../../projects/ngx-goox-lib/src/lib/Credit.ts","../../../projects/ngx-goox-lib/src/lib/MessageConfirm.ts","../../../projects/ngx-goox-lib/src/lib/Syllabus.ts","../../../projects/ngx-goox-lib/src/lib/AirplanesFilter.ts","../../../projects/ngx-goox-lib/src/lib/Location.ts","../../../projects/ngx-goox-lib/src/lib/Campaign.ts","../../../projects/ngx-goox-lib/src/lib/WeatherRisks.ts","../../../projects/ngx-goox-lib/src/lib/SystemConfig.ts","../../../projects/ngx-goox-lib/src/lib/PostFlightInfo.ts","../../../projects/ngx-goox-lib/src/lib/Fuel.ts","../../../projects/ngx-goox-lib/src/lib/Certificate.ts","../../../projects/ngx-goox-lib/src/lib/CrewDutyDayRisks.ts","../../../projects/ngx-goox-lib/src/utils/BaseRestResponse.ts","../../../projects/ngx-goox-lib/src/utils/ActionResponse.ts","../../../projects/ngx-goox-lib/src/utils/Entities.ts","../../../projects/ngx-goox-lib/src/utils/EntityResponse.ts","../../../projects/ngx-goox-lib/src/utils/EntitiesResponse.ts","../../../projects/ngx-goox-lib/src/utils/rest-util.ts","../../../projects/ngx-goox-lib/src/utils/SimpleEntity.ts","../../../projects/ngx-goox-lib/src/config.ts","../../../projects/ngx-goox-lib/src/lib/CertificatesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyAuthEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MaintenancesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/PriceListEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/AirplanesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/DocumentsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/FlightsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/LeadsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/LookupsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SystemMessagesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/UsersEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/AccountsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/FlightTicketsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/CampaignsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/GroupsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/UserEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyBookingsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyFlightsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/BookingsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/CreditsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SyllabusEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SystemConfigsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlotsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/ContactsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SystemEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyCreditsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/AuditLogsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MessageConfirmsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/Enums.ts","../../../projects/ngx-goox-lib/src/lib/services.export.ts","../../../projects/ngx-goox-lib/src/ngx-goox-lib.module.ts","../../../projects/ngx-goox-lib/src/public-api.ts","../../../projects/ngx-goox-lib/src/aya-flights-ngx-goox-lib.ts"],"sourcesContent":["\n\n\n\nexport class ColumnDef {\n \n // Column field icon \n public icon: string;\n \n // Column field name \n public name: string;\n \n // Column field type \n public type: string;\n \n // Display format hint \n public format: string;\n \n // Sort order 0: no sort, 1: sort asc, -1 sort desc \n public sort: number;\n \n // Filter operand \n public filterOp: number;\n \n // Filter by value \n public filter: number | number[] | string | string[];\n \n constructor(icon?: string, name?: string, type?: string, format?: string, sort?: number, filterOp?: number, filter?: number | number[] | string | string[]) { \n if (icon !== undefined) { this.icon = icon; }\n if (name !== undefined) { this.name = name; }\n if (type !== undefined) { this.type = type; }\n if (format !== undefined) { this.format = format; }\n if (sort !== undefined) { this.sort = sort; }\n if (filterOp !== undefined) { this.filterOp = filterOp; }\n if (filter !== undefined) { this.filter = filter; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\nexport class TimeFrame {\n \n // From Timestamp \n public from: number;\n \n // To Timestamp \n public to: number;\n \n constructor(from?: number, to?: number) { \n if (from !== undefined) { this.from = from; }\n if (to !== undefined) { this.to = to; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// TimeDataPoint model represents a generic datapoint in time\nexport class TimeDataPoint<T> {\n \n // Datapoint Timestamp \n public timestamp: number;\n \n // Generic value \n public value: T;\n \n constructor(timestamp?: number, value?: T) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\nimport { TimeDataPoint } from '.';\n\n\n\n// TimeSeries is a set of data points over time\nexport class TimeSeries<T> {\n \n // Name of the time series \n public name: string;\n \n // Range of the series (from ... to) \n public range: TimeFrame;\n \n // Series data points \n public values: TimeDataPoint<T>[];\n \n constructor(name?: string, range?: TimeFrame, values?: TimeDataPoint<T>[]) { \n if (name !== undefined) { this.name = name; }\n if (range !== undefined) { this.range = range; }\n if (values !== undefined) { this.values = values; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Base class for all entities\nexport class BaseEntity {\n \n // Unique object Id \n public id: string;\n \n // When the object was created [Epoch milliseconds Timestamp] \n public createdOn: number;\n \n // When the object was last updated [Epoch milliseconds Timestamp] \n public updatedOn: number;\n \n constructor(id?: string, createdOn?: number, updatedOn?: number) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Extended Base class for all entities\nexport class BaseEntityEx {\n \n // Unique object Id \n public id: string;\n \n // When the object was created [Epoch milliseconds Timestamp] \n public createdOn: number;\n \n // When the object was last updated [Epoch milliseconds Timestamp] \n public updatedOn: number;\n \n // Entity status flag \n public flag: number;\n \n // List of custom properties \n public props: Map<string,object>;\n \n constructor(id?: string, createdOn?: number, updatedOn?: number, flag?: number, props?: Map<string,object>) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n if (flag !== undefined) { this.flag = flag; }\n if (props !== undefined) { this.props = props; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Tuple is a generic key-value pair\nexport class Tuple<K,T> {\n \n // Generic key \n public key: K;\n \n // Generic value \n public value: T;\n \n constructor(key?: K, value?: T) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { Tuple } from '.';\n\n\n// AirplaneValidationFlag represents combination of airplane validations\nexport enum AirplaneValidationFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Valid airworthiness (isairplanevalidairworthiness_c) [1] \n AIRWORTHINESS = 1,\n \n // Valid airplane insurance (isairplanevalidinsurance_c) [2] \n INSURANCE = 2,\n \n // Valid flight manual (isairplanevalidflightmanual_c) [4] \n FLIGHT_MANUAL = 4,\n \n // Valid radio station license (isairplanevalidradiostation_c) [8] \n RADIO_STATION = 8,\n \n // Certification Of Registration (isairplanevalidcertofregis_c)[16] \n REGISTRATION_CERT = 16,\n \n // Valid first-aid kit (isairplanevalidfirstaidkit_c) [32] \n FIRST_AID_KIT = 32,\n \n // Valid fire extinguisher (isairplanevalidfireextinguis_c) [64] \n FIRE_EXTINGUISHER = 64,\n \n // Valid operation spec (isairplanevalidoperationspec_c) [128] \n OPERATION_SPEC = 128,\n \n // Valid 337 certificate for camera hole (isairplanevalid337cameraho_c) [256] \n VALID_337_CAMERA = 256,\n \n // Valid 337 certificate for exhaust (isairplanevalid337exhaust_c) [512] \n VALID_337_EXHAUST = 512,\n \n // Valid stc camera hole (isairplanevalidstccameraho_c) [1024] \n VALID_STC_CAMERA = 1024,\n \n // Valid stc certificate for exhaust (isairplanevalidstcexhaust_c) [2048] \n VALID_STC_EXHAUST = 2048,\n \n // Valid flight logbook (isairplanevalidflightlogboo_c) [4096] \n FLIGHT_LOGBOOK = 4096,\n \n // Valid air operator certificate AOC (isairplanevalidairoperatorce_c) [8192] \n AIR_OPERATOR = 8192,\n \n // Aircraft weight certificate (isairplanevalidaircraftweigh_c) [16384] \n AIRCRAFT_WEIGHT = 16384,\n \n // Valid propeller overhaul (isairplanevalidpropellerover_c) [32768] \n PROPELLER_OVERHAUL = 32768,\n \n // Single engine overhaul (isairplanevalidsingleengineo_c) [65536] \n SINGLE_ENGINE_OVERHAUL = 65536,\n \n // Left engine overhaul (isairplanevalidleftengineove_c) [131072] \n LEFT_ENGINE_OVERHAUL = 131072,\n \n // Right engine overhaul (isairplanevalidrightengineov_c) [262144] \n RIGHT_ENGINE_OVERHAUL = 262144,\n \n // Left engine propeller overhaul (isairplanevalidleftenginepro_c) [524288] \n LEFT_PROPELLER_OVERHAUL = 524288,\n \n // Right engine propeller overhaul (isairplanevalidrightenginepr_c) [1048576] \n RIGHT_PROPELLER_OVERHAUL = 1048576,\n \n // CVFR_ATS aeronautical maps (isairplanevalidcvfr_atsaeron_c) [2097152] \n CVFR_ATS = 2097152,\n \n // Weight and Balance Form (isairplanevalidweightandbaln_c) [4194304] \n WEIGHT_BALANCE_FORM = 4194304,\n \n // Airplane checklist (isairplanevalidairplanechec_c) [8388608] \n CHECK_LIST = 8388608,\n \n // Noise Certificate (isairplanevalidnoisecertifi_c) [16777216] \n NOISE_CERT = 16777216,\n \n}\n\n// Return list of AirplaneValidationFlag values and their display names\nexport function GetAirplaneValidationFlags() : Tuple<AirplaneValidationFlag, string>[] {\n\tlet result : Tuple<AirplaneValidationFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRWORTHINESS, 'AirplaneValidationFlag.AIRWORTHINESS'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.INSURANCE, 'AirplaneValidationFlag.INSURANCE'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_MANUAL, 'AirplaneValidationFlag.FLIGHT_MANUAL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RADIO_STATION, 'AirplaneValidationFlag.RADIO_STATION'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.REGISTRATION_CERT, 'AirplaneValidationFlag.REGISTRATION_CERT'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRST_AID_KIT, 'AirplaneValidationFlag.FIRST_AID_KIT'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'AirplaneValidationFlag.FIRE_EXTINGUISHER'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.OPERATION_SPEC, 'AirplaneValidationFlag.OPERATION_SPEC'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_CAMERA, 'AirplaneValidationFlag.VALID_337_CAMERA'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_EXHAUST, 'AirplaneValidationFlag.VALID_337_EXHAUST'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_CAMERA, 'AirplaneValidationFlag.VALID_STC_CAMERA'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_EXHAUST, 'AirplaneValidationFlag.VALID_STC_EXHAUST'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'AirplaneValidationFlag.FLIGHT_LOGBOOK'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIR_OPERATOR, 'AirplaneValidationFlag.AIR_OPERATOR'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'AirplaneValidationFlag.AIRCRAFT_WEIGHT'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'AirplaneValidationFlag.PROPELLER_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CVFR_ATS, 'AirplaneValidationFlag.CVFR_ATS'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'AirplaneValidationFlag.WEIGHT_BALANCE_FORM'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CHECK_LIST, 'AirplaneValidationFlag.CHECK_LIST'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.NOISE_CERT, 'AirplaneValidationFlag.NOISE_CERT'))\n\t\n\n return result;\n}\n\n// Return map of AirplaneValidationFlag values and their display names\nexport function MapAirplaneValidationFlags() : Map<AirplaneValidationFlag, string> {\n let result = new Map<AirplaneValidationFlag, string>();\n\n \n\tresult.set(AirplaneValidationFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AirplaneValidationFlag.AIRWORTHINESS, 'Airworthiness');\n\t\n\tresult.set(AirplaneValidationFlag.INSURANCE, 'Insurance');\n\t\n\tresult.set(AirplaneValidationFlag.FLIGHT_MANUAL, 'Flight Manual');\n\t\n\tresult.set(AirplaneValidationFlag.RADIO_STATION, 'Radio Station');\n\t\n\tresult.set(AirplaneValidationFlag.REGISTRATION_CERT, 'Registration Cert');\n\t\n\tresult.set(AirplaneValidationFlag.FIRST_AID_KIT, 'First Aid Kit');\n\t\n\tresult.set(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'Fire Extinguisher');\n\t\n\tresult.set(AirplaneValidationFlag.OPERATION_SPEC, 'Operation Spec');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_337_CAMERA, 'Valid 337 Camera');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_337_EXHAUST, 'Valid 337 Exhaust');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_STC_CAMERA, 'Valid Stc Camera');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_STC_EXHAUST, 'Valid Stc Exhaust');\n\t\n\tresult.set(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'Flight Logbook');\n\t\n\tresult.set(AirplaneValidationFlag.AIR_OPERATOR, 'Air Operator');\n\t\n\tresult.set(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'Aircraft Weight');\n\t\n\tresult.set(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'Propeller Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'Single Engine Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'Left Engine Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'Right Engine Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'Left Propeller Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'Right Propeller Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.CVFR_ATS, 'Cvfr Ats');\n\t\n\tresult.set(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'Weight Balance Form');\n\t\n\tresult.set(AirplaneValidationFlag.CHECK_LIST, 'Check List');\n\t\n\tresult.set(AirplaneValidationFlag.NOISE_CERT, 'Noise Cert');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightPurposeCode represents a flight purpose: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightPurposeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Introductory Flight [1] \n INTRODUCTORY = 1,\n \n // Flight Instruction Lesson [2] \n INSTRUCTION = 2,\n \n // Airplane Rental Flight [3] \n RENTAL = 3,\n \n // Private Flight [4] \n PRIVATE = 4,\n \n // Vertical Photographic [5] \n VERTICAL_PHOTO = 5,\n \n // Diagonal Photographic [6] \n DIAGONAL_PHOTO = 6,\n \n // Round Flight [7] \n ROUND = 7,\n \n // Initial / Recurrent CAA Test [8] \n CAA_TEST = 8,\n \n // Transfer Flight (to transfer airplane) [9] \n TRANSFER = 9,\n \n // Commercial air taxi to transfer passengers [10] \n AIR_TAXI = 10,\n \n // Engine Running [11] \n ENGINE_RUNNING = 11,\n \n // Other purpose (elaborate on next field) [12] \n OTHER = 12,\n \n}\n\n// Return list of FlightPurposeCode values and their display names\nexport function GetFlightPurposeCodes() : Tuple<FlightPurposeCode, string>[] {\n\tlet result : Tuple<FlightPurposeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INTRODUCTORY, 'FlightPurposeCode.INTRODUCTORY'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INSTRUCTION, 'FlightPurposeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.RENTAL, 'FlightPurposeCode.RENTAL'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.PRIVATE, 'FlightPurposeCode.PRIVATE'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.VERTICAL_PHOTO, 'FlightPurposeCode.VERTICAL_PHOTO'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.DIAGONAL_PHOTO, 'FlightPurposeCode.DIAGONAL_PHOTO'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ROUND, 'FlightPurposeCode.ROUND'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.CAA_TEST, 'FlightPurposeCode.CAA_TEST'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.TRANSFER, 'FlightPurposeCode.TRANSFER'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.AIR_TAXI, 'FlightPurposeCode.AIR_TAXI'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ENGINE_RUNNING, 'FlightPurposeCode.ENGINE_RUNNING'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.OTHER, 'FlightPurposeCode.OTHER'))\n\t\n\n return result;\n}\n\n// Return map of FlightPurposeCode values and their display names\nexport function MapFlightPurposeCodes() : Map<FlightPurposeCode, string> {\n let result = new Map<FlightPurposeCode, string>();\n\n \n\tresult.set(FlightPurposeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightPurposeCode.INTRODUCTORY, 'Introductory');\n\t\n\tresult.set(FlightPurposeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(FlightPurposeCode.RENTAL, 'Rental');\n\t\n\tresult.set(FlightPurposeCode.PRIVATE, 'Private');\n\t\n\tresult.set(FlightPurposeCode.VERTICAL_PHOTO, 'Vertical Photo');\n\t\n\tresult.set(FlightPurposeCode.DIAGONAL_PHOTO, 'Diagonal Photo');\n\t\n\tresult.set(FlightPurposeCode.ROUND, 'Round');\n\t\n\tresult.set(FlightPurposeCode.CAA_TEST, 'Caa Test');\n\t\n\tresult.set(FlightPurposeCode.TRANSFER, 'Transfer');\n\t\n\tresult.set(FlightPurposeCode.AIR_TAXI, 'Air Taxi');\n\t\n\tresult.set(FlightPurposeCode.ENGINE_RUNNING, 'Engine Running');\n\t\n\tresult.set(FlightPurposeCode.OTHER, 'Other');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AirplaneStatusCode represents the airplane status: ACTIVE | INACTIVE | MAINTENANCE ...\nexport enum AirplaneStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Active airplane [1] \n ACTIVE = 1,\n \n // Airplane inactive due to maintenance [2] \n MAINTENANCE = 2,\n \n // Suspended airplane (do not show since it is no longer operated by the the company) [3] \n SUSPENDED = 3,\n \n}\n\n// Return list of AirplaneStatusCode values and their display names\nexport function GetAirplaneStatusCodes() : Tuple<AirplaneStatusCode, string>[] {\n\tlet result : Tuple<AirplaneStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.ACTIVE, 'AirplaneStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.MAINTENANCE, 'AirplaneStatusCode.MAINTENANCE'))\n\t\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.SUSPENDED, 'AirplaneStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of AirplaneStatusCode values and their display names\nexport function MapAirplaneStatusCodes() : Map<AirplaneStatusCode, string> {\n let result = new Map<AirplaneStatusCode, string>();\n\n \n\tresult.set(AirplaneStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AirplaneStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(AirplaneStatusCode.MAINTENANCE, 'Maintenance');\n\t\n\tresult.set(AirplaneStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignTypeCode represents the campaign type: WEB | EMAIL | TELESALES\nexport enum CampaignTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Web [1] \n WEB = 1,\n \n // Mail [2] \n EMAIL = 2,\n \n // Telephone Sales [3] \n TELESALES = 3,\n \n}\n\n// Return list of CampaignTypeCode values and their display names\nexport function GetCampaignTypeCodes() : Tuple<CampaignTypeCode, string>[] {\n\tlet result : Tuple<CampaignTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.WEB, 'CampaignTypeCode.WEB'))\n\t\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.EMAIL, 'CampaignTypeCode.EMAIL'))\n\t\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.TELESALES, 'CampaignTypeCode.TELESALES'))\n\t\n\n return result;\n}\n\n// Return map of CampaignTypeCode values and their display names\nexport function MapCampaignTypeCodes() : Map<CampaignTypeCode, string> {\n let result = new Map<CampaignTypeCode, string>();\n\n \n\tresult.set(CampaignTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(CampaignTypeCode.WEB, 'Web');\n\t\n\tresult.set(CampaignTypeCode.EMAIL, 'Email');\n\t\n\tresult.set(CampaignTypeCode.TELESALES, 'Telesales');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LicenseTypeFlag represents the combined types of licenses\nexport enum LicenseTypeFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pilot [1] \n PILOT = 1,\n \n // Student [3] \n STUDENT = 2,\n \n // PPL [4] \n PPL = 4,\n \n // CPL [8] \n CPL = 8,\n \n // CFI [16] \n CFI = 16,\n \n // IFR [32] \n IFR = 32,\n \n // Cessna 172P [64] \n C172P = 64,\n \n // Cessna 172XP [128] \n C172XP = 128,\n \n // Cessna 207 [256] \n C207 = 256,\n \n // PA 31 [512] \n PA31 = 512,\n \n}\n\n// Return list of LicenseTypeFlag values and their display names\nexport function GetLicenseTypeFlags() : Tuple<LicenseTypeFlag, string>[] {\n\tlet result : Tuple<LicenseTypeFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.PILOT, 'LicenseTypeFlag.PILOT'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.STUDENT, 'LicenseTypeFlag.STUDENT'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.PPL, 'LicenseTypeFlag.PPL'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.CPL, 'LicenseTypeFlag.CPL'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.CFI, 'LicenseTypeFlag.CFI'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.IFR, 'LicenseTypeFlag.IFR'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.C172P, 'LicenseTypeFlag.C172P'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.C172XP, 'LicenseTypeFlag.C172XP'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.C207, 'LicenseTypeFlag.C207'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.PA31, 'LicenseTypeFlag.PA31'))\n\t\n\n return result;\n}\n\n// Return map of LicenseTypeFlag values and their display names\nexport function MapLicenseTypeFlags() : Map<LicenseTypeFlag, string> {\n let result = new Map<LicenseTypeFlag, string>();\n\n \n\tresult.set(LicenseTypeFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LicenseTypeFlag.PILOT, 'Pilot');\n\t\n\tresult.set(LicenseTypeFlag.STUDENT, 'Student');\n\t\n\tresult.set(LicenseTypeFlag.PPL, 'Ppl');\n\t\n\tresult.set(LicenseTypeFlag.CPL, 'Cpl');\n\t\n\tresult.set(LicenseTypeFlag.CFI, 'Cfi');\n\t\n\tresult.set(LicenseTypeFlag.IFR, 'Ifr');\n\t\n\tresult.set(LicenseTypeFlag.C172P, 'C172p');\n\t\n\tresult.set(LicenseTypeFlag.C172XP, 'C172xp');\n\t\n\tresult.set(LicenseTypeFlag.C207, 'C207');\n\t\n\tresult.set(LicenseTypeFlag.PA31, 'Pa31');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MaintenanceActionCode represents a maintenance action\nexport enum MaintenanceActionCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // No action required [1] \n NONE = 1,\n \n // Inspection action [2] \n INSPECTION = 2,\n \n // Overhaul action [3] \n OVERHAUL = 3,\n \n // Reissue certificate [4] \n REISSUE = 4,\n \n // Replace component [5] \n REPLACEMENT = 5,\n \n // Weight action [6] \n WEIGHT = 6,\n \n}\n\n// Return list of MaintenanceActionCode values and their display names\nexport function GetMaintenanceActionCodes() : Tuple<MaintenanceActionCode, string>[] {\n\tlet result : Tuple<MaintenanceActionCode, string>[] = [];\n\n \n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.NONE, 'MaintenanceActionCode.NONE'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.INSPECTION, 'MaintenanceActionCode.INSPECTION'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.OVERHAUL, 'MaintenanceActionCode.OVERHAUL'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REISSUE, 'MaintenanceActionCode.REISSUE'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REPLACEMENT, 'MaintenanceActionCode.REPLACEMENT'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.WEIGHT, 'MaintenanceActionCode.WEIGHT'))\n\t\n\n return result;\n}\n\n// Return map of MaintenanceActionCode values and their display names\nexport function MapMaintenanceActionCodes() : Map<MaintenanceActionCode, string> {\n let result = new Map<MaintenanceActionCode, string>();\n\n \n\tresult.set(MaintenanceActionCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(MaintenanceActionCode.NONE, 'None');\n\t\n\tresult.set(MaintenanceActionCode.INSPECTION, 'Inspection');\n\t\n\tresult.set(MaintenanceActionCode.OVERHAUL, 'Overhaul');\n\t\n\tresult.set(MaintenanceActionCode.REISSUE, 'Reissue');\n\t\n\tresult.set(MaintenanceActionCode.REPLACEMENT, 'Replacement');\n\t\n\tresult.set(MaintenanceActionCode.WEIGHT, 'Weight');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ModuleCode represents a module in the system\nexport enum ModuleCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Audit Log [1] \n AUDIT_LOG = 1,\n \n // Users [2] \n USERS = 2,\n \n // Groups [3] \n GROUPS = 3,\n \n // Accounts [4] \n ACCOUNTS = 4,\n \n // Contacts [5] \n CONTACTS = 5,\n \n // Leads [6] \n LEADS = 6,\n \n // Campaigns [7] \n CAMPAIGNS = 7,\n \n // Certificates [8] \n CERTIFICATES = 8,\n \n // Messages (for Read & Confirm) [9] \n MESSAGES = 9,\n \n // Flight log [10] \n FLIGHTS = 10,\n \n // Flight tickets [11] \n FLIGHT_TICKETS = 11,\n \n // Airplanes [12] \n AIRPLANES = 12,\n \n // Airworthiness (maintenance) [13] \n AIRWORTHINESS = 13,\n \n}\n\n// Return list of ModuleCode values and their display names\nexport function GetModuleCodes() : Tuple<ModuleCode, string>[] {\n\tlet result : Tuple<ModuleCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AUDIT_LOG, 'ModuleCode.AUDIT_LOG'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.USERS, 'ModuleCode.USERS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.GROUPS, 'ModuleCode.GROUPS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.ACCOUNTS, 'ModuleCode.ACCOUNTS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CONTACTS, 'ModuleCode.CONTACTS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.LEADS, 'ModuleCode.LEADS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CAMPAIGNS, 'ModuleCode.CAMPAIGNS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CERTIFICATES, 'ModuleCode.CERTIFICATES'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.MESSAGES, 'ModuleCode.MESSAGES'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHTS, 'ModuleCode.FLIGHTS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHT_TICKETS, 'ModuleCode.FLIGHT_TICKETS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRPLANES, 'ModuleCode.AIRPLANES'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRWORTHINESS, 'ModuleCode.AIRWORTHINESS'))\n\t\n\n return result;\n}\n\n// Return map of ModuleCode values and their display names\nexport function MapModuleCodes() : Map<ModuleCode, string> {\n let result = new Map<ModuleCode, string>();\n\n \n\tresult.set(ModuleCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ModuleCode.AUDIT_LOG, 'Audit Log');\n\t\n\tresult.set(ModuleCode.USERS, 'Users');\n\t\n\tresult.set(ModuleCode.GROUPS, 'Groups');\n\t\n\tresult.set(ModuleCode.ACCOUNTS, 'Accounts');\n\t\n\tresult.set(ModuleCode.CONTACTS, 'Contacts');\n\t\n\tresult.set(ModuleCode.LEADS, 'Leads');\n\t\n\tresult.set(ModuleCode.CAMPAIGNS, 'Campaigns');\n\t\n\tresult.set(ModuleCode.CERTIFICATES, 'Certificates');\n\t\n\tresult.set(ModuleCode.MESSAGES, 'Messages');\n\t\n\tresult.set(ModuleCode.FLIGHTS, 'Flights');\n\t\n\tresult.set(ModuleCode.FLIGHT_TICKETS, 'Flight Tickets');\n\t\n\tresult.set(ModuleCode.AIRPLANES, 'Airplanes');\n\t\n\tresult.set(ModuleCode.AIRWORTHINESS, 'Airworthiness');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ValidationFlag represents combination of validations\nexport enum ValidationFlag {\n \n // Other [0] \n UNDEFINED = 0,\n \n // Valid medical certificate [1] \n MEDICAL_CERT = 1,\n \n // Valid pilot license [2] \n PILOT_LICENSE = 2,\n \n // Single Engine Certificate [4] \n SINGLE_ENG_CERT = 4,\n \n // Dual Engine Certificate [8] \n DUAL_ENG_CERT = 8,\n \n // 666 Instruments Certificate [16] \n INST_666_CERT = 16,\n \n // REC Instruments Certificate [32] \n INST_REC_CERT = 32,\n \n // Day time fly [64] \n DAYTIME_FLY = 64,\n \n // Nighttime fly [128] \n NIGHTTIME_FLY = 128,\n \n // Night CVFR [256] \n NIGHT_CVFR_CUR = 256,\n \n // Route exam [512] \n ROUTE_EXAM = 512,\n \n // DI Certificate [1024] \n DI_CERT = 1024,\n \n // International [2048] \n INTERNATIONAL = 2048,\n \n // English Proficiency [4096] \n ENGLISH_PROF = 4096,\n \n // Instructor license [8192] \n INSTRUCTOR_LICENSE = 8192,\n \n // Company check ? [16384] \n COMPANY_CHECK = 16384,\n \n // Company Examiner ? [32768] \n COMPANY_EXAMIN = 32768,\n \n // Commercial 172p [65536] \n COMMERCIAL_172P = 65536,\n \n // Commercial 172xp [131072] \n COMMERCIAL_172XP = 131072,\n \n // Commercial 172xp [262144] \n COMMERCIAL_207 = 262144,\n \n}\n\n// Return list of ValidationFlag values and their display names\nexport function GetValidationFlags() : Tuple<ValidationFlag, string>[] {\n\tlet result : Tuple<ValidationFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.MEDICAL_CERT, 'ValidationFlag.MEDICAL_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.PILOT_LICENSE, 'ValidationFlag.PILOT_LICENSE'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.SINGLE_ENG_CERT, 'ValidationFlag.SINGLE_ENG_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DUAL_ENG_CERT, 'ValidationFlag.DUAL_ENG_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_666_CERT, 'ValidationFlag.INST_666_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_REC_CERT, 'ValidationFlag.INST_REC_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DAYTIME_FLY, 'ValidationFlag.DAYTIME_FLY'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.NIGHTTIME_FLY, 'ValidationFlag.NIGHTTIME_FLY'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.NIGHT_CVFR_CUR, 'ValidationFlag.NIGHT_CVFR_CUR'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ROUTE_EXAM, 'ValidationFlag.ROUTE_EXAM'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DI_CERT, 'ValidationFlag.DI_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INTERNATIONAL, 'ValidationFlag.INTERNATIONAL'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ENGLISH_PROF, 'ValidationFlag.ENGLISH_PROF'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INSTRUCTOR_LICENSE, 'ValidationFlag.INSTRUCTOR_LICENSE'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMPANY_CHECK, 'ValidationFlag.COMPANY_CHECK'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMPANY_EXAMIN, 'ValidationFlag.COMPANY_EXAMIN'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMMERCIAL_172P, 'ValidationFlag.COMMERCIAL_172P'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMMERCIAL_172XP, 'ValidationFlag.COMMERCIAL_172XP'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMMERCIAL_207, 'ValidationFlag.COMMERCIAL_207'))\n\t\n\n return result;\n}\n\n// Return map of ValidationFlag values and their display names\nexport function MapValidationFlags() : Map<ValidationFlag, string> {\n let result = new Map<ValidationFlag, string>();\n\n \n\tresult.set(ValidationFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ValidationFlag.MEDICAL_CERT, 'Medical Cert');\n\t\n\tresult.set(ValidationFlag.PILOT_LICENSE, 'Pilot License');\n\t\n\tresult.set(ValidationFlag.SINGLE_ENG_CERT, 'Single Eng Cert');\n\t\n\tresult.set(ValidationFlag.DUAL_ENG_CERT, 'Dual Eng Cert');\n\t\n\tresult.set(ValidationFlag.INST_666_CERT, 'Inst 666 Cert');\n\t\n\tresult.set(ValidationFlag.INST_REC_CERT, 'Inst Rec Cert');\n\t\n\tresult.set(ValidationFlag.DAYTIME_FLY, 'Daytime Fly');\n\t\n\tresult.set(ValidationFlag.NIGHTTIME_FLY, 'Nighttime Fly');\n\t\n\tresult.set(ValidationFlag.NIGHT_CVFR_CUR, 'Night Cvfr Cur');\n\t\n\tresult.set(ValidationFlag.ROUTE_EXAM, 'Route Exam');\n\t\n\tresult.set(ValidationFlag.DI_CERT, 'Di Cert');\n\t\n\tresult.set(ValidationFlag.INTERNATIONAL, 'International');\n\t\n\tresult.set(ValidationFlag.ENGLISH_PROF, 'English Prof');\n\t\n\tresult.set(ValidationFlag.INSTRUCTOR_LICENSE, 'Instructor License');\n\t\n\tresult.set(ValidationFlag.COMPANY_CHECK, 'Company Check');\n\t\n\tresult.set(ValidationFlag.COMPANY_EXAMIN, 'Company Examin');\n\t\n\tresult.set(ValidationFlag.COMMERCIAL_172P, 'Commercial 172p');\n\t\n\tresult.set(ValidationFlag.COMMERCIAL_172XP, 'Commercial 172xp');\n\t\n\tresult.set(ValidationFlag.COMMERCIAL_207, 'Commercial 207');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AccountStatusCode represents the account status: ACTIVE | INACTIVE | BLOCKED ...\nexport enum AccountStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Active account in the system [1] \n ACTIVE = 1,\n \n // Inactive account in the system [2] \n INACTIVE = 2,\n \n // Blocked account [3] \n BLOCKED = 3,\n \n // Suspended account (about to be deleted) [4] \n SUSPENDED = 4,\n \n}\n\n// Return list of AccountStatusCode values and their display names\nexport function GetAccountStatusCodes() : Tuple<AccountStatusCode, string>[] {\n\tlet result : Tuple<AccountStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.ACTIVE, 'AccountStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.INACTIVE, 'AccountStatusCode.INACTIVE'))\n\t\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.BLOCKED, 'AccountStatusCode.BLOCKED'))\n\t\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.SUSPENDED, 'AccountStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of AccountStatusCode values and their display names\nexport function MapAccountStatusCodes() : Map<AccountStatusCode, string> {\n let result = new Map<AccountStatusCode, string>();\n\n \n\tresult.set(AccountStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AccountStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(AccountStatusCode.INACTIVE, 'Inactive');\n\t\n\tresult.set(AccountStatusCode.BLOCKED, 'Blocked');\n\t\n\tresult.set(AccountStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ConfirmStatusCode represents the contact confirmation status: PENDING | APPROVED | REJECTED ...\nexport enum ConfirmStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending not read yet [1] \n PENDING = 1,\n \n // Approved by the contact [2] \n APPROVED = 2,\n \n // Rejected by the contact [3] \n REJECTED = 3,\n \n}\n\n// Return list of ConfirmStatusCode values and their display names\nexport function GetConfirmStatusCodes() : Tuple<ConfirmStatusCode, string>[] {\n\tlet result : Tuple<ConfirmStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.PENDING, 'ConfirmStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.APPROVED, 'ConfirmStatusCode.APPROVED'))\n\t\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.REJECTED, 'ConfirmStatusCode.REJECTED'))\n\t\n\n return result;\n}\n\n// Return map of ConfirmStatusCode values and their display names\nexport function MapConfirmStatusCodes() : Map<ConfirmStatusCode, string> {\n let result = new Map<ConfirmStatusCode, string>();\n\n \n\tresult.set(ConfirmStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ConfirmStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(ConfirmStatusCode.APPROVED, 'Approved');\n\t\n\tresult.set(ConfirmStatusCode.REJECTED, 'Rejected');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ErrorCode represents a general error\nexport enum ErrorCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // General server error [-1] \n GENERAL_ERROR = -1,\n \n // Unauthenticated [-2] \n UNAUTHENTICATED = -2,\n \n // Unauthorized [-3] \n UNAUTHORIZED = -3,\n \n // Not found [-2] \n NOT_FOUND = -10,\n \n // The form is intended only for pilots on this flight [-1001] \n FLIGHT_PILOTS_ONLY = -1001,\n \n // The form is intended only for pilot in command of this flight [-1002] \n FLIGHT_PIC_ONLY = -1002,\n \n // Pre-flight form was already reported [-1010] \n PREFLIGHT_ALREADY_REPORTED = -1010,\n \n // Post-flight form was already reported [-1011] \n POSTFLIGHT_ALREADY_REPORTED = -1011,\n \n}\n\n// Return list of ErrorCode values and their display names\nexport function GetErrorCodes() : Tuple<ErrorCode, string>[] {\n\tlet result : Tuple<ErrorCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.GENERAL_ERROR, 'ErrorCode.GENERAL_ERROR'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHENTICATED, 'ErrorCode.UNAUTHENTICATED'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHORIZED, 'ErrorCode.UNAUTHORIZED'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.NOT_FOUND, 'ErrorCode.NOT_FOUND'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PILOTS_ONLY, 'ErrorCode.FLIGHT_PILOTS_ONLY'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PIC_ONLY, 'ErrorCode.FLIGHT_PIC_ONLY'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'ErrorCode.PREFLIGHT_ALREADY_REPORTED'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'ErrorCode.POSTFLIGHT_ALREADY_REPORTED'))\n\t\n\n return result;\n}\n\n// Return map of ErrorCode values and their display names\nexport function MapErrorCodes() : Map<ErrorCode, string> {\n let result = new Map<ErrorCode, string>();\n\n \n\tresult.set(ErrorCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ErrorCode.GENERAL_ERROR, 'General Error');\n\t\n\tresult.set(ErrorCode.UNAUTHENTICATED, 'Unauthenticated');\n\t\n\tresult.set(ErrorCode.UNAUTHORIZED, 'Unauthorized');\n\t\n\tresult.set(ErrorCode.NOT_FOUND, 'Not Found');\n\t\n\tresult.set(ErrorCode.FLIGHT_PILOTS_ONLY, 'Flight Pilots Only');\n\t\n\tresult.set(ErrorCode.FLIGHT_PIC_ONLY, 'Flight Pic Only');\n\t\n\tresult.set(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'Preflight Already Reported');\n\t\n\tresult.set(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'Postflight Already Reported');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightClassCode represents a flight Class: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightClassCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Private Flight [32] \n PRIVATE = 32,\n \n // Commercial Flight [64] \n COMMERCIAL = 64,\n \n // Introductory Flight [128] \n INTRODUCTORY = 128,\n \n // Examination Flight [256] \n EXAM = 256,\n \n // Instruction Flight [512] \n INSTRUCTION = 512,\n \n // Maintenance[1024] \n MAINTENANCE = 1024,\n \n // Other Class (elaborate on next field) [2048] \n OTHER = 2048,\n \n}\n\n// Return list of FlightClassCode values and their display names\nexport function GetFlightClassCodes() : Tuple<FlightClassCode, string>[] {\n\tlet result : Tuple<FlightClassCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.PRIVATE, 'FlightClassCode.PRIVATE'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.COMMERCIAL, 'FlightClassCode.COMMERCIAL'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INTRODUCTORY, 'FlightClassCode.INTRODUCTORY'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.EXAM, 'FlightClassCode.EXAM'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INSTRUCTION, 'FlightClassCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.MAINTENANCE, 'FlightClassCode.MAINTENANCE'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.OTHER, 'FlightClassCode.OTHER'))\n\t\n\n return result;\n}\n\n// Return map of FlightClassCode values and their display names\nexport function MapFlightClassCodes() : Map<FlightClassCode, string> {\n let result = new Map<FlightClassCode, string>();\n\n \n\tresult.set(FlightClassCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightClassCode.PRIVATE, 'Private');\n\t\n\tresult.set(FlightClassCode.COMMERCIAL, 'Commercial');\n\t\n\tresult.set(FlightClassCode.INTRODUCTORY, 'Introductory');\n\t\n\tresult.set(FlightClassCode.EXAM, 'Exam');\n\t\n\tresult.set(FlightClassCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(FlightClassCode.MAINTENANCE, 'Maintenance');\n\t\n\tresult.set(FlightClassCode.OTHER, 'Other');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStatusCode represents a flight status can be changed by the operator: ...\nexport enum FlightStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Registered flight but not started (launched) [1] \n REGISTERED = 1,\n \n // Active (after pre-flight form) [2] \n ACTIVE = 2,\n \n // Completed (Done - after post-flight form) [3] \n COMPLETED = 3,\n \n // Cancelled by Aya [4] \n CANCELLED = 4,\n \n // Aborted - cancelled by client [5] \n ABORTED = 5,\n \n // Pending deletion [6] \n DELETE = 6,\n \n}\n\n// Return list of FlightStatusCode values and their display names\nexport function GetFlightStatusCodes() : Tuple<FlightStatusCode, string>[] {\n\tlet result : Tuple<FlightStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.REGISTERED, 'FlightStatusCode.REGISTERED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ACTIVE, 'FlightStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.COMPLETED, 'FlightStatusCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.CANCELLED, 'FlightStatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ABORTED, 'FlightStatusCode.ABORTED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.DELETE, 'FlightStatusCode.DELETE'))\n\t\n\n return result;\n}\n\n// Return map of FlightStatusCode values and their display names\nexport function MapFlightStatusCodes() : Map<FlightStatusCode, string> {\n let result = new Map<FlightStatusCode, string>();\n\n \n\tresult.set(FlightStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightStatusCode.REGISTERED, 'Registered');\n\t\n\tresult.set(FlightStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(FlightStatusCode.COMPLETED, 'Completed');\n\t\n\tresult.set(FlightStatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(FlightStatusCode.ABORTED, 'Aborted');\n\t\n\tresult.set(FlightStatusCode.DELETE, 'Delete');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightTypeCode represents a flight type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // General Purpose Flight [1] \n GENERAL = 1,\n \n // Other Flight [2] \n OTHER = 2,\n \n // Private Flight [3] \n PRIVATE = 3,\n \n // Private Flight with IFR [4] \n PRIVATE_IFR = 4,\n \n // Commercial Flight [5] \n COMMERCIAL = 5,\n \n // Commercial Flight with IFR [6] \n COMMERCIAL_IFR = 6,\n \n // Instruction Flight [7] \n INSTRUCTION = 7,\n \n // Instruction Flight with CVFR [8] \n INSTRUCTION_CVFR = 8,\n \n // Instruction Flight with IFR [9] \n INSTRUCTION_IFR = 9,\n \n // Instruction Flight with Navigation [10] \n INSTRUCTION_NAV = 10,\n \n // Instruction Night Flight [11] \n INSTRUCTION_NIGHT = 11,\n \n}\n\n// Return list of FlightTypeCode values and their display names\nexport function GetFlightTypeCodes() : Tuple<FlightTypeCode, string>[] {\n\tlet result : Tuple<FlightTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.GENERAL, 'FlightTypeCode.GENERAL'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.OTHER, 'FlightTypeCode.OTHER'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.PRIVATE, 'FlightTypeCode.PRIVATE'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.PRIVATE_IFR, 'FlightTypeCode.PRIVATE_IFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.COMMERCIAL, 'FlightTypeCode.COMMERCIAL'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.COMMERCIAL_IFR, 'FlightTypeCode.COMMERCIAL_IFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION, 'FlightTypeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_CVFR, 'FlightTypeCode.INSTRUCTION_CVFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_IFR, 'FlightTypeCode.INSTRUCTION_IFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_NAV, 'FlightTypeCode.INSTRUCTION_NAV'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_NIGHT, 'FlightTypeCode.INSTRUCTION_NIGHT'))\n\t\n\n return result;\n}\n\n// Return map of FlightTypeCode values and their display names\nexport function MapFlightTypeCodes() : Map<FlightTypeCode, string> {\n let result = new Map<FlightTypeCode, string>();\n\n \n\tresult.set(FlightTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightTypeCode.GENERAL, 'General');\n\t\n\tresult.set(FlightTypeCode.OTHER, 'Other');\n\t\n\tresult.set(FlightTypeCode.PRIVATE, 'Private');\n\t\n\tresult.set(FlightTypeCode.PRIVATE_IFR, 'Private Ifr');\n\t\n\tresult.set(FlightTypeCode.COMMERCIAL, 'Commercial');\n\t\n\tresult.set(FlightTypeCode.COMMERCIAL_IFR, 'Commercial Ifr');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_CVFR, 'Instruction Cvfr');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_NAV, 'Instruction Nav');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_NIGHT, 'Instruction Night');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PermissionFlag represents combination of permissions: READ | CREATE | UPDATE | DELETE | MANAGE\nexport enum PermissionFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Read [1] \n READ = 1,\n \n // Create [2] \n CREATE = 2,\n \n // Update [4] \n UPDATE = 4,\n \n // Delete [8] \n DELETE = 8,\n \n // Manage [16] \n MANAGE = 16,\n \n // All permissions combined \n ALL = 31,\n \n}\n\n// Return list of PermissionFlag values and their display names\nexport function GetPermissionFlags() : Tuple<PermissionFlag, string>[] {\n\tlet result : Tuple<PermissionFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.READ, 'PermissionFlag.READ'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.CREATE, 'PermissionFlag.CREATE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.UPDATE, 'PermissionFlag.UPDATE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.DELETE, 'PermissionFlag.DELETE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.MANAGE, 'PermissionFlag.MANAGE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.ALL, 'PermissionFlag.ALL'))\n\t\n\n return result;\n}\n\n// Return map of PermissionFlag values and their display names\nexport function MapPermissionFlags() : Map<PermissionFlag, string> {\n let result = new Map<PermissionFlag, string>();\n\n \n\tresult.set(PermissionFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(PermissionFlag.READ, 'Read');\n\t\n\tresult.set(PermissionFlag.CREATE, 'Create');\n\t\n\tresult.set(PermissionFlag.UPDATE, 'Update');\n\t\n\tresult.set(PermissionFlag.DELETE, 'Delete');\n\t\n\tresult.set(PermissionFlag.MANAGE, 'Manage');\n\t\n\tresult.set(PermissionFlag.ALL, 'All');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserStatusCode represents the user status: PENDING | ACTIVE | BLOCKED ...\nexport enum UserStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // User is registered and pending verification [1] \n PENDING = 1,\n \n // Active user in the system [2] \n ACTIVE = 2,\n \n // Blocked user (only account system can unblock the user) [3] \n BLOCKED = 3,\n \n // Suspended user (about to be deleted) [4] \n SUSPENDED = 4,\n \n}\n\n// Return list of UserStatusCode values and their display names\nexport function GetUserStatusCodes() : Tuple<UserStatusCode, string>[] {\n\tlet result : Tuple<UserStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.PENDING, 'UserStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.ACTIVE, 'UserStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.BLOCKED, 'UserStatusCode.BLOCKED'))\n\t\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.SUSPENDED, 'UserStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of UserStatusCode values and their display names\nexport function MapUserStatusCodes() : Map<UserStatusCode, string> {\n let result = new Map<UserStatusCode, string>();\n\n \n\tresult.set(UserStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(UserStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(UserStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(UserStatusCode.BLOCKED, 'Blocked');\n\t\n\tresult.set(UserStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBSourceFlag represents the ADSB source types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBSourceFlag {\n \n // ADS-B [0] \n ADSB = 0,\n \n // ASTERIX [1] \n ASTERIX = 1,\n \n // MLAT [2] \n MLAT = 2,\n \n // FLARM [3] \n FLARM = 3,\n \n}\n\n// Return list of ADSBSourceFlag values and their display names\nexport function GetADSBSourceFlags() : Tuple<ADSBSourceFlag, string>[] {\n\tlet result : Tuple<ADSBSourceFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ADSB, 'ADSBSourceFlag.ADSB'))\n\t\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ASTERIX, 'ADSBSourceFlag.ASTERIX'))\n\t\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.MLAT, 'ADSBSourceFlag.MLAT'))\n\t\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.FLARM, 'ADSBSourceFlag.FLARM'))\n\t\n\n return result;\n}\n\n// Return map of ADSBSourceFlag values and their display names\nexport function MapADSBSourceFlags() : Map<ADSBSourceFlag, string> {\n let result = new Map<ADSBSourceFlag, string>();\n\n \n\tresult.set(ADSBSourceFlag.ADSB, 'Adsb');\n\t\n\tresult.set(ADSBSourceFlag.ASTERIX, 'Asterix');\n\t\n\tresult.set(ADSBSourceFlag.MLAT, 'Mlat');\n\t\n\tresult.set(ADSBSourceFlag.FLARM, 'Flarm');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingStatusCode represents the booking status: PENDING | APPROVED | CANCELLED | REJECTED | OVERDUE ...\nexport enum BookingStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending booking (requested but not approved) [1] \n PENDING = 1,\n \n // Booking request approved [2] \n APPROVED = 2,\n \n // Booking rejected by the staff [3] \n REJECTED = 3,\n \n // Booking confirmed by by the client [4] \n CONFIRMED = 4,\n \n // Booking cancelled by by the client [5] \n CANCELLED = 5,\n \n // Booking fulfilled and flight was launched by the staff [6] \n FLIGHT_LAUNCHED = 6,\n \n // Booking cancelled by the client [7] \n FLIGHT_CANCELLED = 7,\n \n // Booking completed - flight was launched [8] \n FLIGHT_COMPLETED = 8,\n \n // Flight was aborted by client [9] \n FLIGHT_ABORTED = 9,\n \n}\n\n// Return list of BookingStatusCode values and their display names\nexport function GetBookingStatusCodes() : Tuple<BookingStatusCode, string>[] {\n\tlet result : Tuple<BookingStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.PENDING, 'BookingStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.APPROVED, 'BookingStatusCode.APPROVED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.REJECTED, 'BookingStatusCode.REJECTED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CONFIRMED, 'BookingStatusCode.CONFIRMED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CANCELLED, 'BookingStatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_LAUNCHED, 'BookingStatusCode.FLIGHT_LAUNCHED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_CANCELLED, 'BookingStatusCode.FLIGHT_CANCELLED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_COMPLETED, 'BookingStatusCode.FLIGHT_COMPLETED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_ABORTED, 'BookingStatusCode.FLIGHT_ABORTED'))\n\t\n\n return result;\n}\n\n// Return map of BookingStatusCode values and their display names\nexport function MapBookingStatusCodes() : Map<BookingStatusCode, string> {\n let result = new Map<BookingStatusCode, string>();\n\n \n\tresult.set(BookingStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(BookingStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(BookingStatusCode.APPROVED, 'Approved');\n\t\n\tresult.set(BookingStatusCode.REJECTED, 'Rejected');\n\t\n\tresult.set(BookingStatusCode.CONFIRMED, 'Confirmed');\n\t\n\tresult.set(BookingStatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_LAUNCHED, 'Flight Launched');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_CANCELLED, 'Flight Cancelled');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_COMPLETED, 'Flight Completed');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_ABORTED, 'Flight Aborted');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightCategoryCode represents a more specific flight class\nexport enum FlightCategoryCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // ----------------------------- COMMERCIAL ------------------------------------------------------------------------ Commercial Areal Photography [65] \n COMMERCIAL_PHOTO = 65,\n \n // Commercial TAXI Flight [66] \n COMMERCIAL_TAXI = 66,\n \n // Commercial איקר צןדדןםמ flight [67] \n COMMERCIAL_OTHER = 67,\n \n // ----------------------------- EXAM ------------------------------------------------------------------------------ Annual Proficiency Exam [257] \n EXAM_ANN_PROFICIENCY = 257,\n \n // Annual IFR Exam [258] \n EXAM_ANN_IFR = 258,\n \n // CAA PPL Exam [259] \n EXAM_CAA_PPL = 259,\n \n // CAA CPL Exam [260] \n EXAM_CAA_CPL = 260,\n \n // CAA CFI Exam [261] \n EXAM_CAA_CFI = 261,\n \n // CAA CFI Exam [262] \n EXAM_CAA_IFR = 262,\n \n // CAA CONVERSION Exam [263] \n EXAM_CAA_CONVERSION = 263,\n \n // PPL Instruction plan [513] \n INSTRUCTION_PPL = 513,\n \n // CPL Instruction plan [514] \n INSTRUCTION_CPL = 514,\n \n // CFI Instruction plan [515] \n INSTRUCTION_CFI = 515,\n \n // IFR Instruction plan [516] \n INSTRUCTION_IFR = 516,\n \n // Ultralight Conversion plan [517] \n INSTRUCTION_UL_CONV = 517,\n \n // Helicopter Conversion plan [518] \n INSTRUCTION_COPTER_CONV = 518,\n \n // CPL 5 Hours Conversion plan [519] \n INSTRUCTION_CPL_5 = 519,\n \n // IFR 5 Hours Conversion plan [520] \n INSTRUCTION_IFR_5 = 520,\n \n // CPL 10 Hours Conversion plan [521] \n INSTRUCTION_CPL_10 = 521,\n \n // IFR 10 Hours Conversion plan [522] \n INSTRUCTION_IFR_10 = 522,\n \n // CPL 15 Hours Conversion plan [523] \n INSTRUCTION_CPL_15 = 523,\n \n // IFR 15 Hours Conversion plan [524] \n INSTRUCTION_IFR_15 = 524,\n \n // CPL 20 Hours Conversion plan [525] \n INSTRUCTION_CPL_20 = 525,\n \n // IFR 20 Hours Conversion plan [526] \n INSTRUCTION_IFR_20 = 526,\n \n // PPL 25 Hours short plan [527] \n INSTRUCTION_PPL_25 = 527,\n \n // Maintenance Engine running [2049] \n MAINTENANCE_ENGINE_RUNNING = 2049,\n \n // Maintenance Transfer [2050] \n MAINTENANCE_TRANSFER = 2050,\n \n}\n\n// Return list of FlightCategoryCode values and their display names\nexport function GetFlightCategoryCodes() : Tuple<FlightCategoryCode, string>[] {\n\tlet result : Tuple<FlightCategoryCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_PHOTO, 'FlightCategoryCode.COMMERCIAL_PHOTO'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_TAXI, 'FlightCategoryCode.COMMERCIAL_TAXI'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_OTHER, 'FlightCategoryCode.COMMERCIAL_OTHER'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'FlightCategoryCode.EXAM_ANN_PROFICIENCY'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_IFR, 'FlightCategoryCode.EXAM_ANN_IFR'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_PPL, 'FlightCategoryCode.EXAM_CAA_PPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CPL, 'FlightCategoryCode.EXAM_CAA_CPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CFI, 'FlightCategoryCode.EXAM_CAA_CFI'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_IFR, 'FlightCategoryCode.EXAM_CAA_IFR'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CONVERSION, 'FlightCategoryCode.EXAM_CAA_CONVERSION'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL, 'FlightCategoryCode.INSTRUCTION_PPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL, 'FlightCategoryCode.INSTRUCTION_CPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CFI, 'FlightCategoryCode.INSTRUCTION_CFI'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR, 'FlightCategoryCode.INSTRUCTION_IFR'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_UL_CONV, 'FlightCategoryCode.INSTRUCTION_UL_CONV'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'FlightCategoryCode.INSTRUCTION_COPTER_CONV'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_5, 'FlightCategoryCode.INSTRUCTION_CPL_5'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_5, 'FlightCategoryCode.INSTRUCTION_IFR_5'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_10, 'FlightCategoryCode.INSTRUCTION_CPL_10'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_10, 'FlightCategoryCode.INSTRUCTION_IFR_10'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_15, 'FlightCategoryCode.INSTRUCTION_CPL_15'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_15, 'FlightCategoryCode.INSTRUCTION_IFR_15'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_20, 'FlightCategoryCode.INSTRUCTION_CPL_20'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_20, 'FlightCategoryCode.INSTRUCTION_IFR_20'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL_25, 'FlightCategoryCode.INSTRUCTION_PPL_25'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_TRANSFER, 'FlightCategoryCode.MAINTENANCE_TRANSFER'))\n\t\n\n return result;\n}\n\n// Return map of FlightCategoryCode values and their display names\nexport function MapFlightCategoryCodes() : Map<FlightCategoryCode, string> {\n let result = new Map<FlightCategoryCode, string>();\n\n \n\tresult.set(FlightCategoryCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightCategoryCode.COMMERCIAL_PHOTO, 'Commercial Photo');\n\t\n\tresult.set(FlightCategoryCode.COMMERCIAL_TAXI, 'Commercial Taxi');\n\t\n\tresult.set(FlightCategoryCode.COMMERCIAL_OTHER, 'Commercial Other');\n\t\n\tresult.set(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'Exam Ann Proficiency');\n\t\n\tresult.set(FlightCategoryCode.EXAM_ANN_IFR, 'Exam Ann Ifr');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_PPL, 'Exam Caa Ppl');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_CPL, 'Exam Caa Cpl');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_CFI, 'Exam Caa Cfi');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_IFR, 'Exam Caa Ifr');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_CONVERSION, 'Exam Caa Conversion');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL, 'Instruction Ppl');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL, 'Instruction Cpl');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CFI, 'Instruction Cfi');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_UL_CONV, 'Instruction Ul Conv');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'Instruction Copter Conv');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_5, 'Instruction Cpl 5');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_5, 'Instruction Ifr 5');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_10, 'Instruction Cpl 10');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_10, 'Instruction Ifr 10');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_15, 'Instruction Cpl 15');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_15, 'Instruction Ifr 15');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_20, 'Instruction Cpl 20');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_20, 'Instruction Ifr 20');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL_25, 'Instruction Ppl 25');\n\t\n\tresult.set(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'Maintenance Engine Running');\n\t\n\tresult.set(FlightCategoryCode.MAINTENANCE_TRANSFER, 'Maintenance Transfer');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonTypeCode represents a flight lesson type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum LessonTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // General Instruction Flight [1] \n INSTRUCTION = 1,\n \n // Instruction Flight with CVFR [2] \n INSTRUCTION_CVFR = 2,\n \n // Instruction Flight with IFR [3] \n INSTRUCTION_IFR = 3,\n \n // Instruction Flight with Navigation [4] \n INSTRUCTION_NAV = 4,\n \n // Instruction Night Flight [5] \n INSTRUCTION_NIGHT = 5,\n \n // Other Flight [6] \n OTHER = 6,\n \n}\n\n// Return list of LessonTypeCode values and their display names\nexport function GetLessonTypeCodes() : Tuple<LessonTypeCode, string>[] {\n\tlet result : Tuple<LessonTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION, 'LessonTypeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_CVFR, 'LessonTypeCode.INSTRUCTION_CVFR'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_IFR, 'LessonTypeCode.INSTRUCTION_IFR'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NAV, 'LessonTypeCode.INSTRUCTION_NAV'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NIGHT, 'LessonTypeCode.INSTRUCTION_NIGHT'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.OTHER, 'LessonTypeCode.OTHER'))\n\t\n\n return result;\n}\n\n// Return map of LessonTypeCode values and their display names\nexport function MapLessonTypeCodes() : Map<LessonTypeCode, string> {\n let result = new Map<LessonTypeCode, string>();\n\n \n\tresult.set(LessonTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_CVFR, 'Instruction Cvfr');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_NAV, 'Instruction Nav');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_NIGHT, 'Instruction Night');\n\t\n\tresult.set(LessonTypeCode.OTHER, 'Other');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MessageTypeCode represents the message type: ALERT | INFO | POLICY\nexport enum MessageTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Company information [1] \n INFO = 1,\n \n // Memorandum [2] \n MEMO = 2,\n \n // Distribution and Reissue procedures [3] \n EXTERNAL_PROCEDURE = 3,\n \n // Internal procedures [4] \n INTERNAL_PROCEDURE = 4,\n \n // Incident_OR_Hazard Report_Low_Human_Mitigation required [5] \n INCIDENT = 5,\n \n // Policy and Procedural Changes [6] \n POLICY = 6,\n \n // Repair Stations Audit_IANR_OPS 344_2 [7] \n REPAIR = 7,\n \n}\n\n// Return list of MessageTypeCode values and their display names\nexport function GetMessageTypeCodes() : Tuple<MessageTypeCode, string>[] {\n\tlet result : Tuple<MessageTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INFO, 'MessageTypeCode.INFO'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.MEMO, 'MessageTypeCode.MEMO'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.EXTERNAL_PROCEDURE, 'MessageTypeCode.EXTERNAL_PROCEDURE'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INTERNAL_PROCEDURE, 'MessageTypeCode.INTERNAL_PROCEDURE'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INCIDENT, 'MessageTypeCode.INCIDENT'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.POLICY, 'MessageTypeCode.POLICY'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.REPAIR, 'MessageTypeCode.REPAIR'))\n\t\n\n return result;\n}\n\n// Return map of MessageTypeCode values and their display names\nexport function MapMessageTypeCodes() : Map<MessageTypeCode, string> {\n let result = new Map<MessageTypeCode, string>();\n\n \n\tresult.set(MessageTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(MessageTypeCode.INFO, 'Info');\n\t\n\tresult.set(MessageTypeCode.MEMO, 'Memo');\n\t\n\tresult.set(MessageTypeCode.EXTERNAL_PROCEDURE, 'External Procedure');\n\t\n\tresult.set(MessageTypeCode.INTERNAL_PROCEDURE, 'Internal Procedure');\n\t\n\tresult.set(MessageTypeCode.INCIDENT, 'Incident');\n\t\n\tresult.set(MessageTypeCode.POLICY, 'Policy');\n\t\n\tresult.set(MessageTypeCode.REPAIR, 'Repair');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PaymentMethodCode represents a payment method: CASH | CHECK | BANK TRANSFER | CREDIT ...\nexport enum PaymentMethodCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // None paid [1] \n NONE = 1,\n \n // Credit client balance [2] \n CREDIT_CLIENT = 2,\n \n // Paid with credit card [3] \n CARD = 3,\n \n // Paid with check [4] \n CHECK = 4,\n \n // Paid with cash [5] \n CASH = 5,\n \n // Paid with bank transfer [6] \n BANK = 6,\n \n}\n\n// Return list of PaymentMethodCode values and their display names\nexport function GetPaymentMethodCodes() : Tuple<PaymentMethodCode, string>[] {\n\tlet result : Tuple<PaymentMethodCode, string>[] = [];\n\n \n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.NONE, 'PaymentMethodCode.NONE'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CREDIT_CLIENT, 'PaymentMethodCode.CREDIT_CLIENT'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CARD, 'PaymentMethodCode.CARD'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CHECK, 'PaymentMethodCode.CHECK'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CASH, 'PaymentMethodCode.CASH'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.BANK, 'PaymentMethodCode.BANK'))\n\t\n\n return result;\n}\n\n// Return map of PaymentMethodCode values and their display names\nexport function MapPaymentMethodCodes() : Map<PaymentMethodCode, string> {\n let result = new Map<PaymentMethodCode, string>();\n\n \n\tresult.set(PaymentMethodCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(PaymentMethodCode.NONE, 'None');\n\t\n\tresult.set(PaymentMethodCode.CREDIT_CLIENT, 'Credit Client');\n\t\n\tresult.set(PaymentMethodCode.CARD, 'Card');\n\t\n\tresult.set(PaymentMethodCode.CHECK, 'Check');\n\t\n\tresult.set(PaymentMethodCode.CASH, 'Cash');\n\t\n\tresult.set(PaymentMethodCode.BANK, 'Bank');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserRoleFlag represents combination of roles: STUDENT | PILOT | INSTRUCTOR | SALES | OPERATIONS | MANAGER\nexport enum UserRoleFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Student [1] \n STUDENT = 1,\n \n // Pilot [2] \n PILOT = 2,\n \n // Flight Instructor [4] \n INSTRUCTOR = 4,\n \n // Sales [8] \n SALES = 8,\n \n // Operations [16] \n OPERATIONS = 16,\n \n // Maintenance [32] \n MAINTENANCE = 32,\n \n // Manager [1024] \n MANAGER = 1024,\n \n // All roles combined \n ALL = 2047,\n \n}\n\n// Return list of UserRoleFlag values and their display names\nexport function GetUserRoleFlags() : Tuple<UserRoleFlag, string>[] {\n\tlet result : Tuple<UserRoleFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.STUDENT, 'UserRoleFlag.STUDENT'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.PILOT, 'UserRoleFlag.PILOT'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.INSTRUCTOR, 'UserRoleFlag.INSTRUCTOR'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.SALES, 'UserRoleFlag.SALES'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.OPERATIONS, 'UserRoleFlag.OPERATIONS'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MAINTENANCE, 'UserRoleFlag.MAINTENANCE'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MANAGER, 'UserRoleFlag.MANAGER'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.ALL, 'UserRoleFlag.ALL'))\n\t\n\n return result;\n}\n\n// Return map of UserRoleFlag values and their display names\nexport function MapUserRoleFlags() : Map<UserRoleFlag, string> {\n let result = new Map<UserRoleFlag, string>();\n\n \n\tresult.set(UserRoleFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(UserRoleFlag.STUDENT, 'Student');\n\t\n\tresult.set(UserRoleFlag.PILOT, 'Pilot');\n\t\n\tresult.set(UserRoleFlag.INSTRUCTOR, 'Instructor');\n\t\n\tresult.set(UserRoleFlag.SALES, 'Sales');\n\t\n\tresult.set(UserRoleFlag.OPERATIONS, 'Operations');\n\t\n\tresult.set(UserRoleFlag.MAINTENANCE, 'Maintenance');\n\t\n\tresult.set(UserRoleFlag.MANAGER, 'Manager');\n\t\n\tresult.set(UserRoleFlag.ALL, 'All');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserTypeCode represents the user type: SYSADMIN | SUPPORT | USER ...\nexport enum UserTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // System administrator has access to all accounts and permissions to perform all actions [1] \n SYSADMIN = 1,\n \n // Support user has view permissions only for all accounts that enabled option Enable Support [2] \n SUPPORT = 2,\n \n // Account user - has access to specific accounts with role based access control [3] \n USER = 3,\n \n // Service Account - to be used by other systems to perform actions using the API (can't login as a user to the portal) [4] \n SERVICE = 4,\n \n}\n\n// Return list of UserTypeCode values and their display names\nexport function GetUserTypeCodes() : Tuple<UserTypeCode, string>[] {\n\tlet result : Tuple<UserTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SYSADMIN, 'UserTypeCode.SYSADMIN'))\n\t\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SUPPORT, 'UserTypeCode.SUPPORT'))\n\t\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.USER, 'UserTypeCode.USER'))\n\t\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SERVICE, 'UserTypeCode.SERVICE'))\n\t\n\n return result;\n}\n\n// Return map of UserTypeCode values and their display names\nexport function MapUserTypeCodes() : Map<UserTypeCode, string> {\n let result = new Map<UserTypeCode, string>();\n\n \n\tresult.set(UserTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(UserTypeCode.SYSADMIN, 'Sysadmin');\n\t\n\tresult.set(UserTypeCode.SUPPORT, 'Support');\n\t\n\tresult.set(UserTypeCode.USER, 'User');\n\t\n\tresult.set(UserTypeCode.SERVICE, 'Service');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AssessmentCode represents the assessment score: EXCELLENT | SATISFACTORY | INCOMPLETE ...\nexport enum AssessmentCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Excellent [1] \n EXCELLENT = 1,\n \n // Satisfactory [2] \n SATISFACTORY = 2,\n \n // Below Average [3] \n BELOW_AVERAGE = 3,\n \n // Unsatisfactory [4] \n UNSATISFACTORY = 4,\n \n // Incomplete [5] \n INCOMPLETE = 5,\n \n // Repeat exercise is required [6] \n REPEAT = 6,\n \n // Demonstration only [7] \n DEMO = 7,\n \n}\n\n// Return list of AssessmentCode values and their display names\nexport function GetAssessmentCodes() : Tuple<AssessmentCode, string>[] {\n\tlet result : Tuple<AssessmentCode, string>[] = [];\n\n \n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.EXCELLENT, 'AssessmentCode.EXCELLENT'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.SATISFACTORY, 'AssessmentCode.SATISFACTORY'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.BELOW_AVERAGE, 'AssessmentCode.BELOW_AVERAGE'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.UNSATISFACTORY, 'AssessmentCode.UNSATISFACTORY'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.INCOMPLETE, 'AssessmentCode.INCOMPLETE'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.REPEAT, 'AssessmentCode.REPEAT'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.DEMO, 'AssessmentCode.DEMO'))\n\t\n\n return result;\n}\n\n// Return map of AssessmentCode values and their display names\nexport function MapAssessmentCodes() : Map<AssessmentCode, string> {\n let result = new Map<AssessmentCode, string>();\n\n \n\tresult.set(AssessmentCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AssessmentCode.EXCELLENT, 'Excellent');\n\t\n\tresult.set(AssessmentCode.SATISFACTORY, 'Satisfactory');\n\t\n\tresult.set(AssessmentCode.BELOW_AVERAGE, 'Below Average');\n\t\n\tresult.set(AssessmentCode.UNSATISFACTORY, 'Unsatisfactory');\n\t\n\tresult.set(AssessmentCode.INCOMPLETE, 'Incomplete');\n\t\n\tresult.set(AssessmentCode.REPEAT, 'Repeat');\n\t\n\tresult.set(AssessmentCode.DEMO, 'Demo');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignStatusCode represents the campaign status: PLANNING | ACTIVE | COMPLETED ...\nexport enum CampaignStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Planned campaign [1] \n PLANNING = 1,\n \n // Active campaign [2] \n ACTIVE = 2,\n \n // `Completed campaign [3] \n COMPLETED = 3,\n \n // Suspended (about to be deleted) [4] \n SUSPENDED = 4,\n \n}\n\n// Return list of CampaignStatusCode values and their display names\nexport function GetCampaignStatusCodes() : Tuple<CampaignStatusCode, string>[] {\n\tlet result : Tuple<CampaignStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.PLANNING, 'CampaignStatusCode.PLANNING'))\n\t\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.ACTIVE, 'CampaignStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.COMPLETED, 'CampaignStatusCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.SUSPENDED, 'CampaignStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of CampaignStatusCode values and their display names\nexport function MapCampaignStatusCodes() : Map<CampaignStatusCode, string> {\n let result = new Map<CampaignStatusCode, string>();\n\n \n\tresult.set(CampaignStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(CampaignStatusCode.PLANNING, 'Planning');\n\t\n\tresult.set(CampaignStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(CampaignStatusCode.COMPLETED, 'Completed');\n\t\n\tresult.set(CampaignStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CurrencyCode represents the currency: ILS | USD | EUR ...\nexport enum CurrencyCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // ILS [1] \n ILS = 1,\n \n // USD [2] \n USD = 2,\n \n // EURO [3] \n EUR = 3,\n \n}\n\n// Return list of CurrencyCode values and their display names\nexport function GetCurrencyCodes() : Tuple<CurrencyCode, string>[] {\n\tlet result : Tuple<CurrencyCode, string>[] = [];\n\n \n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.ILS, 'CurrencyCode.ILS'))\n\t\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.USD, 'CurrencyCode.USD'))\n\t\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.EUR, 'CurrencyCode.EUR'))\n\t\n\n return result;\n}\n\n// Return map of CurrencyCode values and their display names\nexport function MapCurrencyCodes() : Map<CurrencyCode, string> {\n let result = new Map<CurrencyCode, string>();\n\n \n\tresult.set(CurrencyCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(CurrencyCode.ILS, 'Ils');\n\t\n\tresult.set(CurrencyCode.USD, 'Usd');\n\t\n\tresult.set(CurrencyCode.EUR, 'Eur');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// InstructionTypeCode represents a flight instruction type: FLIGHT | CLASS | SIMULATOR ...\nexport enum InstructionTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Instruction during a Flight [1] \n FLIGHT = 1,\n \n // Instruction in the class [2] \n CLASS = 2,\n \n // Instruction in the simulator [3] \n SIMULATOR = 3,\n \n}\n\n// Return list of InstructionTypeCode values and their display names\nexport function GetInstructionTypeCodes() : Tuple<InstructionTypeCode, string>[] {\n\tlet result : Tuple<InstructionTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.FLIGHT, 'InstructionTypeCode.FLIGHT'))\n\t\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.CLASS, 'InstructionTypeCode.CLASS'))\n\t\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.SIMULATOR, 'InstructionTypeCode.SIMULATOR'))\n\t\n\n return result;\n}\n\n// Return map of InstructionTypeCode values and their display names\nexport function MapInstructionTypeCodes() : Map<InstructionTypeCode, string> {\n let result = new Map<InstructionTypeCode, string>();\n\n \n\tresult.set(InstructionTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(InstructionTypeCode.FLIGHT, 'Flight');\n\t\n\tresult.set(InstructionTypeCode.CLASS, 'Class');\n\t\n\tresult.set(InstructionTypeCode.SIMULATOR, 'Simulator');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonSubjectCode represents a flight lesson subject:\nexport enum LessonSubjectCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // \"1 השפעת הגאים ומנופי בקרה. משך: 40 ד\" \n PPL_01 = 1,\n \n // \"2 הכנה לטיסה, הסעה, טיסה ישרה ואופקית. משך: 40 ד\" \n PPL_02 = 2,\n \n // \"3 הסעה, טיסה ישרה ואופקית, נסיקה. משך: 40 ד\" \n PPL_03 = 3,\n \n // \"4 מצבי יסוד - ישרה ואופקית נסיקה וגלישה. משך: 40 ד\" \n PPL_04 = 4,\n \n // \"5 מעברים רגילים ומורכבים בטיסה ישרה. משך: 50 ד\" \n PPL_05 = 5,\n \n // \"6 פניות קלות (נסיקה גלישה), בינוניות וחדות. משך: 50 ד\" \n PPL_06 = 6,\n \n // \"7 מעברים רגילים ומורכבים בפניה. משך: 40 ד\" \n PPL_07 = 7,\n \n // \"8 שינויי מהירות בטיסה ישרה ואופקית, והזדקרויות ישרות. משך: 40 ד\" \n PPL_08 = 8,\n \n // \"9 הזדקרויות בטיסה ישרה ובפניות והזדקרות עם נפילת כנף. משך: 40 ד\" \n PPL_09 = 9,\n \n // \"10 נחיתות אונס מגבהים שונים+החלצות ממצב של נפילת כנף תוך כדי הזדקרות. משך: 40 ד\" \n PPL_10 = 10,\n \n // \"11 הקפה. משך: 40 ד\" \n PPL_11 = 11,\n \n // \"12 חזרה כללית: הקפות המראה ונחיתה. משך: 40 ד\" \n PPL_12 = 12,\n \n // \"13 חזרה כללית: הקפות המראה ונחיתה. משך: 1:00 ש\" \n PPL_13 = 13,\n \n // \"14 חזרה כללית: הקפות המראה ונחיתה. משך: 50 ד\" \n PPL_14 = 14,\n \n // \"15 חזרה כללית + הקפות המראה קצרה ונחיתה קצרה. משך: 50 ד\" \n PPL_15 = 15,\n \n // \"16 טיסת בדיקה לקראת טיסת יחיד-טיסה כללית ובהקפה. משך המבחן 1:00. טיסת הסולו ראשונה: הקפה אחת, משך 10 ד\" \n PPL_16 = 16,\n \n // \"17 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_17 = 17,\n \n // \"18 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_18 = 18,\n \n // \"19 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_19 = 19,\n \n // \"20 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_20 = 20,\n \n // \"21 הקפות, נחיתות דיוק, חירום. הדרכה 15 ד; סולו 1:00 ש\" \n PPL_21 = 21,\n \n // \"22 הקפות, טיסה כללית, חירום. הדרכה 50 ד; הקפות- סולו 50 ד\" \n PPL_22 = 22,\n \n // \"23 הקפות, טיסה כללית, חירום. הדרכה 30 ד; סולו אזור 50 ד\" \n PPL_23 = 23,\n \n // \"24 טיסה כללית, חירום. הדרכה 10 ד; סולו אזור 50 ד\" \n PPL_24 = 24,\n \n // \"25 שעור 1: טיסת מכשירים בסיסית-מצבי טיסה יסודיים. משך 45 ד\" \n PPL_25 = 25,\n \n // \"26 שעור 2: טיסת מכשירים בסיסית-מעברים בטיסה ישרה. משך 45 ד\" \n PPL_26 = 26,\n \n // \"27 שעור 3: פניות בינוניות אופקיות ופניות בשעור1. משך: 45 ד\" \n PPL_27 = 27,\n \n // \"28 שעור 4: לוח מוגבל ומצבים מוזרים. משך: 45 ד\" \n PPL_28 = 28,\n \n // \"29 - טיסת נווט מגע + נחיתת ביניים. משך הנווט 1:20 ש\" \n PPL_29 = 29,\n \n // \"30 - טיסת נווט מגע, אבדן התמצאות ונ״א + שימוש בעזרי רדיו לנווט. נחיתות ביניים בנתיב בשני שדות זרים. משך הנווט 1:40 ש\" \n PPL_30 = 30,\n \n // \"31 נווטי מגע, שימוש בעזרי רדיו לנווט+נחיתות בשדות זרים. משך הנווטים בטיסות יחיד 3:00 ש; הדרכה לבדיקת רמה לפני כל נווט 10 ד\" \n PPL_31 = 31,\n \n // \"32 נווט יחיד ארוך-נווט מגע, שימוש בעזרי רדיו+נחיתה בשני שדות זרים מרוחקים משדה האם. משך: 2:30 שעות; הדרכה 10 דקות -בדיקת רמה\" \n PPL_32 = 32,\n \n // \"33 סולו – חזרה על כל תרגילי הטיסה ותהליכי חירום. משך: הדרכה 10 דקות + סולו 55 ד\" \n PPL_33 = 33,\n \n // \"34 שעור 1 לילה: טיסה כללית-מצבי טיסה. משך: 45 ד\" \n PPL_34 = 34,\n \n // \"35 שעור 2-לילה: מעברים רגילים+מורכבים בטיסה ישרה. משך: 45 ד\" \n PPL_35 = 35,\n \n // \"36 שעור 3 לילה: פניות נסיקה וגלישה ופניות בינוניות + אופקיות 30º הטייה ומעברים בפניה ושתי הקפות. משך: 45 ד\" \n PPL_36 = 36,\n \n // \"37 שעור 4 לילה: הקפות עם פנסי נחיתה וללא. משך: 45 ד\" \n PPL_37 = 37,\n \n // \"38 חזרה כללית לפני מבחן. משך: 45 ד\" \n PPL_38 = 38,\n \n // \"39 -סולו -חזרה כללית לפני מבחן. משך: 55 ד\" \n PPL_39 = 39,\n \n // 1 הסעה, מעברים מורכבים, פניות, שינוי מהירות, הקפה \n PPL_AZM_01 = 51,\n \n // 2 פניות חדות, שינוי מהירות, הזדקרות, נ\"א, הקפה \n PPL_AZM_02 = 52,\n \n // 3 הקפות \n PPL_AZM_03 = 53,\n \n // 4 מצבי חירום באיזור ובהקפה \n PPL_AZM_04 = 54,\n \n // 5 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_05 = 55,\n \n // 6 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_06 = 56,\n \n // 7 טיסת בדיקה לטיסת יחיד (מד\"ר) \n PPL_AZM_07 = 57,\n \n // 8 מכשירים - מצבי טיסה יסודיים \n PPL_AZM_08 = 58,\n \n // 9 מכשירים, פניות, שינוי מהירות, הזדקרויות \n PPL_AZM_09 = 59,\n \n // 10 טיסת נווט מגע ונחיתת ביניים, מצבי חירום, הקפות \n PPL_AZM_10 = 60,\n \n // 11 טיסת מכשירים לוח מוגבל, מצבים מוזרים, יירוט רדיאלים \n PPL_AZM_11 = 61,\n \n // 12 ניווט בטיסת יחיד \n PPL_AZM_12 = 62,\n \n // 13 ניווט בטיסת יחיד \n PPL_AZM_13 = 63,\n \n // 14 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_14 = 64,\n \n // 15 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_15 = 65,\n \n // 16 חזרה כללית (מד\"ר) \n PPL_AZM_16 = 66,\n \n // \"1 מצבי טיסה, מעברים, פניות, שינוי מהירות, הזדקרויות\" \n CPL_01 = 101,\n \n // \"2 תמרונים רגילים בטיסה (שיפור מיומנות)\" \n CPL_02 = 102,\n \n // \"3 הזדקרויות והיכרות עם תרגילי המיומנות הנדרשים בטיס מסחרי\" \n CPL_03 = 103,\n \n // \"4 תרגילי המיומנות הנדרשים מטייס מסחרי (שיפור מיומנות)\" \n CPL_04 = 104,\n \n // \"5 תפעול רגיל ותרגול חירומים\" \n CPL_05 = 105,\n \n // \"6 תפעול רגיל ותרגול חירומים (שיפור מיומנות)\" \n CPL_06 = 106,\n \n // \"7 תרגול הקפות במשקל המראה מירבי\" \n CPL_07 = 107,\n \n // \"8 תרגול הקפות ותפעול חרומים בהקפה\" \n CPL_08 = 108,\n \n // \"9 טיסת מכשירים בסיסית\" \n CPL_09 = 109,\n \n // \"10 טיסת ניווט בנתיבי התובלה הנמוכים\" \n CPL_10 = 110,\n \n // \"11 ישום שיטת ניווט (גובה נמוך)\" \n CPL_11 = 111,\n \n // \"12 ישום שיטת ניווט (גובה נמוך) ושיפור מיומנות\" \n CPL_12 = 112,\n \n // \"13 הכנה למבחן מעשי\" \n CPL_13 = 113,\n \n // 1 מצבים יסודיים, מעברים,פניות, שינוי מהירות, הזדקרויות, שעור פניה, מצבים מוזרים \n IFR_05_01 = 201,\n \n // 2 טיסה לפי רדיאלים \n IFR_05_02 = 202,\n \n // 3 SID, ניווט בנתיבי IFR, STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_03 = 203,\n \n // 4 מסכמת, נתיב, SID,STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_04 = 204,\n \n // 5 חזרה למבחן \n IFR_05_05 = 205,\n \n // 1 מצבים טיסה יסודיים - מדמה \n IFR_20_01 = 221,\n \n // 2 מצבי טיסה יסודיים \n IFR_20_02 = 222,\n \n // 3 הזדקרויות עד מצבים מוזרים - מדמה \n IFR_20_03 = 223,\n \n // 4 הזדקרויות עד מצבים מוזרים \n IFR_20_04 = 224,\n \n // 5 טיסה לפי רדיאלים - מדמה \n IFR_20_05 = 225,\n \n // 6 טיסה לפי רדיאלים \n IFR_20_06 = 226,\n \n // 7 מעגל המתנה וכניסות - מדמה \n IFR_20_07 = 227,\n \n // 8 SID, נתיבי IFR, STAR - מדמה \n IFR_20_08 = 228,\n \n // 9 SID, נתיבי IFR, STAR \n IFR_20_09 = 229,\n \n // 10 הנמכות מדויקות - מדמה \n IFR_20_10 = 230,\n \n // 11 הנמכות לא מדויקות - מדמה \n IFR_20_11 = 231,\n \n // 12 SID, נתיבי IFR, STAR, הנמכות מדויקות \n IFR_20_12 = 232,\n \n // 13 הנמכות לא מדויקות \n IFR_20_13 = 233,\n \n // 14 הנמכות שונות \n IFR_20_14 = 234,\n \n // 15 SID, נתיבי IFR, STAR, הנמכות שונות - מדמה \n IFR_20_15 = 235,\n \n // 16 טיסה מסכמת \n IFR_20_16 = 236,\n \n // 17 חזרה למבחן - מדמה \n IFR_20_17 = 237,\n \n // 18 חזרה למבחן \n IFR_20_18 = 238,\n \n}\n\n// Return list of LessonSubjectCode values and their display names\nexport function GetLessonSubjectCodes() : Tuple<LessonSubjectCode, string>[] {\n\tlet result : Tuple<LessonSubjectCode, string>[] = [];\n\n \n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_01, 'LessonSubjectCode.PPL_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_02, 'LessonSubjectCode.PPL_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_03, 'LessonSubjectCode.PPL_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_04, 'LessonSubjectCode.PPL_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_05, 'LessonSubjectCode.PPL_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_06, 'LessonSubjectCode.PPL_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_07, 'LessonSubjectCode.PPL_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_08, 'LessonSubjectCode.PPL_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_09, 'LessonSubjectCode.PPL_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_10, 'LessonSubjectCode.PPL_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_11, 'LessonSubjectCode.PPL_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_12, 'LessonSubjectCode.PPL_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_13, 'LessonSubjectCode.PPL_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_14, 'LessonSubjectCode.PPL_14'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_15, 'LessonSubjectCode.PPL_15'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_16, 'LessonSubjectCode.PPL_16'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_17, 'LessonSubjectCode.PPL_17'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_18, 'LessonSubjectCode.PPL_18'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_19, 'LessonSubjectCode.PPL_19'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_20, 'LessonSubjectCode.PPL_20'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_21, 'LessonSubjectCode.PPL_21'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_22, 'LessonSubjectCode.PPL_22'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_23, 'LessonSubjectCode.PPL_23'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_24, 'LessonSubjectCode.PPL_24'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_25, 'LessonSubjectCode.PPL_25'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_26, 'LessonSubjectCode.PPL_26'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_27, 'LessonSubjectCode.PPL_27'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_28, 'LessonSubjectCode.PPL_28'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_29, 'LessonSubjectCode.PPL_29'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_30, 'LessonSubjectCode.PPL_30'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_31, 'LessonSubjectCode.PPL_31'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_32, 'LessonSubjectCode.PPL_32'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_33, 'LessonSubjectCode.PPL_33'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_34, 'LessonSubjectCode.PPL_34'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_35, 'LessonSubjectCode.PPL_35'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_36, 'LessonSubjectCode.PPL_36'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_37, 'LessonSubjectCode.PPL_37'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_38, 'LessonSubjectCode.PPL_38'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_39, 'LessonSubjectCode.PPL_39'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_01, 'LessonSubjectCode.PPL_AZM_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_02, 'LessonSubjectCode.PPL_AZM_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_03, 'LessonSubjectCode.PPL_AZM_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_04, 'LessonSubjectCode.PPL_AZM_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_05, 'LessonSubjectCode.PPL_AZM_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_06, 'LessonSubjectCode.PPL_AZM_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_07, 'LessonSubjectCode.PPL_AZM_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_08, 'LessonSubjectCode.PPL_AZM_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_09, 'LessonSubjectCode.PPL_AZM_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_10, 'LessonSubjectCode.PPL_AZM_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_11, 'LessonSubjectCode.PPL_AZM_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_12, 'LessonSubjectCode.PPL_AZM_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_13, 'LessonSubjectCode.PPL_AZM_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_14, 'LessonSubjectCode.PPL_AZM_14'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_15, 'LessonSubjectCode.PPL_AZM_15'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_16, 'LessonSubjectCode.PPL_AZM_16'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_01, 'LessonSubjectCode.CPL_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_02, 'LessonSubjectCode.CPL_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_03, 'LessonSubjectCode.CPL_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_04, 'LessonSubjectCode.CPL_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_05, 'LessonSubjectCode.CPL_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_06, 'LessonSubjectCode.CPL_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_07, 'LessonSubjectCode.CPL_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_08, 'LessonSubjectCode.CPL_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_09, 'LessonSubjectCode.CPL_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_10, 'LessonSubjectCode.CPL_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_11, 'LessonSubjectCode.CPL_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_12, 'LessonSubjectCode.CPL_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_13, 'LessonSubjectCode.CPL_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_01, 'LessonSubjectCode.IFR_05_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_02, 'LessonSubjectCode.IFR_05_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_03, 'LessonSubjectCode.IFR_05_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_04, 'LessonSubjectCode.IFR_05_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_05, 'LessonSubjectCode.IFR_05_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_01, 'LessonSubjectCode.IFR_20_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_02, 'LessonSubjectCode.IFR_20_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_03, 'LessonSubjectCode.IFR_20_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_04, 'LessonSubjectCode.IFR_20_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_05, 'LessonSubjectCode.IFR_20_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_06, 'LessonSubjectCode.IFR_20_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_07, 'LessonSubjectCode.IFR_20_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_08, 'LessonSubjectCode.IFR_20_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_09, 'LessonSubjectCode.IFR_20_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_10, 'LessonSubjectCode.IFR_20_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_11, 'LessonSubjectCode.IFR_20_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_12, 'LessonSubjectCode.IFR_20_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_13, 'LessonSubjectCode.IFR_20_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_14, 'LessonSubjectCode.IFR_20_14'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_15, 'LessonSubjectCode.IFR_20_15'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_16, 'LessonSubjectCode.IFR_20_16'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_17, 'LessonSubjectCode.IFR_20_17'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_18, 'LessonSubjectCode.IFR_20_18'))\n\t\n\n return result;\n}\n\n// Return map of LessonSubjectCode values and their display names\nexport function MapLessonSubjectCodes() : Map<LessonSubjectCode, string> {\n let result = new Map<LessonSubjectCode, string>();\n\n \n\tresult.set(LessonSubjectCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LessonSubjectCode.PPL_01, 'Ppl 01');\n\t\n\tresult.set(LessonSubjectCode.PPL_02, 'Ppl 02');\n\t\n\tresult.set(LessonSubjectCode.PPL_03, 'Ppl 03');\n\t\n\tresult.set(LessonSubjectCode.PPL_04, 'Ppl 04');\n\t\n\tresult.set(LessonSubjectCode.PPL_05, 'Ppl 05');\n\t\n\tresult.set(LessonSubjectCode.PPL_06, 'Ppl 06');\n\t\n\tresult.set(LessonSubjectCode.PPL_07, 'Ppl 07');\n\t\n\tresult.set(LessonSubjectCode.PPL_08, 'Ppl 08');\n\t\n\tresult.set(LessonSubjectCode.PPL_09, 'Ppl 09');\n\t\n\tresult.set(LessonSubjectCode.PPL_10, 'Ppl 10');\n\t\n\tresult.set(LessonSubjectCode.PPL_11, 'Ppl 11');\n\t\n\tresult.set(LessonSubjectCode.PPL_12, 'Ppl 12');\n\t\n\tresult.set(LessonSubjectCode.PPL_13, 'Ppl 13');\n\t\n\tresult.set(LessonSubjectCode.PPL_14, 'Ppl 14');\n\t\n\tresult.set(LessonSubjectCode.PPL_15, 'Ppl 15');\n\t\n\tresult.set(LessonSubjectCode.PPL_16, 'Ppl 16');\n\t\n\tresult.set(LessonSubjectCode.PPL_17, 'Ppl 17');\n\t\n\tresult.set(LessonSubjectCode.PPL_18, 'Ppl 18');\n\t\n\tresult.set(LessonSubjectCode.PPL_19, 'Ppl 19');\n\t\n\tresult.set(LessonSubjectCode.PPL_20, 'Ppl 20');\n\t\n\tresult.set(LessonSubjectCode.PPL_21, 'Ppl 21');\n\t\n\tresult.set(LessonSubjectCode.PPL_22, 'Ppl 22');\n\t\n\tresult.set(LessonSubjectCode.PPL_23, 'Ppl 23');\n\t\n\tresult.set(LessonSubjectCode.PPL_24, 'Ppl 24');\n\t\n\tresult.set(LessonSubjectCode.PPL_25, 'Ppl 25');\n\t\n\tresult.set(LessonSubjectCode.PPL_26, 'Ppl 26');\n\t\n\tresult.set(LessonSubjectCode.PPL_27, 'Ppl 27');\n\t\n\tresult.set(LessonSubjectCode.PPL_28, 'Ppl 28');\n\t\n\tresult.set(LessonSubjectCode.PPL_29, 'Ppl 29');\n\t\n\tresult.set(LessonSubjectCode.PPL_30, 'Ppl 30');\n\t\n\tresult.set(LessonSubjectCode.PPL_31, 'Ppl 31');\n\t\n\tresult.set(LessonSubjectCode.PPL_32, 'Ppl 32');\n\t\n\tresult.set(LessonSubjectCode.PPL_33, 'Ppl 33');\n\t\n\tresult.set(LessonSubjectCode.PPL_34, 'Ppl 34');\n\t\n\tresult.set(LessonSubjectCode.PPL_35, 'Ppl 35');\n\t\n\tresult.set(LessonSubjectCode.PPL_36, 'Ppl 36');\n\t\n\tresult.set(LessonSubjectCode.PPL_37, 'Ppl 37');\n\t\n\tresult.set(LessonSubjectCode.PPL_38, 'Ppl 38');\n\t\n\tresult.set(LessonSubjectCode.PPL_39, 'Ppl 39');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_01, 'Ppl Azm 01');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_02, 'Ppl Azm 02');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_03, 'Ppl Azm 03');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_04, 'Ppl Azm 04');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_05, 'Ppl Azm 05');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_06, 'Ppl Azm 06');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_07, 'Ppl Azm 07');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_08, 'Ppl Azm 08');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_09, 'Ppl Azm 09');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_10, 'Ppl Azm 10');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_11, 'Ppl Azm 11');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_12, 'Ppl Azm 12');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_13, 'Ppl Azm 13');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_14, 'Ppl Azm 14');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_15, 'Ppl Azm 15');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_16, 'Ppl Azm 16');\n\t\n\tresult.set(LessonSubjectCode.CPL_01, 'Cpl 01');\n\t\n\tresult.set(LessonSubjectCode.CPL_02, 'Cpl 02');\n\t\n\tresult.set(LessonSubjectCode.CPL_03, 'Cpl 03');\n\t\n\tresult.set(LessonSubjectCode.CPL_04, 'Cpl 04');\n\t\n\tresult.set(LessonSubjectCode.CPL_05, 'Cpl 05');\n\t\n\tresult.set(LessonSubjectCode.CPL_06, 'Cpl 06');\n\t\n\tresult.set(LessonSubjectCode.CPL_07, 'Cpl 07');\n\t\n\tresult.set(LessonSubjectCode.CPL_08, 'Cpl 08');\n\t\n\tresult.set(LessonSubjectCode.CPL_09, 'Cpl 09');\n\t\n\tresult.set(LessonSubjectCode.CPL_10, 'Cpl 10');\n\t\n\tresult.set(LessonSubjectCode.CPL_11, 'Cpl 11');\n\t\n\tresult.set(LessonSubjectCode.CPL_12, 'Cpl 12');\n\t\n\tresult.set(LessonSubjectCode.CPL_13, 'Cpl 13');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_01, 'Ifr 05 01');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_02, 'Ifr 05 02');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_03, 'Ifr 05 03');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_04, 'Ifr 05 04');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_05, 'Ifr 05 05');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_01, 'Ifr 20 01');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_02, 'Ifr 20 02');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_03, 'Ifr 20 03');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_04, 'Ifr 20 04');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_05, 'Ifr 20 05');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_06, 'Ifr 20 06');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_07, 'Ifr 20 07');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_08, 'Ifr 20 08');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_09, 'Ifr 20 09');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_10, 'Ifr 20 10');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_11, 'Ifr 20 11');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_12, 'Ifr 20 12');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_13, 'Ifr 20 13');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_14, 'Ifr 20 14');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_15, 'Ifr 20 15');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_16, 'Ifr 20 16');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_17, 'Ifr 20 17');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_18, 'Ifr 20 18');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// StatusCode represents a general workflow status: PENDING | IN_PROGRESS | DONE ...\nexport enum StatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Flow not started yet [1] \n PENDING = 1,\n \n // Flow in process [2] \n IN_PROCESS = 2,\n \n // Flow completed [3] \n COMPLETED = 3,\n \n // Flow cancelled by user [4] \n CANCELLED = 4,\n \n // Flow automatically cancelled by the system [5] \n AUTO_CANCELLED = 5,\n \n}\n\n// Return list of StatusCode values and their display names\nexport function GetStatusCodes() : Tuple<StatusCode, string>[] {\n\tlet result : Tuple<StatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<StatusCode, string>(StatusCode.PENDING, 'StatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.IN_PROCESS, 'StatusCode.IN_PROCESS'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.COMPLETED, 'StatusCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.CANCELLED, 'StatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.AUTO_CANCELLED, 'StatusCode.AUTO_CANCELLED'))\n\t\n\n return result;\n}\n\n// Return map of StatusCode values and their display names\nexport function MapStatusCodes() : Map<StatusCode, string> {\n let result = new Map<StatusCode, string>();\n\n \n\tresult.set(StatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(StatusCode.PENDING, 'Pending');\n\t\n\tresult.set(StatusCode.IN_PROCESS, 'In Process');\n\t\n\tresult.set(StatusCode.COMPLETED, 'Completed');\n\t\n\tresult.set(StatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(StatusCode.AUTO_CANCELLED, 'Auto Cancelled');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FilterFlag represents combination of filtered fields\nexport enum FilterFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Global search [1] \n SEARCH = 1,\n \n // F2 [2] \n F2 = 2,\n \n // F3 [4] \n F3 = 4,\n \n // F4 [8] \n F4 = 8,\n \n // F5 [16] \n F5 = 16,\n \n // F6 [32] \n F6 = 32,\n \n // F7 [64] \n F7 = 64,\n \n // F8 [128] \n F8 = 128,\n \n // F9 [256] \n F9 = 256,\n \n // F10 [512] \n F10 = 512,\n \n // F11 [1024] \n F11 = 1024,\n \n // F12 [2048] \n F12 = 2048,\n \n // F13 [4096] \n F13 = 4096,\n \n // F14 [8192] \n F14 = 8192,\n \n // F15 [16384] \n F15 = 16384,\n \n // F16 [32768] \n F16 = 32768,\n \n // F17 [65536] \n F17 = 65536,\n \n // F18 [131072] \n F18 = 131072,\n \n // F19 [262144] \n F19 = 262144,\n \n // F20 [524288] \n F20 = 524288,\n \n // F21 [1048576] \n F21 = 1048576,\n \n // F22 [2097152] \n F22 = 2097152,\n \n // F23 [4194304] \n F23 = 4194304,\n \n // F24 [8388608] \n F24 = 8388608,\n \n // F25 [16777216] \n F25 = 16777216,\n \n}\n\n// Return list of FilterFlag values and their display names\nexport function GetFilterFlags() : Tuple<FilterFlag, string>[] {\n\tlet result : Tuple<FilterFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.SEARCH, 'FilterFlag.SEARCH'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F2, 'FilterFlag.F2'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F3, 'FilterFlag.F3'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F4, 'FilterFlag.F4'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F5, 'FilterFlag.F5'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F6, 'FilterFlag.F6'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F7, 'FilterFlag.F7'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F8, 'FilterFlag.F8'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F9, 'FilterFlag.F9'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F10, 'FilterFlag.F10'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F11, 'FilterFlag.F11'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F12, 'FilterFlag.F12'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F13, 'FilterFlag.F13'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F14, 'FilterFlag.F14'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F15, 'FilterFlag.F15'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F16, 'FilterFlag.F16'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F17, 'FilterFlag.F17'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F18, 'FilterFlag.F18'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F19, 'FilterFlag.F19'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F20, 'FilterFlag.F20'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F21, 'FilterFlag.F21'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F22, 'FilterFlag.F22'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F23, 'FilterFlag.F23'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F24, 'FilterFlag.F24'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F25, 'FilterFlag.F25'))\n\t\n\n return result;\n}\n\n// Return map of FilterFlag values and their display names\nexport function MapFilterFlags() : Map<FilterFlag, string> {\n let result = new Map<FilterFlag, string>();\n\n \n\tresult.set(FilterFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FilterFlag.SEARCH, 'Search');\n\t\n\tresult.set(FilterFlag.F2, 'F2');\n\t\n\tresult.set(FilterFlag.F3, 'F3');\n\t\n\tresult.set(FilterFlag.F4, 'F4');\n\t\n\tresult.set(FilterFlag.F5, 'F5');\n\t\n\tresult.set(FilterFlag.F6, 'F6');\n\t\n\tresult.set(FilterFlag.F7, 'F7');\n\t\n\tresult.set(FilterFlag.F8, 'F8');\n\t\n\tresult.set(FilterFlag.F9, 'F9');\n\t\n\tresult.set(FilterFlag.F10, 'F10');\n\t\n\tresult.set(FilterFlag.F11, 'F11');\n\t\n\tresult.set(FilterFlag.F12, 'F12');\n\t\n\tresult.set(FilterFlag.F13, 'F13');\n\t\n\tresult.set(FilterFlag.F14, 'F14');\n\t\n\tresult.set(FilterFlag.F15, 'F15');\n\t\n\tresult.set(FilterFlag.F16, 'F16');\n\t\n\tresult.set(FilterFlag.F17, 'F17');\n\t\n\tresult.set(FilterFlag.F18, 'F18');\n\t\n\tresult.set(FilterFlag.F19, 'F19');\n\t\n\tresult.set(FilterFlag.F20, 'F20');\n\t\n\tresult.set(FilterFlag.F21, 'F21');\n\t\n\tresult.set(FilterFlag.F22, 'F22');\n\t\n\tresult.set(FilterFlag.F23, 'F23');\n\t\n\tresult.set(FilterFlag.F24, 'F24');\n\t\n\tresult.set(FilterFlag.F25, 'F25');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBCategoryCode represents the ADSB category types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBCategoryCode {\n \n // No information at all [0] \n UNDEFINED = 0,\n \n // No ADS-B Emitter Category Information [1] \n NO_ADSB = 1,\n \n // Light (< 15500 lbs) [2] \n LIGHT = 2,\n \n // Small (15500 to 75000 lbs) [3] \n SMALL = 3,\n \n // Large (75000 to 300000 lbs) [4] \n LARGE = 4,\n \n // Very large aircraft (such as B-757) [5] \n HIGH_VORTEX = 5,\n \n // (> 300000 lbs) [6] \n HEAVY = 6,\n \n}\n\n// Return list of ADSBCategoryCode values and their display names\nexport function GetADSBCategoryCodes() : Tuple<ADSBCategoryCode, string>[] {\n\tlet result : Tuple<ADSBCategoryCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.NO_ADSB, 'ADSBCategoryCode.NO_ADSB'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LIGHT, 'ADSBCategoryCode.LIGHT'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.SMALL, 'ADSBCategoryCode.SMALL'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LARGE, 'ADSBCategoryCode.LARGE'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HIGH_VORTEX, 'ADSBCategoryCode.HIGH_VORTEX'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HEAVY, 'ADSBCategoryCode.HEAVY'))\n\t\n\n return result;\n}\n\n// Return map of ADSBCategoryCode values and their display names\nexport function MapADSBCategoryCodes() : Map<ADSBCategoryCode, string> {\n let result = new Map<ADSBCategoryCode, string>();\n\n \n\tresult.set(ADSBCategoryCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ADSBCategoryCode.NO_ADSB, 'No Adsb');\n\t\n\tresult.set(ADSBCategoryCode.LIGHT, 'Light');\n\t\n\tresult.set(ADSBCategoryCode.SMALL, 'Small');\n\t\n\tresult.set(ADSBCategoryCode.LARGE, 'Large');\n\t\n\tresult.set(ADSBCategoryCode.HIGH_VORTEX, 'High Vortex');\n\t\n\tresult.set(ADSBCategoryCode.HEAVY, 'Heavy');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BillingStatusCode represents a flight billing status: ...\nexport enum BillingStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Unapproved [1] \n UNAPPROVED = 1,\n \n // Approved [2] \n APPROVED = 2,\n \n // Auto invoice created [3] \n CREATED_INVOICE = 3,\n \n // Auto invoice pending [4] \n PENDING_INVOICE = 4,\n \n // Manual invoice [5] \n MANUAL_INVOICE = 5,\n \n // Closed [6] \n CLOSED = 6,\n \n // Credit Client [7] \n CREDIT = 7,\n \n // Cancelled invoice [8] \n CANCELLED = 8,\n \n // Irrelevant status [9] \n CANCELLED_BY_CLIENT = 9,\n \n // Irrelevant status [10] \n IRRELEVANT = 10,\n \n}\n\n// Return list of BillingStatusCode values and their display names\nexport function GetBillingStatusCodes() : Tuple<BillingStatusCode, string>[] {\n\tlet result : Tuple<BillingStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.UNAPPROVED, 'BillingStatusCode.UNAPPROVED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.APPROVED, 'BillingStatusCode.APPROVED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREATED_INVOICE, 'BillingStatusCode.CREATED_INVOICE'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.PENDING_INVOICE, 'BillingStatusCode.PENDING_INVOICE'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.MANUAL_INVOICE, 'BillingStatusCode.MANUAL_INVOICE'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CLOSED, 'BillingStatusCode.CLOSED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREDIT, 'BillingStatusCode.CREDIT'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED, 'BillingStatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED_BY_CLIENT, 'BillingStatusCode.CANCELLED_BY_CLIENT'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.IRRELEVANT, 'BillingStatusCode.IRRELEVANT'))\n\t\n\n return result;\n}\n\n// Return map of BillingStatusCode values and their display names\nexport function MapBillingStatusCodes() : Map<BillingStatusCode, string> {\n let result = new Map<BillingStatusCode, string>();\n\n \n\tresult.set(BillingStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(BillingStatusCode.UNAPPROVED, 'Unapproved');\n\t\n\tresult.set(BillingStatusCode.APPROVED, 'Approved');\n\t\n\tresult.set(BillingStatusCode.CREATED_INVOICE, 'Created Invoice');\n\t\n\tresult.set(BillingStatusCode.PENDING_INVOICE, 'Pending Invoice');\n\t\n\tresult.set(BillingStatusCode.MANUAL_INVOICE, 'Manual Invoice');\n\t\n\tresult.set(BillingStatusCode.CLOSED, 'Closed');\n\t\n\tresult.set(BillingStatusCode.CREDIT, 'Credit');\n\t\n\tresult.set(BillingStatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(BillingStatusCode.CANCELLED_BY_CLIENT, 'Cancelled By Client');\n\t\n\tresult.set(BillingStatusCode.IRRELEVANT, 'Irrelevant');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStateCode represents a flight state which can't be modified manually: PENDING | ACTIVE | COMPLETED ...\nexport enum FlightStateCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending (Not started) [1] \n PENDING = 1,\n \n // Active (on flight) [2] \n ACTIVE = 2,\n \n // Completed (Done) [3] \n COMPLETED = 3,\n \n // Cancelled [4] \n CANCELLED = 4,\n \n}\n\n// Return list of FlightStateCode values and their display names\nexport function GetFlightStateCodes() : Tuple<FlightStateCode, string>[] {\n\tlet result : Tuple<FlightStateCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.PENDING, 'FlightStateCode.PENDING'))\n\t\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.ACTIVE, 'FlightStateCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.COMPLETED, 'FlightStateCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.CANCELLED, 'FlightStateCode.CANCELLED'))\n\t\n\n return result;\n}\n\n// Return map of FlightStateCode values and their display names\nexport function MapFlightStateCodes() : Map<FlightStateCode, string> {\n let result = new Map<FlightStateCode, string>();\n\n \n\tresult.set(FlightStateCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightStateCode.PENDING, 'Pending');\n\t\n\tresult.set(FlightStateCode.ACTIVE, 'Active');\n\t\n\tresult.set(FlightStateCode.COMPLETED, 'Completed');\n\t\n\tresult.set(FlightStateCode.CANCELLED, 'Cancelled');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LeadStatusCode represents the lead status: NEW | INPROCESS | ASSIGNED ...\nexport enum LeadStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // New Lead [1] \n NEW = 1,\n \n // Lead in process [2] \n INPROCESS = 2,\n \n // Lead Assigned [3] \n ASSIGNED = 3,\n \n // Lead converted [4] \n CONVERTED = 4,\n \n // Lead irrelevant [5] \n IRRELEVANT = 5,\n \n // Lead redirected [6] \n REDIRECTED = 6,\n \n // Followup action required after successful conversion [7] \n FOLLOWUP = 7,\n \n}\n\n// Return list of LeadStatusCode values and their display names\nexport function GetLeadStatusCodes() : Tuple<LeadStatusCode, string>[] {\n\tlet result : Tuple<LeadStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.NEW, 'LeadStatusCode.NEW'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.INPROCESS, 'LeadStatusCode.INPROCESS'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.ASSIGNED, 'LeadStatusCode.ASSIGNED'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.CONVERTED, 'LeadStatusCode.CONVERTED'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.IRRELEVANT, 'LeadStatusCode.IRRELEVANT'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.REDIRECTED, 'LeadStatusCode.REDIRECTED'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.FOLLOWUP, 'LeadStatusCode.FOLLOWUP'))\n\t\n\n return result;\n}\n\n// Return map of LeadStatusCode values and their display names\nexport function MapLeadStatusCodes() : Map<LeadStatusCode, string> {\n let result = new Map<LeadStatusCode, string>();\n\n \n\tresult.set(LeadStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LeadStatusCode.NEW, 'New');\n\t\n\tresult.set(LeadStatusCode.INPROCESS, 'Inprocess');\n\t\n\tresult.set(LeadStatusCode.ASSIGNED, 'Assigned');\n\t\n\tresult.set(LeadStatusCode.CONVERTED, 'Converted');\n\t\n\tresult.set(LeadStatusCode.IRRELEVANT, 'Irrelevant');\n\t\n\tresult.set(LeadStatusCode.REDIRECTED, 'Redirected');\n\t\n\tresult.set(LeadStatusCode.FOLLOWUP, 'Followup');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// OperatorCode represents a math operator\nexport enum OperatorCode {\n \n}\n\n// Return list of OperatorCode values and their display names\nexport function GetOperatorCodes() : Tuple<OperatorCode, string>[] {\n\tlet result : Tuple<OperatorCode, string>[] = [];\n\n \n\n return result;\n}\n\n// Return map of OperatorCode values and their display names\nexport function MapOperatorCodes() : Map<OperatorCode, string> {\n let result = new Map<OperatorCode, string>();\n\n \n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TransactionTypeCode represents the credit transaction type\nexport enum TransactionTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Payment for Flight auto charged by the system (Debit) - Auto calculated from flight diary [1] \n FLIGHT = 1,\n \n // Payment for Instruction (Debit) [2] \n INSTRUCTION = 2,\n \n // Payment for Purchasing a Product / Service (Debit) [3] \n PURCHASE = 3,\n \n // Credit from client (Credit) [4] \n PAYMENT = 4,\n \n // Bonus added to client (Credit) [5] \n BONUS = 5,\n \n // Refund for client (Credit) [6] \n REFUND = 6,\n \n}\n\n// Return list of TransactionTypeCode values and their display names\nexport function GetTransactionTypeCodes() : Tuple<TransactionTypeCode, string>[] {\n\tlet result : Tuple<TransactionTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.FLIGHT, 'TransactionTypeCode.FLIGHT'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.INSTRUCTION, 'TransactionTypeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PURCHASE, 'TransactionTypeCode.PURCHASE'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PAYMENT, 'TransactionTypeCode.PAYMENT'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.BONUS, 'TransactionTypeCode.BONUS'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.REFUND, 'TransactionTypeCode.REFUND'))\n\t\n\n return result;\n}\n\n// Return map of TransactionTypeCode values and their display names\nexport function MapTransactionTypeCodes() : Map<TransactionTypeCode, string> {\n let result = new Map<TransactionTypeCode, string>();\n\n \n\tresult.set(TransactionTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(TransactionTypeCode.FLIGHT, 'Flight');\n\t\n\tresult.set(TransactionTypeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(TransactionTypeCode.PURCHASE, 'Purchase');\n\t\n\tresult.set(TransactionTypeCode.PAYMENT, 'Payment');\n\t\n\tresult.set(TransactionTypeCode.BONUS, 'Bonus');\n\t\n\tresult.set(TransactionTypeCode.REFUND, 'Refund');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingTypeFlag represents the booking type: LESSON | PATTERN | RENTAL | WORK | SIM ...\nexport enum BookingTypeFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Flight lesson [1] \n LESSON = 1,\n \n // Flight lesson for patterns [2] \n PATTERNS = 2,\n \n // Book for rental [3] \n RENTAL = 3,\n \n // Book for Introductory Flight [4] \n INTRODUCTORY = 4,\n \n // Book for Simulator [5] \n SIMULATOR = 5,\n \n // Book for aerial photography mission [6] \n PHOTO = 6,\n \n // Book for other mission [7] \n MISSION = 7,\n \n // Book for maintenance [8] \n MAINTENANCE = 8,\n \n}\n\n// Return list of BookingTypeFlag values and their display names\nexport function GetBookingTypeFlags() : Tuple<BookingTypeFlag, string>[] {\n\tlet result : Tuple<BookingTypeFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.LESSON, 'BookingTypeFlag.LESSON'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PATTERNS, 'BookingTypeFlag.PATTERNS'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.RENTAL, 'BookingTypeFlag.RENTAL'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.INTRODUCTORY, 'BookingTypeFlag.INTRODUCTORY'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.SIMULATOR, 'BookingTypeFlag.SIMULATOR'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PHOTO, 'BookingTypeFlag.PHOTO'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MISSION, 'BookingTypeFlag.MISSION'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MAINTENANCE, 'BookingTypeFlag.MAINTENANCE'))\n\t\n\n return result;\n}\n\n// Return map of BookingTypeFlag values and their display names\nexport function MapBookingTypeFlags() : Map<BookingTypeFlag, string> {\n let result = new Map<BookingTypeFlag, string>();\n\n \n\tresult.set(BookingTypeFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(BookingTypeFlag.LESSON, 'Lesson');\n\t\n\tresult.set(BookingTypeFlag.PATTERNS, 'Patterns');\n\t\n\tresult.set(BookingTypeFlag.RENTAL, 'Rental');\n\t\n\tresult.set(BookingTypeFlag.INTRODUCTORY, 'Introductory');\n\t\n\tresult.set(BookingTypeFlag.SIMULATOR, 'Simulator');\n\t\n\tresult.set(BookingTypeFlag.PHOTO, 'Photo');\n\t\n\tresult.set(BookingTypeFlag.MISSION, 'Mission');\n\t\n\tresult.set(BookingTypeFlag.MAINTENANCE, 'Maintenance');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PriorityCode represents a priority: LOW | MEDIUM | HIGH\nexport enum PriorityCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // No priority [1] \n NONE = 1,\n \n // Low priority [2] \n LOW = 2,\n \n // Medium priority [3] \n MEDIUM = 3,\n \n // High priority [4] \n HIGH = 4,\n \n}\n\n// Return list of PriorityCode values and their display names\nexport function GetPriorityCodes() : Tuple<PriorityCode, string>[] {\n\tlet result : Tuple<PriorityCode, string>[] = [];\n\n \n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.NONE, 'PriorityCode.NONE'))\n\t\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.LOW, 'PriorityCode.LOW'))\n\t\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.MEDIUM, 'PriorityCode.MEDIUM'))\n\t\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.HIGH, 'PriorityCode.HIGH'))\n\t\n\n return result;\n}\n\n// Return map of PriorityCode values and their display names\nexport function MapPriorityCodes() : Map<PriorityCode, string> {\n let result = new Map<PriorityCode, string>();\n\n \n\tresult.set(PriorityCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(PriorityCode.NONE, 'None');\n\t\n\tresult.set(PriorityCode.LOW, 'Low');\n\t\n\tresult.set(PriorityCode.MEDIUM, 'Medium');\n\t\n\tresult.set(PriorityCode.HIGH, 'High');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TicketStatusCode represents a flight ticket status: ...\nexport enum TicketStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending [1] \n PENDING = 1,\n \n // Sent to client [2] \n SENT = 2,\n \n}\n\n// Return list of TicketStatusCode values and their display names\nexport function GetTicketStatusCodes() : Tuple<TicketStatusCode, string>[] {\n\tlet result : Tuple<TicketStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.PENDING, 'TicketStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.SENT, 'TicketStatusCode.SENT'))\n\t\n\n return result;\n}\n\n// Return map of TicketStatusCode values and their display names\nexport function MapTicketStatusCodes() : Map<TicketStatusCode, string> {\n let result = new Map<TicketStatusCode, string>();\n\n \n\tresult.set(TicketStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(TicketStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(TicketStatusCode.SENT, 'Sent');\n\t\n\n return result;\n}\n","\nimport { Location } from '.';\n\n\n\n// ADSBState model represents the ADSB real time state of an airplane\nexport class ADSBState {\n \n // Unique ICAO 24-bit address of the transponder in hex string representation \n public icaoAddr: string;\n \n // Callsign of the vehicle (8 chars). Can be null if no callsign has been received \n public callsign: string;\n \n // Country name inferred from the ICAO 24-bit address \n public origin: string;\n \n // Unix timestamp (seconds) for the last position update. Can be null if no position report was received by OpenSky within the past 15s \n public timePosition: number;\n \n // Unix timestamp (seconds) for the last update in general. This field is updated for any new, valid message received from the transponder \n public lastContact: number;\n \n // WGS-84 location and Geometric altitude \n public location: Location;\n \n // Boolean value which indicates if the position was retrieved from a surface position report \n public on_ground: boolean;\n \n // Velocity over ground in m/s. Can be null. \n public velocity: number;\n \n // True track in decimal degrees clockwise from north (north=0°). Can be null. \n public track: number;\n \n // Vertical rate in m/s. A positive value indicates that the airplane is climbing, a negative value indicates that it descends. Can be null \n public vertical: number;\n \n // IDs of the receivers which contributed to this state vector. Is null if no filtering for sensor was used in the request \n public sensors: number[];\n \n // Barometric altitude in meters. Can be null. \n public barometer: number;\n \n // The transponder code aka Squawk \n public squawk: string;\n \n // Whether flight status indicates special purpose indicator \n public spi: boolean;\n \n constructor(icaoAddr?: string, callsign?: string, origin?: string, timePosition?: number, lastContact?: number, location?: Location, onGround?: boolean, velocity?: number, track?: number, vertical?: number, sensors?: number[], barometer?: number, squawk?: string, sPI?: boolean) { \n if (icaoAddr !== undefined) { this.icaoAddr = icaoAddr; }\n if (callsign !== undefined) { this.callsign = callsign; }\n if (origin !== undefined) { this.origin = origin; }\n if (timePosition !== undefined) { this.timePosition = timePosition; }\n if (lastContact !== undefined) { this.lastContact = lastContact; }\n if (location !== undefined) { this.location = location; }\n if (onGround !== undefined) { this.on_ground = onGround; }\n if (velocity !== undefined) { this.velocity = velocity; }\n if (track !== undefined) { this.track = track; }\n if (vertical !== undefined) { this.vertical = vertical; }\n if (sensors !== undefined) { this.sensors = sensors; }\n if (barometer !== undefined) { this.barometer = barometer; }\n if (squawk !== undefined) { this.squawk = squawk; }\n if (sPI !== undefined) { this.spi = sPI; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { AirplaneValidationFlag } from '.';\nimport { Engine } from '.';\nimport { Magneto } from '.';\nimport { Propeller } from '.';\nimport { Fuel } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { AirplaneStatusCode } from '.';\n\n\n\n// Airplane entity represents an airplane\nexport class Airplane extends BaseEntityEx {\n \n // Name \n public name: string;\n \n // Description \n public description: string;\n \n // Airplane model \n public model: string;\n \n // Airplane serial number \n public serialNo: string;\n \n // Airplane status \n public status: AirplaneStatusCode;\n \n // Auto-calculated flag to mark if the airplane is active (available) or not \n public isActive: boolean;\n \n // Airplane hobs counter \n public hobs: number;\n \n // Airplane tachometer counter \n public tach: number;\n \n // Airplane next tachometer for inspection \n public nextTach: number;\n \n // Airplane air time (hours) \n public airTime: number;\n \n // Airplane customer number \n public customerNo: string;\n \n // Airworthiness flags \n public airworthiness: AirplaneValidationFlag;\n \n // Airworthiness required flags for the airplane to be active \n public required: AirplaneValidationFlag;\n \n // Fixed value to first flight \n public fixedValueToFirstFlight: number;\n \n // AC total time \n public acTotalTime: number;\n \n // Single / Left Engine indicators \n public engine: Engine;\n \n // Left Magneto indicators \n public leftMagneto: Magneto;\n \n // Right Magneto indicators \n public rightMagneto: Magneto;\n \n // Single / Left Propeller indicators \n public propeller: Propeller;\n \n // Fuel indicators \n public fuel: Fuel;\n \n // Airplane related documents \n public documents: string[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetAirplaneColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"model\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"serialNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AirplaneStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isActive\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"airTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"customerNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airworthiness\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"required\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fixedValueToFirstFlight\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"acTotalTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"engine\", \"Engine\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leftMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"rightMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"propeller\", \"Propeller\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuel\", \"Fuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documents\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// BillingRecord is a single record in the total billing of the flight\nexport class BillingRecord {\n \n // Billing record key - for \n public key: number;\n \n // Billing units - quantity_c / quantity_2_c \n public units: number;\n \n // Price per Unit - price_c / price_2_c \n public unitPrice: number;\n \n // Base factor (0 means no factor) \n public baseRate: number;\n \n // Description for Invoice - invoice_description_c / invoice_description_2_c \n public description: string;\n \n // Flag to indicate if VAT included (false) or Exempt (true) \n public exempt: boolean;\n \n constructor(key?: number, units?: number, unitPrice?: number, baseRate?: number, description?: string, exempt?: boolean) { \n if (key !== undefined) { this.key = key; }\n if (units !== undefined) { this.units = units; }\n if (unitPrice !== undefined) { this.unitPrice = unitPrice; }\n if (baseRate !== undefined) { this.baseRate = baseRate; }\n if (description !== undefined) { this.description = description; }\n if (exempt !== undefined) { this.exempt = exempt; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// DepartureRisks group of departure risk values\nexport class DepartureRisks {\n \n // Mountainous airport \n public mountainousAirport: number;\n \n // Control tower not operational at ETD \n public towerNotOperationalAtEtd: number;\n \n // Departure - Non-towered airport \n public nonToweredAirport: number;\n \n // Departure - Wet Runway \n public wetRunway: number;\n \n // Departure - Contaminated Runway \n public contaminatedRunway: number;\n \n constructor(mountainousAirport?: number, towerNotOperationalAtEtd?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEtd !== undefined) { this.towerNotOperationalAtEtd = towerNotOperationalAtEtd; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TicketStatusCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightTicket entity is a single flight in the airplane\nexport class FlightTicket extends BaseEntityEx {\n \n // Flight ticket name \n public name: string;\n \n // Flight ticket description \n public description: string;\n \n // Flight ticket number \n public ticketNumber: number;\n \n // Flight number \n public flightNumber: number;\n \n // Flight Id \n public flightId: string;\n \n // Flight ticket status: PENDING | SENT ... \n public status: TicketStatusCode;\n \n // Customer name \n public customerName: string;\n \n // Customer email \n public customerEmail: string;\n \n // Customer mobile phone \n public customerMobile: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightTicketColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"ticketNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"TicketStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerEmail\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerMobile\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\nimport { BookingStatusCode } from '.';\n\n\n\n// BookingsFilter list of fields to filter bookings\nexport class BookingsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by time frame \n public period: TimeFrame;\n \n // Filter by Account ID \n public accountId: string;\n \n // Filter by Contact ID \n public contactId: string;\n \n // Filter by Airplane ID (when the booking is approved) \n public airplaneId: string;\n \n // Filter by Status(es) of booking \n public status: BookingStatusCode[];\n \n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, status?: BookingStatusCode[]) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (status !== undefined) { this.status = status; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightPurposeCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Price entity is a single pricing of an airplane per flight purpose in the price list\nexport class Price extends BaseEntityEx {\n \n // Price item name \n public name: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Special price for a specific account (* for all accounts) \n public accountId: string;\n \n // Special price for a specific purpose (UNDEFINED for all) \n public purpose: FlightPurposeCode;\n \n // Cost of the airplane per flight purpose \n public cost: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetPriceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"cost\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { StatusCode } from '.';\n\n\n\n// ContactsFilter list of fields to filter contacts\nexport class ContactsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by status(es) \n public status: StatusCode[];\n \n // Flag indicating if this contact is a pilot \n public isPilot: boolean;\n \n constructor(search?: string, status?: StatusCode[], isPilot?: boolean) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isPilot !== undefined) { this.isPilot = isPilot; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { UserTypeCode } from '.';\nimport { UserStatusCode } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// UsersFilter list of fields to filter users\nexport class UsersFilter {\n \n // Filter by text search on name / id / email (using * wildcard) \n public search: string;\n \n // Filter by type(s) \n public type: UserTypeCode[];\n \n // Filter by status(s) \n public status: UserStatusCode[];\n \n // Filter by time frame of last sign in \n public lastSignIn: TimeFrame;\n \n constructor(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], lastSignIn?: TimeFrame) { \n if (search !== undefined) { this.search = search; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (lastSignIn !== undefined) { this.lastSignIn = lastSignIn; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { FlightTypeCode } from '.';\nimport { FlightPurposeCode } from '.';\nimport { OnBoard } from '.';\nimport { TOLData } from '.';\nimport { ReFuel } from '.';\nimport { Lesson } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// PostFlightData model represents pre-flight information\nexport class PostFlightData extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Captain / Instructor contact ID - replace OnBoard \n public captain: string;\n \n // First Officer / Student contact ID - replace OnBoard \n public firstOfficer: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Crew and Passengers on board \n public onBoard: OnBoard;\n \n // Flight attending time [YYYY-MM-DD HH:mm] \n public attendingTime: string;\n \n // Flight boarding time [YYYY-MM-DD HH:mm] \n public boardingTime: string;\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Flight has competency certification \n public hasCompetency: boolean;\n \n // Flight has a flight plan \n public hasFlightPlan: boolean;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Fuel status before and after flight \n public fuelStatus: ReFuel;\n \n // Oil status before and after flight \n public oilStatus: ReFuel;\n \n // Flight lesson attributes \n public lesson: Lesson;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetPostFlightDataColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"onBoard\", \"OnBoard\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasCompetency\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasFlightPlan\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"oilStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightPassenger entity is a passenger in the flight\nexport class FlightPassenger extends BaseEntityEx {\n \n // Flight ID \n public flightId: string;\n \n // Flight Number \n public flightNumber: number;\n \n // Passenger name \n public name: string;\n \n // Passenger Mobile phone \n public mobile: string;\n \n // Passenger Email address \n public email: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightPassengerColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { AccountStatusCode } from '.';\n\n\n\n// AccountsFilter list of fields to filter accounts\nexport class AccountsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // by status(s) \n public status: AccountStatusCode[];\n \n constructor(search?: string, status?: AccountStatusCode[]) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { LeadStatusCode } from '.';\n\n\n\n// LeadsFilter list of fields to filter leads\nexport class LeadsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by status(s) \n public status: LeadStatusCode[];\n \n constructor(search?: string, status?: LeadStatusCode[]) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { MaintenanceActionCode } from '.';\nimport { StatusCode } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// MaintenancesFilter list of fields to filter maintenance\nexport class MaintenancesFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by airplane ID \n public airplaneId: string;\n \n // Filter by action(s) \n public action: MaintenanceActionCode[];\n \n // Filter by status(s) \n public status: StatusCode[];\n \n // Filter by time frame of valid time \n public valid: TimeFrame;\n \n constructor(search?: string, airplaneId?: string, action?: MaintenanceActionCode[], status?: StatusCode[], valid?: TimeFrame) { \n if (search !== undefined) { this.search = search; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (action !== undefined) { this.action = action; }\n if (status !== undefined) { this.status = status; }\n if (valid !== undefined) { this.valid = valid; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightCategoryCode } from '.';\nimport { InstructionTypeCode } from '.';\n\n\n\n// SyllabusFilter list of fields to filter syllabus\nexport class SyllabusFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by Syllabus plan(s) \n public plan: FlightCategoryCode[];\n \n // Filter by Lesson type(s) \n public type: InstructionTypeCode[];\n \n constructor(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[]) { \n if (search !== undefined) { this.search = search; }\n if (plan !== undefined) { this.plan = plan; }\n if (type !== undefined) { this.type = type; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { SpecialRisks } from '.';\nimport { Mitigation } from '.';\nimport { PilotQualificationsRisks } from '.';\nimport { CrewDutyDayRisks } from '.';\nimport { TripRisks } from '.';\nimport { WeatherRisks } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { DepartureRisks } from '.';\nimport { DestinationRisks } from '.';\n\n\n\n// FlightRisk entity is a data extension for a single flight listing risk assessments and mitigation\n// The ID should be identical to the flight ID\nexport class FlightRisk extends BaseEntityEx {\n \n // Risk assessment time \n public timestamp: number;\n \n // Pilot Qualifications and and Experience risks \n public pilotQualifications: PilotQualificationsRisks;\n \n // Crew Duty Day risks \n public crewDutyDay: CrewDutyDayRisks;\n \n // Departure risks \n public departure: DepartureRisks;\n \n // Destination risks \n public destination: DestinationRisks;\n \n // Trip risks \n public trip: TripRisks;\n \n // Weather risks \n public weather: WeatherRisks;\n \n // Other special risks \n public other: SpecialRisks;\n \n // Risks mitigation strategy \n public mitigation: Mitigation;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightRiskColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"timestamp\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"pilotQualifications\", \"PilotQualificationsRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crewDutyDay\", \"CrewDutyDayRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"DepartureRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"DestinationRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"trip\", \"TripRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"weather\", \"WeatherRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"other\", \"SpecialRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mitigation\", \"Mitigation\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\n\n\n\n// AuditLogFilter list of fields to filter audit log entries\nexport class AuditLogFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by time frame \n public period: TimeFrame;\n \n // Filter by User ID \n public userId: string;\n \n // Filter by action \n public action: string;\n \n // Filter by item type \n public itemType: string;\n \n // Filter by item ID \n public itemId: string;\n \n // Filter by item name \n public itemName: string;\n \n constructor(search?: string, period?: TimeFrame, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (userId !== undefined) { this.userId = userId; }\n if (action !== undefined) { this.action = action; }\n if (itemType !== undefined) { this.itemType = itemType; }\n if (itemId !== undefined) { this.itemId = itemId; }\n if (itemName !== undefined) { this.itemName = itemName; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { StatusCode } from '.';\nimport { ValidationFlag } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// CertificatesFilter list of fields to filter certificates\nexport class CertificatesFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by contact ID \n public contactId: string;\n \n // Filter by status(es) \n public status: StatusCode[];\n \n // Filter by validation type(es) \n public type: ValidationFlag[];\n \n // Filter by time frame of valid until \n public valid: TimeFrame;\n \n constructor(search?: string, contactId?: string, status?: StatusCode[], type?: ValidationFlag[], valid?: TimeFrame) { \n if (search !== undefined) { this.search = search; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (status !== undefined) { this.status = status; }\n if (type !== undefined) { this.type = type; }\n if (valid !== undefined) { this.valid = valid; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TransactionTypeCode } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// CreditsFilter list of fields to filter credits\nexport class CreditsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by account \n public accountId: string;\n \n // Filter by flight \n public flightId: string;\n \n // Filter by transaction type(s) \n public type: TransactionTypeCode[];\n \n // Filter by time frame of transaction time \n public period: TimeFrame;\n \n // Filter by reference \n public reference: string;\n \n constructor(search?: string, accountId?: string, flightId?: string, type?: TransactionTypeCode[], period?: TimeFrame, reference?: string) { \n if (search !== undefined) { this.search = search; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (flightId !== undefined) { this.flightId = flightId; }\n if (type !== undefined) { this.type = type; }\n if (period !== undefined) { this.period = period; }\n if (reference !== undefined) { this.reference = reference; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { BookingTypeFlag } from '.';\nimport { FlightPurposeCode } from '.';\nimport { FlightStatusCode } from '.';\n\n\n\n// BookingPlan entity is a subset of booking and flight union for booking planning tools\nexport class BookingPlan extends BaseEntityEx {\n \n // Name \n public name: string;\n \n // Description \n public description: string;\n \n // Flag to mark entry as flight or booking \n public isFlight: boolean;\n \n // Account ID \n public accountId: string;\n \n // Account Name \n public accountName: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Airplane ID \n public airplaneName: string;\n \n // Type of booking \n public type: BookingTypeFlag;\n \n // When to ask for the airplane [Epoch milliseconds] \n public placementOn: number;\n \n // When to return the airplane [Epoch milliseconds] \n public placementTo: number;\n \n // Flight number (for flights only) \n public flightNumber: number;\n \n // Flight ID (for flights only) \n public flightId: string;\n \n // Purpose of the flight (for flights only) \n public flightPurpose: FlightPurposeCode;\n \n // Status of flight (for flights only) \n public flightStatus: FlightStatusCode;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFlight\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightPurpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightStatus\", \"FlightStatusCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BillingRecord } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightBilling entity is a data extension for a single flight listing all billing details of this flight\n// The ID should be identical to the flight ID\nexport class FlightBilling extends BaseEntityEx {\n \n // Billing invoice records \n public invoiceRecords: BillingRecord[];\n \n // Billing invoice issue date [epoch time milliseconds] \n public invoiceDate: number;\n \n // Discount percentage (0 .. 100) - percentage_discount \n public discountPercentage: number;\n \n // Total before VAT - total_charge_c \n public totalBeforeVat: number;\n \n // Total including VAT - total_charge_inc_vat_bef_dis_c \n public totalAfterVat: number;\n \n // Total charge including VAT after discount - total_charge_includes_vat_c \n public totalAfterDiscount: number;\n \n // Pilot payment - pilot_requested_payment_c \n public pilotPayment: number;\n \n // Pilot payment status - pilot_payment_status_c \n public pilotPaymentStatus: string;\n \n // Pilot payment - lbl_first_officer_payment_c \n public firstOfficerPayment: number;\n \n // Pilot payment status - lbl_firts_officer_payment_st_c \n public firstOfficerPaymentStatus: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightBillingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceRecords\", \"BillingRecord\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"discountPercentage\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalBeforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterDiscount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPaymentStatus\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPaymentStatus\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// SpecialRisks group of special / other risk values\nexport class SpecialRisks {\n \n // Special Flight Permit operation (ferry permit) \n public specialFlightPermit: number;\n \n // MEL / CDL Items (items related to safety of flight) \n public specialMelCdlItems: number;\n \n // Special flight limitations based on AFM equipment limitations \n public specialFlightLimitAfm: number;\n \n constructor(specialFlightPermit?: number, specialMelCdlItems?: number, specialFlightLimitAfm?: number) { \n if (specialFlightPermit !== undefined) { this.specialFlightPermit = specialFlightPermit; }\n if (specialMelCdlItems !== undefined) { this.specialMelCdlItems = specialMelCdlItems; }\n if (specialFlightLimitAfm !== undefined) { this.specialFlightLimitAfm = specialFlightLimitAfm; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightTypeCode } from '.';\nimport { FlightStatusCode } from '.';\nimport { FlightStateCode } from '.';\nimport { FlightPurposeCode } from '.';\nimport { TOLData } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightPlan entity is a subset of flight for flight planning tools\nexport class FlightPlan extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Account ID \n public accountId: string;\n \n // Account Name \n public accountName: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Airplane ID \n public airplaneName: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Flight status: REGISTERED | DELETE | CANCELLED ... \n public status: FlightStatusCode;\n \n // Flight actual state PENDING | ACTIVE | COMPLETED (can't be manually modified): ... \n public state: FlightStateCode;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Captain ID \n public captainId: string;\n \n // Captain Name \n public captainName: string;\n \n // First Officer / Student contact Id \n public firstOfficerId: string;\n \n // First Officer / Student contact Name \n public firstOfficerName: string;\n \n // Passengers names \n public passengers: string[];\n \n // Crew members (name:role) \n public crew: string[];\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Landing data \n public landing: TOLData;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"state\", \"FlightStateCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"passengers\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crew\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { MaintenanceActionCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { StatusCode } from '.';\n\n\n\n// Maintenance entity is an airplane airworthiness certificate\nexport class Maintenance extends BaseEntityEx {\n \n // Maintenance name \n public name: string;\n \n // Maintenance description \n public description: string;\n \n // Linked airplane ID \n public airplaneId: string;\n \n // Linked document ID \n public documentId: string;\n \n // Airplane hobs counter \n public hobs: number;\n \n // Airplane next hobs for inspection \n public nextHobs: number;\n \n // Airplane tachometer counter \n public tach: number;\n \n // Airplane next tachometer for inspection \n public nextTach: number;\n \n // Maintenance Certificate is valid until the timestamp [epoch time milliseconds] \n public validUntil: number;\n \n // Maintenance workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n public status: StatusCode;\n \n // Airworthiness component code \n public component: string;\n \n // Airworthiness action code \n public action: MaintenanceActionCode;\n \n // Time of notification sent to contact [epoch time milliseconds] \n public notifyAt: number;\n \n // Notification subject \n public subject: string;\n \n // Notification message \n public message: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetMaintenanceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextHobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"component\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"MaintenanceActionCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// LoginParams model used for authorize user by email or by SMS\nexport class LoginParams {\n \n // User email for login authentication or mail verification \n public email: string;\n \n // User mobile phone for SMS verification \n public mobile: string;\n \n // User token if he wsa already authenticated \n public token: string;\n \n constructor(email?: string, mobile?: string, token?: string) { \n if (email !== undefined) { this.email = email; }\n if (mobile !== undefined) { this.mobile = mobile; }\n if (token !== undefined) { this.token = token; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { AccountStatusCode } from '.';\nimport { Address } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// Account entity is a billing account in the system\nexport class Account extends BaseEntityEx {\n \n // Account name \n public name: string;\n \n // Account english name \n public enName: string;\n \n // Account description \n public description: string;\n \n // Account status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPENDED \n public status: AccountStatusCode;\n \n // Office / Landline phone \n public phone: string;\n \n // Mobile phone \n public mobile: string;\n \n // Email address \n public email: string;\n \n // Billing address \n public billingAddress: Address;\n \n // Shipping address \n public shippingAddress: Address;\n \n // Campaign Id \n public campaignId: string;\n \n // Is credit enabled for this account \n public enableCredit: boolean;\n \n // Current account credit \n public currentCredit: number;\n \n // Base rate for billing \n public baseRate: number;\n \n // Permanent discount (percentage) \n public percentageDiscount: number;\n \n // Green invoice Id \n public invoiceId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetAccountColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billingAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"shippingAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enableCredit\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"currentCredit\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"percentageDiscount\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { UserTypeCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// AuditLog entity is a log entry in the audit log to track users / service account actions\nexport class AuditLog extends BaseEntityEx {\n \n // User Id \n public userId: string;\n \n // User type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n public userType: UserTypeCode;\n \n // Action that was performed \n public action: string;\n \n // Item type \n public itemType: string;\n \n // Item Id \n public itemId: string;\n \n // Item Name \n public itemName: string;\n \n // Item value before change [Json] \n public beforeChange: string;\n \n // Item delta after change [Json] \n public afterChange: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetAuditLogColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"userId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"userType\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"beforeChange\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"afterChange\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { Billing } from '.';\nimport { RiskAssessment } from '.';\nimport { FlightStateCode } from '.';\nimport { FlightCategoryCode } from '.';\nimport { FlightTypeCode } from '.';\nimport { ReFuel } from '.';\nimport { FlightClassCode } from '.';\nimport { BillingStatusCode } from '.';\nimport { OnBoard } from '.';\nimport { FlightPurposeCode } from '.';\nimport { TOLData } from '.';\nimport { Lesson } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { FlightStatusCode } from '.';\n\n\n\n// Flight entity is a single flight in the airplane\nexport class Flight extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Account ID \n public accountId: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Captain / Instructor contact ID - replace OnBoard \n public captain: string;\n \n // First Officer / Student contact ID - replace OnBoard \n public firstOfficer: string;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Flight class - replace purpose \n public flightClass: FlightClassCode;\n \n // Flight sub-class - replace purpose \n public flightCategory: FlightCategoryCode;\n \n // Flight type: CVFR | IFR \n public type: FlightTypeCode;\n \n // Flight status: REGISTERED | DELETE | CANCELLED ... \n public status: FlightStatusCode;\n \n // Flight actual state PENDING | ACTIVE | COMPLETED (can't be manually modified): ... \n public state: FlightStateCode;\n \n // Billing status \n public billingStatus: BillingStatusCode;\n \n // Crew and Passengers on board \n public onBoard: OnBoard;\n \n // Flight attending time [YYYY-MM-DD HH:mm] \n public attendingTime: string;\n \n // Flight boarding time [YYYY-MM-DD HH:mm] \n public boardingTime: string;\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Landing data \n public landing: TOLData;\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Flight has competency certification - OBSOLETE \n public hasCompetency: boolean;\n \n // Flight has a flight plan - OBSOLETE \n public hasFlightPlan: boolean;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Fuel status before and after flight - OBSOLETE \n public fuelStatus: ReFuel;\n \n // Oil status before and after flight - OBSOLETE \n public oilStatus: ReFuel;\n \n // Fuel level \n public fuelLevel: number;\n \n // Oil level \n public oilLevel: number;\n \n // Flight lesson attributes \n public lesson: Lesson;\n \n // Flight billing information \n public billing: Billing;\n \n // Pilot certification check ? \n public pilotCertCheck: number;\n \n // Risk Assessment Tool & Mitigation Strategies \n public riskAssessment: RiskAssessment;\n \n // Contact Id of the pre-flight form reporter \n public preFlightReporter: string;\n \n // Contact Id of the post-flight form reporter \n public postFlightReporter: string;\n \n // Booking Id reference \n public bookingReference: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightClass\", \"FlightClassCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightCategory\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"state\", \"FlightStateCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billingStatus\", \"BillingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"onBoard\", \"OnBoard\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasCompetency\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasFlightPlan\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"oilStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"oilLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billing\", \"Billing\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotCertCheck\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"riskAssessment\", \"RiskAssessment\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"postFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingReference\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { DestinationRisks } from '.';\nimport { TripRisks } from '.';\nimport { WeatherRisks } from '.';\nimport { SpecialRisks } from '.';\nimport { Mitigation } from '.';\nimport { PilotQualificationsRisks } from '.';\nimport { CrewDutyDayRisks } from '.';\nimport { DepartureRisks } from '.';\n\n\n\n// RiskAssessment Risk Assessment Tool & Mitigation Strategies\nexport class RiskAssessment {\n \n // Risk assessment time \n public timestamp: number;\n \n // Pilot Qualifications and and Experience risks \n public pilotQualifications: PilotQualificationsRisks;\n \n // Crew Duty Day risks \n public crewDutyDay: CrewDutyDayRisks;\n \n // Departure risks \n public departure: DepartureRisks;\n \n // Destination risks \n public destination: DestinationRisks;\n \n // Trip risks \n public trip: TripRisks;\n \n // Weather risks \n public weather: WeatherRisks;\n \n // Other special risks \n public other: SpecialRisks;\n \n // Risks mitigation strategy \n public mitigation: Mitigation;\n \n constructor(timestamp?: number, pilotQualifications?: PilotQualificationsRisks, crewDutyDay?: CrewDutyDayRisks, departure?: DepartureRisks, destination?: DestinationRisks, trip?: TripRisks, weather?: WeatherRisks, other?: SpecialRisks, mitigation?: Mitigation) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (pilotQualifications !== undefined) { this.pilotQualifications = pilotQualifications; }\n if (crewDutyDay !== undefined) { this.crewDutyDay = crewDutyDay; }\n if (departure !== undefined) { this.departure = departure; }\n if (destination !== undefined) { this.destination = destination; }\n if (trip !== undefined) { this.trip = trip; }\n if (weather !== undefined) { this.weather = weather; }\n if (other !== undefined) { this.other = other; }\n if (mitigation !== undefined) { this.mitigation = mitigation; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// IntKeyValue model used as a string key- (int)value pair\nexport class IntKeyValue {\n \n // Tuple key \n public key: string;\n \n // Tuple value \n public value: number;\n \n constructor(key?: string, value?: number) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// ReFuel includes Fuel and Oil\nexport class ReFuel {\n \n // Refill before flight \n public refillBefore: number;\n \n // Total amount on board \n public amountOnBoard: number;\n \n // Refill after flight \n public refillAfter: number;\n \n constructor(refillBefore?: number, amountOnBoard?: number, refillAfter?: number) { \n if (refillBefore !== undefined) { this.refillBefore = refillBefore; }\n if (amountOnBoard !== undefined) { this.amountOnBoard = amountOnBoard; }\n if (refillAfter !== undefined) { this.refillAfter = refillAfter; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { LessonTypeCode } from '.';\nimport { FlightCategoryCode } from '.';\nimport { LessonSubjectCode } from '.';\nimport { AssessmentCode } from '.';\n\n\n\n// Lesson includes flight instruction lesson details\nexport class Lesson {\n \n // Lesson number - lesson_number \n public number: number;\n \n // Lesson type: INSTRUCTION | INSTRUCTION_CVFR | INSTRUCTION_IFR ... \n public type: LessonTypeCode;\n \n // Flight instruction plan \n public instructionPlan: FlightCategoryCode;\n \n // Lesson topic from the instruction plan syllabus \n public topicId: string;\n \n // Lesson subject by the syllabus - lesson_subject - OBSOLETE \n public subject: string;\n \n // Lesson subject enum by the syllabus - OBSOLETE \n public lessonSubject: LessonSubjectCode;\n \n // Instructor assessment (score) enum - lesson_score \n public assessment: AssessmentCode;\n \n // Pilot / Instructor comments after flight \n public comments: string;\n \n // First Officer / Student flight counter - student_flights_count \n public flightCounter: number;\n \n // Total instructed flight time - from hobbs \n public instructedFlightTime: number;\n \n // Total Instrument flight time - net_instruments_flight_time_c \n public instrumentsFlightTime: number;\n \n // Total student Solo flight time - student_solo_flight_time \n public soloFlightTime: number;\n \n constructor(number?: number, type?: LessonTypeCode, instructionPlan?: FlightCategoryCode, topicId?: string, subject?: string, lessonSubject?: LessonSubjectCode, assessment?: AssessmentCode, comments?: string, flightCounter?: number, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number) { \n if (number !== undefined) { this.number = number; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (topicId !== undefined) { this.topicId = topicId; }\n if (subject !== undefined) { this.subject = subject; }\n if (lessonSubject !== undefined) { this.lessonSubject = lessonSubject; }\n if (assessment !== undefined) { this.assessment = assessment; }\n if (comments !== undefined) { this.comments = comments; }\n if (flightCounter !== undefined) { this.flightCounter = flightCounter; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BillingRecord } from '.';\n\n\n\n// Billing includes flight billing information\nexport class Billing {\n \n // Billing invoice records \n public invoiceRecords: BillingRecord[];\n \n // Billing invoice issue date [epoch time milliseconds] \n public invoiceDate: number;\n \n // Discount percentage (0 .. 100) - percentage_discount \n public discountPercentage: number;\n \n // Total before VAT - total_charge_c \n public totalBeforeVat: number;\n \n // Total including VAT - total_charge_inc_vat_bef_dis_c \n public totalAfterVat: number;\n \n // Total charge including VAT after discount - total_charge_includes_vat_c \n public totalAfterDiscount: number;\n \n // Pilot payment - pilot_requested_payment_c \n public pilotPayment: number;\n \n // Pilot payment status - pilot_payment_status_c \n public pilotPaymentStatus: string;\n \n // Pilot payment - lbl_first_officer_payment_c \n public firstOfficerPayment: number;\n \n // Pilot payment status - lbl_firts_officer_payment_st_c \n public firstOfficerPaymentStatus: string;\n \n constructor(invoiceRecords?: BillingRecord[], invoiceDate?: number, discountPercentage?: number, totalBeforeVAT?: number, totalAfterVAT?: number, totalAfterDiscount?: number, pilotPayment?: number, pilotPaymentStatus?: string, firstOfficerPayment?: number, firstOfficerPaymentStatus?: string) { \n if (invoiceRecords !== undefined) { this.invoiceRecords = invoiceRecords; }\n if (invoiceDate !== undefined) { this.invoiceDate = invoiceDate; }\n if (discountPercentage !== undefined) { this.discountPercentage = discountPercentage; }\n if (totalBeforeVAT !== undefined) { this.totalBeforeVat = totalBeforeVAT; }\n if (totalAfterVAT !== undefined) { this.totalAfterVat = totalAfterVAT; }\n if (totalAfterDiscount !== undefined) { this.totalAfterDiscount = totalAfterDiscount; }\n if (pilotPayment !== undefined) { this.pilotPayment = pilotPayment; }\n if (pilotPaymentStatus !== undefined) { this.pilotPaymentStatus = pilotPaymentStatus; }\n if (firstOfficerPayment !== undefined) { this.firstOfficerPayment = firstOfficerPayment; }\n if (firstOfficerPaymentStatus !== undefined) { this.firstOfficerPaymentStatus = firstOfficerPaymentStatus; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Mitigation risks mitigation strategy\nexport class Mitigation {\n \n // Operations Manager evaluation \n public operationManagerEval: boolean;\n \n // Document mitigation \n public documentMitigation: boolean;\n \n // Mitigation strategies - Risk Assessment Tool \n public mitigationStrategy: string;\n \n // Manager name \n public managerName: string;\n \n // Manager ID number \n public idNumber: string;\n \n // Flight cannot be conducted under noted conditions \n public flightNotApproved: boolean;\n \n // Mitigation followup actions \n public followUpActions: string;\n \n constructor(operationManagerEval?: boolean, documentMitigation?: boolean, mitigationStrategy?: string, managerName?: string, idNumber?: string, flightNotApproved?: boolean, followUpActions?: string) { \n if (operationManagerEval !== undefined) { this.operationManagerEval = operationManagerEval; }\n if (documentMitigation !== undefined) { this.documentMitigation = documentMitigation; }\n if (mitigationStrategy !== undefined) { this.mitigationStrategy = mitigationStrategy; }\n if (managerName !== undefined) { this.managerName = managerName; }\n if (idNumber !== undefined) { this.idNumber = idNumber; }\n if (flightNotApproved !== undefined) { this.flightNotApproved = flightNotApproved; }\n if (followUpActions !== undefined) { this.followUpActions = followUpActions; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ModuleCode } from '.';\nimport { PermissionFlag } from '.';\n\n\n\n// Permission model used to map list of permissions to a module\nexport class Permission {\n \n // Module code \n public module: ModuleCode;\n \n // Permissions (flag) \n public permissions: PermissionFlag;\n \n constructor(module?: ModuleCode, permissions?: PermissionFlag) { \n if (module !== undefined) { this.module = module; }\n if (permissions !== undefined) { this.permissions = permissions; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// TOLData is Takeoff and landing data\nexport class TOLData {\n \n // Planned Time [epoch time milliseconds] \n public planned: number;\n \n // Actual Time [epoch time milliseconds] \n public time: number;\n \n // Hobs count \n public hobs: number;\n \n // Tachometer count \n public tach: number;\n \n // Airport / Field \n public field: string;\n \n // Field Timezone provided as IANA Time zone abbreviation (e.g. IST, CET) or by UTC offset (e.g. +02:00) \n public timezone: string;\n \n constructor(planned?: number, time?: number, hobs?: number, tach?: number, field?: string, timezone?: string) { \n if (planned !== undefined) { this.planned = planned; }\n if (time !== undefined) { this.time = time; }\n if (hobs !== undefined) { this.hobs = hobs; }\n if (tach !== undefined) { this.tach = tach; }\n if (field !== undefined) { this.field = field; }\n if (timezone !== undefined) { this.timezone = timezone; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// PilotQualificationsRisks group of pilot qualifications risk values\nexport class PilotQualificationsRisks {\n \n // Captain with less than 200 hours in aircraft type \n public captLess200Hr: number;\n \n // Captain with less than 100 hours in the last 90 days \n public captLess100Hr90d: number;\n \n // First Officer with less than 200 hours in aircraft type \n public firstOfLess200Hr: number;\n \n // First Officer with less than 100 hours in the last 90 days \n public firstOfLess100Hr90d: number;\n \n constructor(captLess200Hr?: number, captLess100Hr90d?: number, firstOfLess200Hr?: number, firstOfLess100Hr90d?: number) { \n if (captLess200Hr !== undefined) { this.captLess200Hr = captLess200Hr; }\n if (captLess100Hr90d !== undefined) { this.captLess100Hr90d = captLess100Hr90d; }\n if (firstOfLess200Hr !== undefined) { this.firstOfLess200Hr = firstOfLess200Hr; }\n if (firstOfLess100Hr90d !== undefined) { this.firstOfLess100Hr90d = firstOfLess100Hr90d; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// DestinationRisks group of destination risk values\nexport class DestinationRisks {\n \n // Mountainous airport \n public mountainousAirport: number;\n \n // Control tower not operational at ETA \n public towerNotOperationalAtEta: number;\n \n // Destination - Non-towered airport \n public nonToweredAirport: number;\n \n // Destination - Wet Runway \n public wetRunway: number;\n \n // Destination - Contaminated Runway \n public contaminatedRunway: number;\n \n // Stopping distance greater than 80% of available runway \n public stoppingDistanceOver80p: number;\n \n // Runway braking action less than good - rv_runw_brakin_actionless_t_c \n public runwayBreakingLessGood: number;\n \n // Approach w/o vertical guidance (best available approach) - rv_approach_w_o_vertical_gui_c \n public approachWoVerticalGuide: number;\n \n // Circling approach (best available approach) - rv_circling_approach_best_av_c \n public circlingApproach: number;\n \n // No published approaches - rv_no_published_approaches_c \n public noPublishedApproaches: number;\n \n // Alternate airport not selected - rv_alternate_airport_not_sel_c \n public noAlternateAirport: number;\n \n // Destination - Elevation of primary airport greater than 5,000 ft. MSL - rv_destelevtio_of_primary_ai_c \n public airportElevOver5KFts: number;\n \n constructor(mountainousAirport?: number, towerNotOperationalAtEta?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number, stoppingDistanceOver80p?: number, runwayBreakingLessGood?: number, approachWoVerticalGuide?: number, circlingApproach?: number, noPublishedApproaches?: number, noAlternateAirport?: number, airportElevOver5KFts?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEta !== undefined) { this.towerNotOperationalAtEta = towerNotOperationalAtEta; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n if (stoppingDistanceOver80p !== undefined) { this.stoppingDistanceOver80p = stoppingDistanceOver80p; }\n if (runwayBreakingLessGood !== undefined) { this.runwayBreakingLessGood = runwayBreakingLessGood; }\n if (approachWoVerticalGuide !== undefined) { this.approachWoVerticalGuide = approachWoVerticalGuide; }\n if (circlingApproach !== undefined) { this.circlingApproach = circlingApproach; }\n if (noPublishedApproaches !== undefined) { this.noPublishedApproaches = noPublishedApproaches; }\n if (noAlternateAirport !== undefined) { this.noAlternateAirport = noAlternateAirport; }\n if (airportElevOver5KFts !== undefined) { this.airportElevOver5KFts = airportElevOver5KFts; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { Address } from '.';\nimport { LeadStatusCode } from '.';\n\n\n\n// Lead entity is a lead in the CRM system\nexport class Lead extends BaseEntityEx {\n \n // First name \n public firstName: string;\n \n // Last name \n public lastName: string;\n \n // Account description \n public description: string;\n \n // Office / Landline phone \n public phone: string;\n \n // Office / Landline fax \n public fax: string;\n \n // Mobile phone \n public mobile: string;\n \n // Email address \n public email: string;\n \n // Primary address \n public primaryAddress: Address;\n \n // Lead source \n public leadSource: string;\n \n // Lead source description \n public leadSourceDescription: string;\n \n // Campaign Id \n public campaignId: string;\n \n // Lead status: UNDEFINED | NEW | INPROCESS | ASSIGNED | ... \n public status: LeadStatusCode;\n \n // Referred by \n public referredBy: string;\n \n // Notes \n public notes: string;\n \n // Assigned to user \n public assignedTo: string;\n \n // \n public price: number;\n \n // \n public commission: number;\n \n // \n public totalCost: number;\n \n // \n public commissionPaid: boolean;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLeadColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"firstName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fax\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"primaryAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSource\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSourceDescription\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"LeadStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"referredBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"assignedTo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"price\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"commission\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"commissionPaid\", \"boolean\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { UserTypeCode } from '.';\nimport { UserStatusCode } from '.';\n\n\n\n// TokenData model represents user in account which is encrypted with the JWT token\nexport class TokenData {\n \n // Authenticated subject ID (can be user, or service account) \n public subjectId: string;\n \n // Subject type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n public subjectType: UserTypeCode;\n \n // User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n public status: UserStatusCode;\n \n // Token expiration [Epoch milliseconds Timestamp] \n public expiresIn: number;\n \n constructor(subjectId?: string, subjectType?: UserTypeCode, status?: UserStatusCode, expiresIn?: number) { \n if (subjectId !== undefined) { this.subjectId = subjectId; }\n if (subjectType !== undefined) { this.subjectType = subjectType; }\n if (status !== undefined) { this.status = status; }\n if (expiresIn !== undefined) { this.expiresIn = expiresIn; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Engine model represents engine metrics\nexport class Engine {\n \n // Engine total time [hours] \n public totalTime: number;\n \n // Overhaul time frequency [hours] \n public overhaulFrequency: number;\n \n // Overhaul next due [hours] \n public overhaulNextDue: number;\n \n // Time remaining till the next Overhaul [hours] \n public hoursToOverhaul: number;\n \n // Last airframe Overhaul [hours] \n public lastAirframeOverhaul: number;\n \n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// TripRisks group of trip risk values\nexport class TripRisks {\n \n // Trip - Twilight operation \n public twilightOperation: number;\n \n // Trip - nighttime operation \n public nightTimeOperation: number;\n \n // Trip - Repositioning flight (no passengers or cargo) \n public repositioningFlight: number;\n \n // Pop-up trip (less than 4 hours notice) \n public popupTripLess4HrsNotice: number;\n \n // International trip \n public internationalTrip: number;\n \n constructor(twilightOperation?: number, nightTimeOperation?: number, repositioningFlight?: number, popupTripLess4HrsNotice?: number, internationalTrip?: number) { \n if (twilightOperation !== undefined) { this.twilightOperation = twilightOperation; }\n if (nightTimeOperation !== undefined) { this.nightTimeOperation = nightTimeOperation; }\n if (repositioningFlight !== undefined) { this.repositioningFlight = repositioningFlight; }\n if (popupTripLess4HrsNotice !== undefined) { this.popupTripLess4HrsNotice = popupTripLess4HrsNotice; }\n if (internationalTrip !== undefined) { this.internationalTrip = internationalTrip; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// LeadAction entity is a followup action record\nexport class LeadAction extends BaseEntityEx {\n \n // Lead ID \n public leadId: string;\n \n // When followup action was reported [Epoch milliseconds] \n public reportedOn: number;\n \n // Who did the followup action \n public reportedBy: string;\n \n // Action description \n public description: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLeadActionColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"leadId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"reportedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reportedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// LogBookRecord entity is a pilot's log book record\nexport class LogBookRecord extends BaseEntityEx {\n \n // Account ID \n public accountId: string;\n \n // Contact ID \n public contactId: string;\n \n // When the flight started [Epoch milliseconds] (1a) \n public date: number;\n \n // Airplane type (model, variant) \n public airplaneType: string;\n \n // Airplane registration number (tail number) \n public airplaneReg: string;\n \n // Takeoff field \n public takeoffField: string;\n \n // Landing field on the way \n public viaField: string;\n \n // Landing field \n public landingField: string;\n \n // Departure time [Epoch milliseconds] \n public departure: number;\n \n // Arrival time [Epoch milliseconds] \n public arrival: number;\n \n // Single Engine Pilot-In-Command \n public singleEnginePic: number;\n \n // Single Engine Second-In-Command \n public singleEngineSic: number;\n \n // Multi Engine Pilot-In-Command \n public multiEnginePic: number;\n \n // Multi Engine Second-In-Command \n public multiEngineSic: number;\n \n // Hours in daytime \n public dayTime: number;\n \n // Hours in nighttime \n public nightTime: number;\n \n // Instruments flight time \n public ifrTime: number;\n \n // Simulator time \n public simulator: number;\n \n // Remarks \n public remarks: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLogBookRecordColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"date\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneReg\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoffField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"viaField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landingField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"arrival\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"singleEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"singleEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"dayTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"ifrTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"simulator\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"remarks\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { OnBoard } from '.';\nimport { TOLData } from '.';\nimport { ReFuel } from '.';\nimport { Lesson } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { FlightTypeCode } from '.';\nimport { FlightPurposeCode } from '.';\n\n\n\n// PreFlightData model represents pre-flight information\nexport class PreFlightData extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Captain / Instructor contact ID - replace OnBoard \n public captain: string;\n \n // First Officer / Student contact ID - replace OnBoard \n public firstOfficer: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Crew and Passengers on board \n public onBoard: OnBoard;\n \n // Flight attending time [YYYY-MM-DD HH:mm] \n public attendingTime: string;\n \n // Flight boarding time [YYYY-MM-DD HH:mm] \n public boardingTime: string;\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Flight has competency certification \n public hasCompetency: boolean;\n \n // Flight has a flight plan \n public hasFlightPlan: boolean;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Fuel status before and after flight \n public fuelStatus: ReFuel;\n \n // Oil status before and after flight \n public oilStatus: ReFuel;\n \n // Flight lesson attributes \n public lesson: Lesson;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetPreFlightDataColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"onBoard\", \"OnBoard\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasCompetency\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasFlightPlan\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"oilStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// DocumentRevision entity represents a document revision in the system\nexport class DocumentRevision {\n \n // Document revision Id \n public id: string;\n \n // Document revision file name \n public name: string;\n \n // Document revision \n public revision: string;\n \n // Document revision URL \n public url: string;\n \n // Document revision creator \n public createdBy: string;\n \n // Document revision creation time [epoch time milliseconds] \n public createdOn: number;\n \n // Document revision MIME type \n public mimeType: string;\n \n constructor(id?: string, name?: string, revision?: string, url?: string, createdBy?: string, createdOn?: number, mimeType?: string) { \n if (id !== undefined) { this.id = id; }\n if (name !== undefined) { this.name = name; }\n if (revision !== undefined) { this.revision = revision; }\n if (url !== undefined) { this.url = url; }\n if (createdBy !== undefined) { this.createdBy = createdBy; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (mimeType !== undefined) { this.mimeType = mimeType; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { Lookup } from '.';\nimport { BaseEntity } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// LookupGroup entity is a group of lookup entries\nexport class LookupGroup extends BaseEntity {\n \n // Group \n public group: string;\n \n // Item type \n public value: Lookup[];\n \n \n\n \n\n}\n\n\nexport function GetLookupGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"Lookup\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { MessageTypeCode } from '.';\nimport { PriorityCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// SystemMessage entity is a system message notification that all pilots must read and confirm\nexport class SystemMessage extends BaseEntityEx {\n \n // Message subject \n public subject: string;\n \n // Message description \n public description: string;\n \n // Message type \n public type: MessageTypeCode;\n \n // Message priority \n public priority: PriorityCode;\n \n // Contact groups to send the message \n public groups: string[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetSystemMessageColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// Address model represents an address\nexport class Address {\n \n // Street address \n public street: string;\n \n // City \n public city: string;\n \n // State (if applicable) \n public state: string;\n \n // Local zip code (postal cod) \n public zipCode: string;\n \n // Country name \n public country: string;\n \n constructor(street?: string, city?: string, state?: string, zipCode?: string, country?: string) { \n if (street !== undefined) { this.street = street; }\n if (city !== undefined) { this.city = city; }\n if (state !== undefined) { this.state = state; }\n if (zipCode !== undefined) { this.zipCode = zipCode; }\n if (country !== undefined) { this.country = country; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// AnyKeyValue model used as a string key-value pair\nexport class AnyKeyValue {\n \n // Tuple key \n public key: string;\n \n // Tuple value \n public value: any;\n \n constructor(key?: string, value?: any) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\nimport { FlightTypeCode } from '.';\nimport { FlightStatusCode } from '.';\nimport { BillingStatusCode } from '.';\nimport { FlightPurposeCode } from '.';\n\n\n\n// FlightsFilter list of fields to filter flights\nexport class FlightsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by time frame \n public period: TimeFrame;\n \n // Filter by account ID \n public accountId: string;\n \n // Filter by Contact ID (captain or first officer) \n public contactId: string;\n \n // Filter by airplane ID \n public airplaneId: string;\n \n // Filter by type(s) \n public type: FlightTypeCode[];\n \n // Filter by status(s) \n public status: FlightStatusCode[];\n \n // Filter by billing status \n public billing: BillingStatusCode[];\n \n // Filter by purpose of flight \n public purpose: FlightPurposeCode[];\n \n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[]) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (billing !== undefined) { this.billing = billing; }\n if (purpose !== undefined) { this.purpose = purpose; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightPurposeCode } from '.';\nimport { FlightTypeCode } from '.';\n\n\n\n// PreFlightInfo data structure to be used by the pre-flight form\nexport class PreFlightInfo {\n \n // Flight number as string \n public flightId: string;\n \n // Flight number \n public flightNumber: number;\n \n // Airplane Name \n public airplane: string;\n \n // Total hours left to inspection \n public hoursToInspection: number;\n \n // Takeoff Planned time \n public takeoffPlannedTime: number;\n \n // Takeoff actual time \n public takeoffActualTime: number;\n \n // Takeoff field \n public takeoffField: string;\n \n // Landing field \n public landingField: string;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Flight destination \n public destination: string;\n \n // Secondary call sign \n public secondaryCallSign: string;\n \n // Captain / Instructor name \n public captain: string;\n \n // First Officer name \n public firstOfficer: string;\n \n // Estimated fuel on board (GALLONS) \n public estimatedFuelOnBoard: number;\n \n // Estimated time on the air (minutes) \n public estimatedEndurance: number;\n \n // Actual fuel on board (GALLONS) \n public actualFuelOnBoard: number;\n \n // Refuel before flight (GALLONS) \n public refuelBeforeFlight: number;\n \n // Actual oil level (QUARTZ) \n public actualOilOnBoard: number;\n \n // Refilled oil before flight (QUARTZ) \n public refillOilBeforeFlight: number;\n \n // Passengers names \n public passengers: string[];\n \n // Crew members (name:role) \n public crew: string[];\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Lesson subject by the syllabus - lesson_subject \n public lessonSubject: string;\n \n // First Officer / Student flight counter - student_flights_count \n public lessonFlightCounter: number;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Flight has competency certification \n public hasCompetency: boolean;\n \n // Flight has a flight plan \n public hasFlightPlan: boolean;\n \n // This form was already reported \n public reportedBy: string;\n \n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, landingField?: string, purpose?: FlightPurposeCode, purposeOt?: string, type?: FlightTypeCode, destination?: string, secondaryCallSign?: string, captain?: string, firstOfficer?: string, estimatedFuelOnBoard?: number, estimatedEndurance?: number, actualFuelOnBoard?: number, refuelBeforeFlight?: number, actualOilOnBoard?: number, refillOilBeforeFlight?: number, passengers?: string[], crew?: string[], wBConfig?: string, wBManual?: string, lessonSubject?: string, lessonFlightCounter?: number, preFlightNotes?: string, operationNotes?: string, hasCompetency?: boolean, hasFlightPlan?: boolean, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (purposeOt !== undefined) { this.purposeOt = purposeOt; }\n if (type !== undefined) { this.type = type; }\n if (destination !== undefined) { this.destination = destination; }\n if (secondaryCallSign !== undefined) { this.secondaryCallSign = secondaryCallSign; }\n if (captain !== undefined) { this.captain = captain; }\n if (firstOfficer !== undefined) { this.firstOfficer = firstOfficer; }\n if (estimatedFuelOnBoard !== undefined) { this.estimatedFuelOnBoard = estimatedFuelOnBoard; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (actualFuelOnBoard !== undefined) { this.actualFuelOnBoard = actualFuelOnBoard; }\n if (refuelBeforeFlight !== undefined) { this.refuelBeforeFlight = refuelBeforeFlight; }\n if (actualOilOnBoard !== undefined) { this.actualOilOnBoard = actualOilOnBoard; }\n if (refillOilBeforeFlight !== undefined) { this.refillOilBeforeFlight = refillOilBeforeFlight; }\n if (passengers !== undefined) { this.passengers = passengers; }\n if (crew !== undefined) { this.crew = crew; }\n if (wBConfig !== undefined) { this.wbConfig = wBConfig; }\n if (wBManual !== undefined) { this.wbManual = wBManual; }\n if (lessonSubject !== undefined) { this.lessonSubject = lessonSubject; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (preFlightNotes !== undefined) { this.preFlightNotes = preFlightNotes; }\n if (operationNotes !== undefined) { this.operationNotes = operationNotes; }\n if (hasCompetency !== undefined) { this.hasCompetency = hasCompetency; }\n if (hasFlightPlan !== undefined) { this.hasFlightPlan = hasFlightPlan; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Magneto model represents magneto metrics\nexport class Magneto {\n \n // Inspection frequency [hours] \n public inspectionFrequency: number;\n \n // Last Inspection [hours] \n public lastInspectionHours: number;\n \n // Next Inspection [hours] \n public nextInspectionHours: number;\n \n // Remaining hours to the next inspection \n public remainingHours: number;\n \n constructor(inspectionFrequency?: number, lastInspectionHours?: number, nextInspectionHours?: number, remainingHours?: number) { \n if (inspectionFrequency !== undefined) { this.inspectionFrequency = inspectionFrequency; }\n if (lastInspectionHours !== undefined) { this.lastInspectionHours = lastInspectionHours; }\n if (nextInspectionHours !== undefined) { this.nextInspectionHours = nextInspectionHours; }\n if (remainingHours !== undefined) { this.remainingHours = remainingHours; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// OnBoard includes all members on board\nexport class OnBoard {\n \n // Captain / Instructor contact Id \n public captain: string;\n \n // First Officer / Student contact Id \n public firstOfficer: string;\n \n // Passengers names \n public passengers: string[];\n \n // Crew members (name:role) \n public crew: string[];\n \n constructor(captain?: string, firstOfficer?: string, passengers?: string[], crew?: string[]) { \n if (captain !== undefined) { this.captain = captain; }\n if (firstOfficer !== undefined) { this.firstOfficer = firstOfficer; }\n if (passengers !== undefined) { this.passengers = passengers; }\n if (crew !== undefined) { this.crew = crew; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { UserTypeCode } from '.';\nimport { UserRoleFlag } from '.';\nimport { UserStatusCode } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// User represents a human / system operator that has access to the system, and can perform operations\n// User authentication is done by an external identity provider\nexport class User extends BaseEntityEx {\n \n // User name \n public name: string;\n \n // User email \n public email: string;\n \n // User mobile phone number (for notification and validation) \n public mobile: string;\n \n // User type: UNDEFINED | SYSADMIN | SUPPORT | USER \n public type: UserTypeCode;\n \n // User roles flags \n public roles: UserRoleFlag;\n \n // User permissions groups \n public groups: string[];\n \n // User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n public status: UserStatusCode;\n \n // User last successful sign in timestamp [epoch time milliseconds] \n public lastSignIn: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetUserColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"roles\", \"UserRoleFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"UserStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// StringKeyValue model used as a string key-value pair\nexport class StringKeyValue {\n \n // Tuple key \n public key: string;\n \n // Tuple value \n public value: string;\n \n constructor(key?: string, value?: string) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Propeller model represents propeller metrics\nexport class Propeller {\n \n // Propeller total time [hours] \n public totalTime: number;\n \n // Overhaul time frequency [hours] \n public overhaulFrequency: number;\n \n // Overhaul next due [hours] \n public overhaulNextDue: number;\n \n // Time remaining till the next Overhaul [hours] \n public hoursToOverhaul: number;\n \n // Last airframe Overhaul [hours] \n public lastAirframeOverhaul: number;\n \n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { AccountStatusCode } from '.';\nimport { Address } from '.';\nimport { ValidationFlag } from '.';\nimport { FlightCategoryCode } from '.';\n\n\n\n// Contact entity is a billing account in the system\nexport class Contact extends BaseEntityEx {\n \n // Related billing account ID \n public accountId: string;\n \n // Contact name \n public name: string;\n \n // Contact english name \n public enName: string;\n \n // Contact description \n public description: string;\n \n // Title in the contact \n public title: string;\n \n // Contact birthday \n public birthDay: number;\n \n // Contact status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPEND \n public status: AccountStatusCode;\n \n // Office / Landline phone \n public phone: string;\n \n // Mobile phone \n public mobile: string;\n \n // Email address \n public email: string;\n \n // Primary address \n public primaryAddress: Address;\n \n // Total single engine hours \n public singleEngineHours: number;\n \n // Total dual engine hours \n public dualEngineHours: number;\n \n // Total flight hours \n public totalFlightHours: number;\n \n // Contact groups \n public groups: string[];\n \n // ID number \n public idNumber: string;\n \n // Start to fly on [epoch time milliseconds] \n public startToFlyDate: number;\n \n // Authorized to fly by user at time \n public authorizedToFlyBy: string;\n \n // Authorized photographer by user at timeValidations \n public authorizedPhotographyBy: string;\n \n // Pilot license number \n public pilotLicense: string;\n \n // Pilot license type \n public licenseTypes: string[];\n \n // Pilot license group \n public licenseGroup: string;\n \n // Medical certificate class \n public medicalCertClass: string;\n \n // Enum flags - list of certifications and validations \n public validations: ValidationFlag;\n \n // Flag indicating if this contact is a pilot \n public isPilot: boolean;\n \n // Flight instructor Id \n public instructor: string;\n \n // Flight Instruction Plan \n public instructionPlan: FlightCategoryCode;\n \n // Last time the user signed to the system \n public lastSignIn: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetContactColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"title\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"birthDay\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"primaryAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"singleEngineHours\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"dualEngineHours\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalFlightHours\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"idNumber\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"startToFlyDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedToFlyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedPhotographyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotLicense\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"licenseTypes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"licenseGroup\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"medicalCertClass\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validations\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPilot\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructor\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructionPlan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { DocumentRevision } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Document entity represents a document in the system\nexport class Document extends BaseEntityEx {\n \n // Document name \n public name: string;\n \n // Document description \n public description: string;\n \n // Entity linked to the document (in the format of: [type]:[id]) \n public linkedEntity: string;\n \n // Document creator \n public createdBy: string;\n \n // Document active from [epoch time milliseconds] \n public activeFrom: number;\n \n // Document active until [epoch time milliseconds] \n public activeUntil: number;\n \n // Document category \n public category: string;\n \n // Document Revisions \n public revisions: DocumentRevision[];\n \n // Active (current) revision \n public activeRevision: string;\n \n // Active revision URL \n public activeUrl: string;\n \n // Active revision MIME type \n public activeMimeType: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetDocumentColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"linkedEntity\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeFrom\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"activeUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"category\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"revisions\", \"DocumentRevision\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeRevision\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeMimeType\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { Permission } from '.';\nimport { StringKeyValue } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Group represents a group of users to share permissions\nexport class Group extends BaseEntityEx {\n \n // Group name \n public name: string;\n \n // Group email \n public email: string;\n \n // List of permissions \n public permissions: Permission[];\n \n // List of group members (id->name pairs) - not persistent \n public members: StringKeyValue[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"permissions\", \"Permission\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"members\", \"StringKeyValue\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Lookup entity is a key-value string lookup (used as a configurable, open enum)\n// Id of the lookup is in the format of [key]@[domain]\nexport class Lookup extends BaseEntityEx {\n \n // Lookup domain \n public domain: string;\n \n // Group \n public group: string;\n \n // Action that was performed \n public key: string;\n \n // Item string value \n public value: string;\n \n // Item numeric value (for ordering) \n public counter: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLookupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"domain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"key\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"counter\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { BookingTypeFlag } from '.';\nimport { BookingStatusCode } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// Booking entity is a flight booking request to secure an airplane for specific time slot\nexport class Booking extends BaseEntityEx {\n \n // Booking name (datetime - accountName) \n public name: string;\n \n // Account ID \n public accountId: string;\n \n // Contact ID - it would be the PIC unless it is flight lesson which in this case it would be SIC \n public contactId: string;\n \n // Instructor ID - it should be the instructor as PIC in case of flight lesson \n public instructorId: string;\n \n // Captain (PIC) - for flight lesson, it should be the instructor \n public captain: string;\n \n // First Officer (SIC) - for flight lesson, it should be the instructor \n public firstOfficer: string;\n \n // The user who requested the booking \n public requestedBy: string;\n \n // Additional notes provided by the user \n public requestedNotes: string;\n \n // Type of booking - to be replaced by Flight purpose \n public type: BookingTypeFlag;\n \n // Flag to indicate if this booking includes pattern slot (only in case of flight lesson) \n public isPatterns: boolean;\n \n // Airplane ID (when the booking is approved) \n public airplaneId: string;\n \n // When to ask for the airplane [Epoch milliseconds] \n public placementOn: number;\n \n // When to return the airplane [Epoch milliseconds] \n public placementTo: number;\n \n // Status of booking: PENDING | ASSIGNED | CANCELLED | REJECTED ... \n public status: BookingStatusCode;\n \n // Booking comments provided by the staff \n public comments: string;\n \n // Flight destination \n public destination: string;\n \n // Flight ID related to this booking request \n public flightId: string;\n \n // Slot ID related to this booking request (for patterns request only) \n public slotId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructorId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPatterns\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"BookingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"comments\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"slotId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// BookingSlot entity is a slot for booking a flight\nexport class BookingSlot extends BaseEntityEx {\n \n // Slot start time \n public from: number;\n \n // Slot end time \n public to: number;\n \n // Slot is open for reservation \n public isOpen: boolean;\n \n // Slot is available \n public isFree: boolean;\n \n // Account ID (who took the slot) \n public accountId: string;\n \n // Contact ID (who took the slot) \n public contactId: string;\n \n // Booking ID (Booking reference) \n public bookingId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingSlotColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"from\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"to\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"isOpen\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFree\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BookingSlot } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// BookingSlots entity is a collection of slots per day\nexport class BookingSlots extends BaseEntityEx {\n \n // Slots day \n public day: number;\n \n // List of slots in this period \n public slots: BookingSlot[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingSlotsColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"day\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"slots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { BookingSlot } from '.';\n\n\n\n// BookingSlotsSet entity is a collection of slots per month to add or to remove\nexport class BookingSlotsSet extends BaseEntityEx {\n \n // Slots set year \n public year: number;\n \n // Slots set month (1..12) \n public month: number;\n \n // List of slots to add \n public addSlots: BookingSlot[];\n \n // List of slots to remove \n public delSlots: BookingSlot[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingSlotsSetColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"year\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"month\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"addSlots\", \"BookingSlot\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"delSlots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { TransactionTypeCode } from '.';\nimport { CurrencyCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Credit entity is an accounting action\nexport class Credit extends BaseEntityEx {\n \n // Credit name \n public name: string;\n \n // Credit description \n public description: string;\n \n // Credit transaction type: FLIGHT | BONUS | PURCHASE | REFUND ... \n public type: TransactionTypeCode;\n \n // Billing units - Hobbs \n public units: number;\n \n // Price per Unit - \n public unitPrice: number;\n \n // Total before VAT \n public beforeVat: number;\n \n // Amount \n public amount: number;\n \n // Base rate factor (ignore if 0) \n public baseRate: number;\n \n // Currency \n public currency: CurrencyCode;\n \n // Linked to account \n public accountId: string;\n \n // Linked to flight \n public flightId: string;\n \n // User ID who updated this entry (can be \"system\") \n public updatedBy: string;\n \n // Time of the transaction [Epoch milliseconds Timestamp] \n public transactionOn: number;\n \n // Reference of the transaction \n public reference: string;\n \n // Linked document ID \n public documentId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetCreditColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"TransactionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"units\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"unitPrice\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"beforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"amount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"updatedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"transactionOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reference\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { ConfirmStatusCode } from '.';\nimport { MessageTypeCode } from '.';\nimport { PriorityCode } from '.';\n\n\n\n// MessageConfirm entity is a system message confirmation by users\nexport class MessageConfirm extends BaseEntityEx {\n \n // System Message ID \n public messageId: string;\n \n // Linked contact ID \n public contactId: string;\n \n // Contact reply status \n public replyStatus: ConfirmStatusCode;\n \n // Time of reply sent by the contact [epoch time milliseconds] \n public replyOn: number;\n \n // Read and sign form link \n public replyUrl: string;\n \n // Message subject [Calculated field, not stored] \n public subject: string;\n \n // Message description [Calculated field, not stored] \n public description: string;\n \n // Message type [Calculated field, not stored] \n public type: MessageTypeCode;\n \n // Message priority [Calculated field, not stored] \n public priority: PriorityCode;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetMessageConfirmColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"messageId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyStatus\", \"ConfirmStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"replyUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { FlightCategoryCode } from '.';\nimport { InstructionTypeCode } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// Syllabus entity is instruction plan topics\nexport class Syllabus extends BaseEntityEx {\n \n // Syllabus plan (Flight category) \n public plan: FlightCategoryCode;\n \n // Topic instruction type (FLIGHT | CLASS | SIMULATOR) \n public type: InstructionTypeCode;\n \n // Topic sequence number \n public seq: string;\n \n // Topic index number \n public num: number;\n \n // Topic name \n public name: string;\n \n // Topic duration (in minutes) \n public duration: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetSyllabusColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"InstructionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"seq\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"num\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"duration\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { AirplaneStatusCode } from '.';\n\n\n\n// AirplanesFilter list of fields to filter airplanes\nexport class AirplanesFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by status(s) \n public status: AirplaneStatusCode[];\n \n // Filter by active flag \n public isActive: boolean;\n \n constructor(search?: string, status?: AirplaneStatusCode[], isActive?: boolean) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isActive !== undefined) { this.isActive = isActive; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Location model represents WGS-84 location\nexport class Location {\n \n // WGS-84 longitude in decimal degrees \n public lon: number;\n \n // WGS-84 latitude in decimal degrees \n public lat: number;\n \n // Barometric altitude in meters \n public alt: number;\n \n constructor(lon?: number, lat?: number, alt?: number) { \n if (lon !== undefined) { this.lon = lon; }\n if (lat !== undefined) { this.lat = lat; }\n if (alt !== undefined) { this.alt = alt; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { CampaignTypeCode } from '.';\nimport { CampaignStatusCode } from '.';\nimport { CurrencyCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Campaign entity represents a marketing campaign in the system\nexport class Campaign extends BaseEntityEx {\n \n // Campaign name \n public name: string;\n \n // Campaign type: UNDEFINED | WEB | MAIL | TELE \n public type: CampaignTypeCode;\n \n // Campaign status: UNDEFINED | PLANNED | ACTIVE | COMPLETED \n public status: CampaignStatusCode;\n \n // Campaign content \n public content: string;\n \n // Campaign start date \n public startDate: number;\n \n // Campaign end date \n public endDate: number;\n \n // Campaign budget \n public budget: number;\n \n // Base rate \n public baseRate: number;\n \n // Refer URL \n public referUrl: string;\n \n // Actual campaign cost \n public expectedCost: number;\n \n // Actual campaign cost \n public actualCost: number;\n \n // Currency code \n public currency: CurrencyCode;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetCampaignColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"CampaignTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"CampaignStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"content\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"startDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"endDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"budget\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"referUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"expectedCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"actualCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// WeatherRisks group of weather risk values\nexport class WeatherRisks {\n \n // No weather reporting at destination \n public noWeatherReporting: number;\n \n // Thunderstorms at departure and/or destination \n public thunderstormsExpected: number;\n \n // Heavy rain at departure and/or destination \n public heavyRainExpected: number;\n \n // Frozen precipitation at departure and/or destination \n public frozenPrecipitation: number;\n \n // Ceiling / visibility at destination less than 500 ft. / 2 nm \n public ceilingVisibilityLess500Fts: number;\n \n // Cold weather operation \n public coldWeatherOperation: number;\n \n // Icing (moderate-severe) \n public moderateSeverIcing: number;\n \n // Surface winds greater than 30 knots \n public surfaceWindsOver30Knts: number;\n \n // Crosswinds greater than 15 knots \n public crosswindsOver15Knots: number;\n \n // Severe turbulence expected \n public severeTurbulenceExpected: number;\n \n constructor(noWeatherReporting?: number, thunderstormsExpected?: number, heavyRainExpected?: number, frozenPrecipitation?: number, ceilingVisibilityLess500Fts?: number, coldWeatherOperation?: number, moderateSeverIcing?: number, surfaceWindsOver30Knots?: number, crosswindsOver15Knots?: number, severeTurbulenceExpected?: number) { \n if (noWeatherReporting !== undefined) { this.noWeatherReporting = noWeatherReporting; }\n if (thunderstormsExpected !== undefined) { this.thunderstormsExpected = thunderstormsExpected; }\n if (heavyRainExpected !== undefined) { this.heavyRainExpected = heavyRainExpected; }\n if (frozenPrecipitation !== undefined) { this.frozenPrecipitation = frozenPrecipitation; }\n if (ceilingVisibilityLess500Fts !== undefined) { this.ceilingVisibilityLess500Fts = ceilingVisibilityLess500Fts; }\n if (coldWeatherOperation !== undefined) { this.coldWeatherOperation = coldWeatherOperation; }\n if (moderateSeverIcing !== undefined) { this.moderateSeverIcing = moderateSeverIcing; }\n if (surfaceWindsOver30Knots !== undefined) { this.surfaceWindsOver30Knts = surfaceWindsOver30Knots; }\n if (crosswindsOver15Knots !== undefined) { this.crosswindsOver15Knots = crosswindsOver15Knots; }\n if (severeTurbulenceExpected !== undefined) { this.severeTurbulenceExpected = severeTurbulenceExpected; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// SystemConfig is a global System Configuration variable\nexport class SystemConfig extends BaseEntityEx {\n \n // String value \n public strVal: string;\n \n // Int value \n public intVal: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetSystemConfigColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"strVal\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"intVal\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { FlightPurposeCode } from '.';\nimport { FlightTypeCode } from '.';\nimport { AssessmentCode } from '.';\n\n\n\n// PostFlightInfo data structure to be used by the post-flight form\nexport class PostFlightInfo {\n \n // Flight number as string \n public flightId: string;\n \n // Flight number \n public flightNumber: number;\n \n // Airplane Name \n public airplane: string;\n \n // Total hours left to inspection \n public hoursToInspection: number;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Takeoff Planned time \n public takeoffPlannedTime: number;\n \n // Takeoff actual time \n public takeoffActualTime: number;\n \n // Takeoff field \n public takeoffField: string;\n \n // Takeoff hobbs \n public takeoffHobbs: number;\n \n // Takeoff tach \n public takeoffTach: number;\n \n // Landing Planned time \n public landingPlannedTime: number;\n \n // Landing actual time \n public landingActualTime: number;\n \n // Landing field \n public landingField: string;\n \n // Landing hobbs \n public landingHobbs: number;\n \n // Landing tach \n public landingTach: number;\n \n // Captain / Instructor name \n public captain: string;\n \n // First Officer name \n public firstOfficer: string;\n \n // Flight destination \n public destination: string;\n \n // Pilot's total single engine hours all over \n public singleEngineHours: number;\n \n // Pilot's total multi-engine hours all over \n public multiEngineHours: number;\n \n // Pilot's total flight hours in last 30 days - Must be filled in the first flight performed this month \n public flightHoursLastMonth: number;\n \n // Refuel before flight (GALLONS) \n public refuelBeforeFlight: number;\n \n // Refuel after flight (GALLONS) \n public refuelAfterFlight: number;\n \n // Refilled oil before flight (QUARTZ) \n public refilledOilBeforeFlight: number;\n \n // Refilled oil after flight (QUARTZ) \n public refillOilAfterFlight: number;\n \n // Lesson number - lesson_number \n public lessonNumber: number;\n \n // Lesson subject by the syllabus - lesson_subject \n public lessonSubject: string;\n \n // First Officer / Student flight counter - student_flights_count \n public lessonFlightCounter: number;\n \n // Instructor assessment (score) enum - lesson_score \n public assessment: AssessmentCode;\n \n // Total instructed flight time - instructed_flight_time_c \n public instructedFlightTime: number;\n \n // Total Instrument flight time - net_instruments_flight_time_c \n public instrumentsFlightTime: number;\n \n // Total student Solo flight time - student_solo_flight_time \n public soloFlightTime: number;\n \n // Pilot / Instructor comments after flight \n public lessonComments: string;\n \n // Flight description - post flight notes \n public description: string;\n \n // This form was already reported \n public reportedBy: string;\n \n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, purpose?: FlightPurposeCode, type?: FlightTypeCode, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, takeoffHobbs?: number, takeoffTach?: number, landingPlannedTime?: number, landingActualTime?: number, landingField?: string, landingHobbs?: number, landingTach?: number, captain?: string, firstOfficer?: string, destination?: string, singleEngineHours?: number, multiEngineHours?: number, flightHoursLastMonth?: number, refuelBeforeFlight?: number, refuelAfterFlight?: number, refillOilBeforeFlight?: number, refillOilAfterFlight?: number, lessonNumber?: number, lessonSubject?: string, lessonFlightCounter?: number, lessonAssessment?: AssessmentCode, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number, lessonComments?: string, description?: string, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (type !== undefined) { this.type = type; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (takeoffHobbs !== undefined) { this.takeoffHobbs = takeoffHobbs; }\n if (takeoffTach !== undefined) { this.takeoffTach = takeoffTach; }\n if (landingPlannedTime !== undefined) { this.landingPlannedTime = landingPlannedTime; }\n if (landingActualTime !== undefined) { this.landingActualTime = landingActualTime; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (landingHobbs !== undefined) { this.landingHobbs = landingHobbs; }\n if (landingTach !== undefined) { this.landingTach = landingTach; }\n if (captain !== undefined) { this.captain = captain; }\n if (firstOfficer !== undefined) { this.firstOfficer = firstOfficer; }\n if (destination !== undefined) { this.destination = destination; }\n if (singleEngineHours !== undefined) { this.singleEngineHours = singleEngineHours; }\n if (multiEngineHours !== undefined) { this.multiEngineHours = multiEngineHours; }\n if (flightHoursLastMonth !== undefined) { this.flightHoursLastMonth = flightHoursLastMonth; }\n if (refuelBeforeFlight !== undefined) { this.refuelBeforeFlight = refuelBeforeFlight; }\n if (refuelAfterFlight !== undefined) { this.refuelAfterFlight = refuelAfterFlight; }\n if (refillOilBeforeFlight !== undefined) { this.refilledOilBeforeFlight = refillOilBeforeFlight; }\n if (refillOilAfterFlight !== undefined) { this.refillOilAfterFlight = refillOilAfterFlight; }\n if (lessonNumber !== undefined) { this.lessonNumber = lessonNumber; }\n if (lessonSubject !== undefined) { this.lessonSubject = lessonSubject; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (lessonAssessment !== undefined) { this.assessment = lessonAssessment; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n if (lessonComments !== undefined) { this.lessonComments = lessonComments; }\n if (description !== undefined) { this.description = description; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Fuel model represents fuel metrics\nexport class Fuel {\n \n // Fuel tank size [Liters] \n public tankSize: number;\n \n // Fuel consumption \n public consumption: number;\n \n // Fuel cost \n public cost: number;\n \n // Estimated fuel in tank \n public estimatedFuelInTank: number;\n \n // Estimated endurance \n public estimatedEndurance: number;\n \n // Last updated on \n public lastUpdatedOn: number;\n \n // Last updated by flight number \n public lastUpdatedByFlight: number;\n \n constructor(tankSize?: number, consumption?: number, cost?: number, estimatedFuelInTank?: number, estimatedEndurance?: number, lastUpdatedOn?: number, lastUpdatedByFlight?: number) { \n if (tankSize !== undefined) { this.tankSize = tankSize; }\n if (consumption !== undefined) { this.consumption = consumption; }\n if (cost !== undefined) { this.cost = cost; }\n if (estimatedFuelInTank !== undefined) { this.estimatedFuelInTank = estimatedFuelInTank; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (lastUpdatedOn !== undefined) { this.lastUpdatedOn = lastUpdatedOn; }\n if (lastUpdatedByFlight !== undefined) { this.lastUpdatedByFlight = lastUpdatedByFlight; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ValidationFlag } from '.';\nimport { StatusCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Certificate entity is a contact certificate required for active pilot\nexport class Certificate extends BaseEntityEx {\n \n // Certificate name \n public name: string;\n \n // Type for certificate (based on Validation flag) \n public type: ValidationFlag;\n \n // Certificate description \n public description: string;\n \n // Linked contact ID \n public contactId: string;\n \n // Linked document ID \n public documentId: string;\n \n // Certificate is valid until the timestamp [epoch time milliseconds] \n public validUntil: number;\n \n // Certificate workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n public status: StatusCode;\n \n // Time of notification sent to contact [epoch time milliseconds] \n public notifyAt: number;\n \n // Notification subject \n public subject: string;\n \n // Notification message \n public message: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetCertificateColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// CrewDutyDayRisks group of crew duty risk values\nexport class CrewDutyDayRisks {\n \n // Crew duty day greater than 12 hours \n public crewDutyDayOver12Hrs: number;\n \n // Flight time greater than 8 hours during the duty day \n public flightTimeOver8Hrs: number;\n \n // Crew rest period less than 10 hours prior to the duty day \n public crewRestLess10Hrs: number;\n \n constructor(crewDutyDayOver12Hrs?: number, flightTimeOver8Hrs?: number, crewRestLess10Hrs?: number) { \n if (crewDutyDayOver12Hrs !== undefined) { this.crewDutyDayOver12Hrs = crewDutyDayOver12Hrs; }\n if (flightTimeOver8Hrs !== undefined) { this.flightTimeOver8Hrs = flightTimeOver8Hrs; }\n if (crewRestLess10Hrs !== undefined) { this.crewRestLess10Hrs = crewRestLess10Hrs; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n// BaseRestResponse is a common structure for all response types\nexport class BaseRestResponse {\n\n // Error code (0 for success)\n public code: number = 0;\n\n // Error message\n public error: string = '';\n}","import { BaseRestResponse } from './BaseRestResponse'\n\n// ActionResponse message is returned for any action on entity with no return data (e.d. delete)\nexport class ActionResponse extends BaseRestResponse {\n\n // Entity key\n public key: string = '';\n\n // Additional data\n public data: string = '';\n}\n\n\n","\n// Entities is a primitive/complex type array expressed as an Entity\nexport class Entities<T> {\n // Entities list\n public values: T[] = [];\n}\n","import { BaseRestResponse } from './BaseRestResponse'\n\n// EntitiesResponse message is returned for any action returning multiple entities\nexport class EntityResponse<T> extends BaseRestResponse {\n\n // Current page (Bulk) number\n public page: number = 0;\n\n // Size of page (items in bulk)\n public size: number = 0;\n\n // Total number of pages\n public pages: number = 0;\n\n // Total number of items in the query\n public total: number = 0;\n\n // List of entities\n public entity: T;\n}\n","import { BaseRestResponse } from './BaseRestResponse'\n\n// EntitiesResponse message is returned for any action returning multiple entities\nexport class EntitiesResponse<T> extends BaseRestResponse {\n\n // Current page (Bulk) number\n public page: number = 0;\n\n // Size of page (items in bulk)\n public size: number = 0;\n\n // Total number of pages\n public pages: number = 0;\n\n // Total number of items in the query\n public total: number = 0;\n\n // List of entities\n public list: T[] = [];\n\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\n\nconst httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache, no-store',\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, X-API-KEY, X-ACCESS-TOKEN, X-TIMEZONE, accept, origin, Cache-Control, X-Requested-With, Authorization, Content-Disposition, Content-Filename',\n 'Access-Control-Exposed-Headers': 'X-API-KEY, X-ACCESS-TOKEN, X-TIMEZONE, Content-Disposition, Content-Filename',\n })\n};\n\n\n// Utility class for all REST services with common functions\n@Injectable()\nexport class RestUtil {\n\n // Constructor with injected authentication service\n constructor(private http: HttpClient) { }\n\n // Upload is HTTP POST action but the body is File object\n upload<T>(file: File, url: string, ...params: string[]) {\n\n const resourceUrl = this.buildUrl(url, ...params);\n\n const formData: FormData = new FormData();\n formData.append('fileKey', file, file.name);\n\n const req = new HttpRequest('POST', resourceUrl, formData, {\n reportProgress: false,\n responseType: 'json',\n });\n return this.http.request<T>(req);\n //return this.http.request(req);\n }\n\n // Download is HTTP GET action but the content is blob\n download(fileName: string, url: string, ...params: string[]) {\n const resourceUrl = this.buildUrl(url, ...params);\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = this.getMimeType(downloadLink);\n\n return this.http.get(resourceUrl, {\n responseType: 'blob',\n reportProgress: true,\n observe: 'events',\n headers: new HttpHeaders({ 'Content-Type': contentType })\n });\n }\n\n // Download2 is an alternative option to download\n download2(fileName: string, url: string, ...params: string[]) {\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n let contentType = this.getMimeType(fileName);\n\n const link = document.createElement('a');\n link.href = this.buildUrl(url, ...params);\n link.download = downloadLink;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n }\n\n // HTTP GET action\n get<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.get<T>(resourceUrl, httpOptions)\n }\n\n // HTTP POST action\n post<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.post<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PUT action\n put<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.put<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PATCH action\n patch<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.patch<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP DELETE action\n delete<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.delete<T>(resourceUrl, httpOptions)\n }\n\n // Construct URL with parameters\n private buildUrl(url: string, ...params: string[]) {\n return (params === null) ? url : (params.length === 0) ? url : `${url}${params && params.length > 0 ? '?'+params.join('&') : ''}`;\n }\n\n // Return MIME type based on file extension\n private getMimeType(fileName: string): string {\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = 'application/json';\n if (fileName.toLowerCase().endsWith('jpg') || fileName.toLowerCase().endsWith('jpeg')) {\n contentType = 'image/jpeg';\n } else if (fileName.toLowerCase().endsWith('png')) {\n contentType = 'image/png';\n } else if (fileName.toLowerCase().endsWith('tif') || fileName.toLowerCase().endsWith('tiff')) {\n contentType = 'image/tiff';\n } else if (fileName.toLowerCase().endsWith('csv')) {\n contentType = 'text/csv';\n } else if (fileName.toLowerCase().endsWith('xml')) {\n contentType = 'text/xml';\n } else if (fileName.toLowerCase().endsWith('pdf')) {\n contentType = 'application/pdf';\n } else if (fileName.toLowerCase().endsWith('xlsx')) {\n contentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n }\n return contentType\n }\n}\n","\n// SimpleEntity message is a container for single entity\nexport class SimpleEntity<T> {\n // Entity\n public value: T;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class GooxConfig {\n api: string = '';\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Certificate } from '.';\n\n\n\n// CertificatesEndPoint Services for certificates actions \n@Injectable()\nexport class CertificatesEndPoint {\n\n // URL to web api\n private baseUrl = '/certificates';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty certificate template\n */\n new() {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new certificate\n */\n create(body?: Certificate) {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing certificate\n */\n update(body?: Certificate) {\n return this.rest.put<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete certificate and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single certificate by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Certificate>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find certificates by query\n */\n find(contactId?: string, search?: string, status?: [], valid?: boolean, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (valid != null) { params.push(`valid=${valid}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload certificate reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download certificate reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete certificate reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { LoginParams } from '.';\n\n\n\n// MyAuthEndPoint Services for contact simple authentication using SMS or Email \n@Injectable()\nexport class MyAuthEndPoint {\n\n // URL to web api\n private baseUrl = '/my/auth';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Authenticate contact\n */\n authenticate(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/authenticate`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n sendCode(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/send-code`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n verifyCode(code?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/verify-code/${code}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Maintenance } from '.';\n\n\n\n// MaintenancesEndPoint Services for maintenances actions \n@Injectable()\nexport class MaintenancesEndPoint {\n\n // URL to web api\n private baseUrl = '/maintenances';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty maintenance template\n */\n new() {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new maintenance\n */\n create(body?: Maintenance) {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing maintenance\n */\n update(body?: Maintenance) {\n return this.rest.put<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete maintenance and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single maintenance by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Maintenance>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find maintenances by query\n */\n find(search?: string, airplaneId?: string, action?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload maintenance reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download maintenances reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete maintenances reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Price } from '.';\n\n\n\n// PriceListEndPoint Services for price list \n@Injectable()\nexport class PriceListEndPoint {\n\n // URL to web api\n private baseUrl = '/price-list';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty price template\n */\n new() {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new price\n */\n create(body?: Price) {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Price\n */\n update(body?: Price) {\n return this.rest.put<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Price and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Price by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Price>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Prices by query\n */\n find(airplaneId?: string, purpose?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Price>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Document } from '.';\nimport { Maintenance } from '.';\nimport { Airplane } from '.';\nimport { StringKeyValue } from '.';\nimport { Flight } from '.';\n\n\n\n// AirplanesEndPoint Services for airplanes actions \n@Injectable()\nexport class AirplanesEndPoint {\n\n // URL to web api\n private baseUrl = '/airplanes';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * region Endpoint REST handlers ---------------------------------------------------------------------------------------\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new airplane\n */\n create(body?: Airplane) {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing airplane\n */\n update(body?: Airplane) {\n return this.rest.put<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete airplane and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single airplane by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Airplane>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find airplanes by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup airplanes ID->Name by filter\n */\n lookup(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Get minimal active airplanes data for hours statistics only\n */\n hours() {\n return this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}/hours`);\n }\n\n /**\n * Find airplane flights\n */\n findFlights(id?: string, search?: string, type?: [], status?: [], state?: [], purpose?: [], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find airplane documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find airplane maintenance log book\n */\n findMaintenance(id?: string, search?: string, status?: [], action?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}/${id}/maintenance`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Document } from '.';\n\n\n\n// DocumentsEndPoint Services for documents actions \n@Injectable()\nexport class DocumentsEndPoint {\n\n // URL to web api\n private baseUrl = '/documents';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty document template\n */\n new() {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new document\n */\n create(body?: Document) {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing document\n */\n update(body?: Document) {\n return this.rest.put<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete document and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single document by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find documents by query\n */\n find(search?: string, category?: string, linkedId?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (category != null) { params.push(`category=${category}`); }\n if (linkedId != null) { params.push(`linkedId=${linkedId}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get a single document by linked entity ID\n */\n linkedDocument(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/entity/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { AnyKeyValue } from '.';\nimport { TimeSeries } from '.';\nimport { Contact } from '.';\nimport { FlightTicket } from '.';\nimport { PreFlightInfo } from '.';\nimport { PostFlightInfo } from '.';\nimport { Flight } from '.';\nimport { FlightPlan } from '.';\n\n\n\n// FlightsEndPoint Services for flights actions \n@Injectable()\nexport class FlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/flights';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Get new and empty flight template\n */\n newFromBooking(id?: string) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new-from-booking/${id}`, '');\n }\n\n /**\n * Create new flight\n */\n launch(body?: Flight) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight\n */\n update(body?: Flight) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update a list of existing flights\n */\n bulkUpdate(body?: Entities<Flight>) {\n return this.rest.put<ActionResponse>(`${this.baseUrl}/bulk`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight with partial data\n */\n partialUpdate(id?: string, body?: AnyKeyValue) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}/partial/${id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flight and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flights by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: [], status?: [], billing?: [], purpose?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Download all flights by filter as XLSX document\n */\n downloadFlightsXlsx(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: [], status?: [], billing?: [], purpose?: [], sort?: string) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.download(`export`,`${this.baseUrl}/flights-download/xlsx`, ...params);\n }\n\n /**\n * Find flights count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: [], status?: [], billing?: [], purpose?: []) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get flight plans schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Find list of contacts (pilot / first officer) on this flight\n */\n findContacts(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}/${id}/contacts`, ...params);\n }\n\n /**\n * Find list of related flight tickets for this flight\n */\n findTickets(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}/${id}/tickets`, ...params);\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightSMS(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-sms`, '');\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightEmail(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-email`, '');\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Lead } from '.';\nimport { TimeSeries } from '.';\nimport { LeadAction } from '.';\n\n\n\n// LeadsEndPoint Services for leads actions \n@Injectable()\nexport class LeadsEndPoint {\n\n // URL to web api\n private baseUrl = '/leads';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty lead template\n */\n new() {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new lead\n */\n create(body?: Lead) {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead\n */\n update(body?: Lead) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lead by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lead>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find leads by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lead>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find lead count histogram over time\n */\n histogram(from?: number, to?: number, search?: string, status?: []) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Create new lead action\n */\n createAction(body?: LeadAction) {\n return this.rest.post<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead action\n */\n updateAction(body?: LeadAction) {\n return this.rest.put<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action\n */\n deleteAction(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/actions/${id}`);\n }\n\n /**\n * Get all lead actions\n */\n getActions(id?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LeadAction>>(`${this.baseUrl}/${id}/actions`, ...params);\n }\n\n /**\n * Insert or update lead action and return list of all actions\n */\n upsertAndGetActions(body?: LeadAction) {\n return this.rest.post<EntitiesResponse<LeadAction>>(`${this.baseUrl}/upsert_and_get_actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action and return list of all actions\n */\n deleteAndGetActions(id?: string) {\n return this.rest.delete<EntitiesResponse<LeadAction>>(`${this.baseUrl}/delete_and_get_actions/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Lookup } from '.';\nimport { LookupGroup } from '.';\n\n\n\n// LookupsEndPoint Services for lookups actions \n@Injectable()\nexport class LookupsEndPoint {\n\n // URL to web api\n private baseUrl = '/lookups';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new lookup\n */\n create(body?: Lookup) {\n return this.rest.post<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lookup\n */\n update(body?: Lookup) {\n return this.rest.put<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lookup and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lookup by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lookup>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find lookups by query\n */\n find(search?: string, domain?: string, group?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (domain != null) { params.push(`domain=${domain}`); }\n if (group != null) { params.push(`group=${group}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Group lookups by group\n */\n group(domain?: string) {\n const params = [];\t\t\n if (domain != null) { params.push(`domain=${domain}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LookupGroup>>(`${this.baseUrl}/group`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { SystemMessage } from '.';\nimport { MessageConfirm } from '.';\n\n\n\n// SystemMessagesEndPoint Services for systemMessages actions \n@Injectable()\nexport class SystemMessagesEndPoint {\n\n // URL to web api\n private baseUrl = '/system_messages';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty systemMessage template\n */\n new() {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new systemMessage\n */\n create(body?: SystemMessage) {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemMessage\n */\n update(body?: SystemMessage) {\n return this.rest.put<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemMessage and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemMessage by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemMessage>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemMessages by query\n */\n find(search?: string, type?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemMessage>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find message confirmations\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { StringKeyValue } from '.';\nimport { User } from '.';\n\n\n\n// UsersEndPoint Services for users actions \n@Injectable()\nexport class UsersEndPoint {\n\n // URL to web api\n private baseUrl = '/users';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty user template\n */\n new() {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new user\n */\n create(body?: User) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing user\n */\n update(body?: User) {\n return this.rest.put<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete user and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single user by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<User>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find users by query\n */\n find(search?: string, type?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<User>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, type?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup groups ID->Name\n */\n groupsLookup() {\n return this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/groups-lookup`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Flight } from '.';\nimport { Credit } from '.';\nimport { Account } from '.';\nimport { StringKeyValue } from '.';\nimport { Document } from '.';\n\n\n\n// AccountsEndPoint Services for user registration and login \n@Injectable()\nexport class AccountsEndPoint {\n\n // URL to web api\n private baseUrl = '/accounts';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new account\n */\n create(body?: Account) {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing account\n */\n update(body?: Account) {\n return this.rest.put<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete account and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single account by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Account>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find accounts by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Account>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup account ID->Name by filter\n */\n lookup(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Find account flights\n */\n findFlights(id?: string, search?: string, airplaneId?: string, type?: [], status?: [], state?: [], purpose?: [], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find account credits\n */\n findCredits(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}/${id}/credits`, ...params);\n }\n\n /**\n * Download account credit history as XLSX document\n */\n downloadCreditsXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/credits-download/xlsx`);\n }\n\n /**\n * Find related documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { FlightTicket } from '.';\n\n\n\n// FlightTicketsEndPoint Services for flightTickets actions \n@Injectable()\nexport class FlightTicketsEndPoint {\n\n // URL to web api\n private baseUrl = '/flight_tickets';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty flightTicket template\n */\n new() {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new flightTicket\n */\n create(body?: FlightTicket) {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing flightTicket\n */\n update(body?: FlightTicket) {\n return this.rest.put<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flightTicket and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flightTicket by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<FlightTicket>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flightTickets by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { StringKeyValue } from '.';\nimport { Campaign } from '.';\n\n\n\n// CampaignsEndPoint Services for campaigns actions \n@Injectable()\nexport class CampaignsEndPoint {\n\n // URL to web api\n private baseUrl = '/campaigns';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty Campaign template\n */\n new() {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new campaign\n */\n create(body?: Campaign) {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing campaign\n */\n update(body?: Campaign) {\n return this.rest.put<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete campaign and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single campaign by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Campaign>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find campaigns by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Campaign>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup campaigns ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Group } from '.';\nimport { StringKeyValue } from '.';\n\n\n\n// GroupsEndPoint Services for groups actions \n@Injectable()\nexport class GroupsEndPoint {\n\n // URL to web api\n private baseUrl = '/groups';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new group\n */\n create(body?: Group) {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing group\n */\n update(body?: Group) {\n return this.rest.put<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete group and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single group by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Group>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find groups by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Group>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { User } from '.';\nimport { LoginParams } from '.';\n\n\n\n// UserEndPoint Services for user registration and login \n@Injectable()\nexport class UserEndPoint {\n\n // URL to web api\n private baseUrl = '/user';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Authorize user, verify user exists in the system\n * The response includes access token valid for 20 minutes. The client side should renew the token before expiration using refresh-token method\n */\n authorize(body?: LoginParams) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/authorize`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Booking } from '.';\nimport { BookingTypeFlag } from '.';\nimport { BookingSlots } from '.';\n\n\n\n// MyBookingsEndPoint Services for current user bookings actions \n@Injectable()\nexport class MyBookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/bookings';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my bookings by query\n */\n find(search?: string, airplaneId?: string, from?: number, to?: number, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find my bookings by query\n */\n getBookingSlots(year?: number, month?: number, type?: BookingTypeFlag) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (type != null) { params.push(`type=${type}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlots>>(`${this.baseUrl}/booking-slots`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { FlightPlan } from '.';\nimport { PreFlightInfo } from '.';\nimport { PostFlightInfo } from '.';\nimport { Flight } from '.';\n\n\n\n// MyFlightsEndPoint Services for user flights actions \n@Injectable()\nexport class MyFlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/flights';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my flights by query\n */\n find(search?: string, type?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { BookingPlan } from '.';\nimport { Booking } from '.';\nimport { BookingStatusCode } from '.';\nimport { TimeSeries } from '.';\n\n\n\n// BookingsEndPoint Services for bookings actions \n@Injectable()\nexport class BookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/bookings';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Approve booking\n */\n updateStatus(id?: string, status?: BookingStatusCode) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}/status/${id}/${status}`, '');\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookings by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find bookings count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: []) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get bookings schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Find my bookings by query\n */\n myBookings(search?: string, airplaneId?: string, from?: number, to?: number, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/my`, ...params);\n }\n\n /**\n * Get bookings plan data for specific day\n */\n getBookingPlan(year?: number, month?: number, day?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/plan`, ...params);\n }\n\n /**\n * Launch flight from booking ID and returns new bookings plan data for specific day\n */\n launchFromBooking(id?: string) {\n return this.rest.post<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/launch-from-booking/${id}`, '');\n }\n\n /**\n * Launch flight from booking\n */\n launch(body?: Booking) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/launch`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Credit } from '.';\n\n\n\n// CreditsEndPoint Services for credits actions \n@Injectable()\nexport class CreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/credits';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty credit template\n */\n new() {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new credit\n */\n create(body?: Credit) {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing credit\n */\n update(body?: Credit) {\n return this.rest.put<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete credit and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find credits by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload credit reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download credit reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Syllabus } from '.';\n\n\n\n// SyllabusEndPoint Services for syllabus \n@Injectable()\nexport class SyllabusEndPoint {\n\n // URL to web api\n private baseUrl = '/syllabus';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty syllabus template\n */\n new() {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new syllabus\n */\n create(body?: Syllabus) {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Syllabus\n */\n update(body?: Syllabus) {\n return this.rest.put<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Syllabus and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Syllabus by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Syllabus>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Syllabus topics by query\n */\n find(search?: string, plan?: [], type?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (plan != null) { params.push(`plan=${plan}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { SystemConfig } from '.';\n\n\n\n// SystemConfigsEndPoint Services for systemConfigs actions \n@Injectable()\nexport class SystemConfigsEndPoint {\n\n // URL to web api\n private baseUrl = '/system_configs';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new systemConfig\n */\n create(body?: SystemConfig) {\n return this.rest.post<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemConfig\n */\n update(body?: SystemConfig) {\n return this.rest.put<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemConfig and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemConfig by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemConfig>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemConfigs by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemConfig>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { BookingSlot } from '.';\nimport { BookingSlots } from '.';\nimport { BookingSlotsSet } from '.';\n\n\n\n// BookingSlotsEndPoint Services for bookingSlots actions \n@Injectable()\nexport class BookingSlotsEndPoint {\n\n // URL to web api\n private baseUrl = '/booking_slots';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty booking slot template\n */\n new() {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new bookingSlot\n */\n create(body?: BookingSlot) {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing bookingSlot\n */\n update(body?: BookingSlot) {\n return this.rest.put<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete bookingSlot and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single bookingSlot by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<BookingSlot>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookingSlots by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find Monthly slots (limit of 1000)\n */\n monthly(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/monthly`, ...params);\n }\n\n /**\n * Get all available monthly slots for patterns\n */\n monthlySlotOptions(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlots>>(`${this.baseUrl}/monthly-slot-options`, ...params);\n }\n\n /**\n * Add or remove a bulk of monthly slots for patterns\n */\n setMonthlySlot(body?: BookingSlotsSet) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/monthly-slots`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Publish slots (make invisible slots to visible)\n */\n publish(id?: string[]) {\n const params = [];\t\t\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/publish`, '', ...params);\n }\n\n /**\n * UnPublish slots (make visible slots to invisible)\n */\n unPublish(id?: string[]) {\n const params = [];\t\t\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/unpublish`, '', ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Flight } from '.';\nimport { Document } from '.';\nimport { StringKeyValue } from '.';\nimport { Certificate } from '.';\nimport { MessageConfirm } from '.';\nimport { Contact } from '.';\n\n\n\n// ContactsEndPoint Services for contacts actions \n@Injectable()\nexport class ContactsEndPoint {\n\n // URL to web api\n private baseUrl = '/contacts';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty contact template\n */\n new() {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new contact\n */\n create(body?: Contact) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing contact\n */\n update(body?: Contact) {\n return this.rest.put<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete contact and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single contact by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Contact>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find contacts by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup contacts ID->Name by filter\n */\n lookup(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup only contacts that are active pilots ID->Name by filter\n */\n lookupPilots(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup-pilots`, ...params);\n }\n\n /**\n * Find contact certificates by query\n */\n findCertificates(id?: string, search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}/${id}/certificates`, ...params);\n }\n\n /**\n * Find contact related flights by query\n */\n findFlights(id?: string, search?: string, type?: [], status?: [], state?: [], purpose?: [], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find message confirmations for this contact\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n /**\n * Find related documents for this contact\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(id?: string, sort?: string) {\n const params = [];\t\t\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/xlsx`);\n }\n\n /**\n * Download student sheet as CSV document\n */\n downloadStudentSheetCsv(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/csv`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\n\n\n\n// SystemEndPoint Services for general system queries \n@Injectable()\nexport class SystemEndPoint {\n\n // URL to web api\n private baseUrl = '/system';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Lookup returns entity name for entity id\n */\n lookup(entity?: string, id?: string) {\n return this.rest.get<ActionResponse>(`${this.baseUrl}/lookup/${entity}/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Credit } from '.';\n\n\n\n// MyCreditsEndPoint Services for current user credits queries \n@Injectable()\nexport class MyCreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/credits';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my credits by query\n */\n find(sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { AuditLog } from '.';\nimport { TimeSeries } from '.';\n\n\n\n// AuditLogsEndPoint Services for auditLogs actions \n@Injectable()\nexport class AuditLogsEndPoint {\n\n // URL to web api\n private baseUrl = '/audit_logs';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new auditLog\n */\n create(body?: AuditLog) {\n return this.rest.post<EntityResponse<AuditLog>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get a single auditLog by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<AuditLog>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find auditLogs by query\n */\n find(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<AuditLog>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find auditLogs count histogram over time\n */\n histogram(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { MessageConfirm } from '.';\n\n\n\n// MessageConfirmsEndPoint Services for messageConfirms actions \n@Injectable()\nexport class MessageConfirmsEndPoint {\n\n // URL to web api\n private baseUrl = '/message_confirms';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty messageConfirm template\n */\n new() {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new messageConfirm\n */\n create(body?: MessageConfirm) {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/{id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing messageConfirm\n */\n update(body?: MessageConfirm) {\n return this.rest.put<EntityResponse<MessageConfirm>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete messageConfirm and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single messageConfirm by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<MessageConfirm>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find messageConfirms by query\n */\n find(search?: string, messageId?: string, contactId?: string, type?: [], status?: [], priority?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (messageId != null) { params.push(`messageId=${messageId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (priority != null) { params.push(`priority=${priority}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\n// Return a map of Enum values to enum strings\nexport function MapEnumValues() : Map<string, string> {\n\n let result: Map<string, string> = new Map<string, string>();\n \n\tresult.set(\"FilterFlag.0\", \"UNDEFINED\");\n\tresult.set(\"FilterFlag.1\", \"SEARCH\");\n\tresult.set(\"FilterFlag.2\", \"F2\");\n\tresult.set(\"FilterFlag.4\", \"F3\");\n\tresult.set(\"FilterFlag.8\", \"F4\");\n\tresult.set(\"FilterFlag.16\", \"F5\");\n\tresult.set(\"FilterFlag.32\", \"F6\");\n\tresult.set(\"FilterFlag.64\", \"F7\");\n\tresult.set(\"FilterFlag.128\", \"F8\");\n\tresult.set(\"FilterFlag.256\", \"F9\");\n\tresult.set(\"FilterFlag.512\", \"F10\");\n\tresult.set(\"FilterFlag.1024\", \"F11\");\n\tresult.set(\"FilterFlag.2048\", \"F12\");\n\tresult.set(\"FilterFlag.4096\", \"F13\");\n\tresult.set(\"FilterFlag.8192\", \"F14\");\n\tresult.set(\"FilterFlag.16384\", \"F15\");\n\tresult.set(\"FilterFlag.32768\", \"F16\");\n\tresult.set(\"FilterFlag.65536\", \"F17\");\n\tresult.set(\"FilterFlag.131072\", \"F18\");\n\tresult.set(\"FilterFlag.262144\", \"F19\");\n\tresult.set(\"FilterFlag.524288\", \"F20\");\n\tresult.set(\"FilterFlag.1048576\", \"F21\");\n\tresult.set(\"FilterFlag.2097152\", \"F22\");\n\tresult.set(\"FilterFlag.4194304\", \"F23\");\n\tresult.set(\"FilterFlag.8388608\", \"F24\");\n\tresult.set(\"FilterFlag.16777216\", \"F25\");\n\tresult.set(\"TransactionTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"TransactionTypeCode.1\", \"FLIGHT\");\n\tresult.set(\"TransactionTypeCode.2\", \"INSTRUCTION\");\n\tresult.set(\"TransactionTypeCode.3\", \"PURCHASE\");\n\tresult.set(\"TransactionTypeCode.4\", \"PAYMENT\");\n\tresult.set(\"TransactionTypeCode.5\", \"BONUS\");\n\tresult.set(\"TransactionTypeCode.6\", \"REFUND\");\n\tresult.set(\"ADSBCategoryCode.0\", \"UNDEFINED\");\n\tresult.set(\"ADSBCategoryCode.1\", \"NO_ADSB\");\n\tresult.set(\"ADSBCategoryCode.2\", \"LIGHT\");\n\tresult.set(\"ADSBCategoryCode.3\", \"SMALL\");\n\tresult.set(\"ADSBCategoryCode.4\", \"LARGE\");\n\tresult.set(\"ADSBCategoryCode.5\", \"HIGH_VORTEX\");\n\tresult.set(\"ADSBCategoryCode.6\", \"HEAVY\");\n\tresult.set(\"BillingStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"BillingStatusCode.1\", \"UNAPPROVED\");\n\tresult.set(\"BillingStatusCode.2\", \"APPROVED\");\n\tresult.set(\"BillingStatusCode.3\", \"CREATED_INVOICE\");\n\tresult.set(\"BillingStatusCode.4\", \"PENDING_INVOICE\");\n\tresult.set(\"BillingStatusCode.5\", \"MANUAL_INVOICE\");\n\tresult.set(\"BillingStatusCode.6\", \"CLOSED\");\n\tresult.set(\"BillingStatusCode.7\", \"CREDIT\");\n\tresult.set(\"BillingStatusCode.8\", \"CANCELLED\");\n\tresult.set(\"BillingStatusCode.9\", \"CANCELLED_BY_CLIENT\");\n\tresult.set(\"BillingStatusCode.10\", \"IRRELEVANT\");\n\tresult.set(\"FlightStateCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightStateCode.1\", \"PENDING\");\n\tresult.set(\"FlightStateCode.2\", \"ACTIVE\");\n\tresult.set(\"FlightStateCode.3\", \"COMPLETED\");\n\tresult.set(\"FlightStateCode.4\", \"CANCELLED\");\n\tresult.set(\"LeadStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"LeadStatusCode.1\", \"NEW\");\n\tresult.set(\"LeadStatusCode.2\", \"INPROCESS\");\n\tresult.set(\"LeadStatusCode.3\", \"ASSIGNED\");\n\tresult.set(\"LeadStatusCode.4\", \"CONVERTED\");\n\tresult.set(\"LeadStatusCode.5\", \"IRRELEVANT\");\n\tresult.set(\"LeadStatusCode.6\", \"REDIRECTED\");\n\tresult.set(\"LeadStatusCode.7\", \"FOLLOWUP\");\n\tresult.set(\"BookingTypeFlag.0\", \"UNDEFINED\");\n\tresult.set(\"BookingTypeFlag.1\", \"LESSON\");\n\tresult.set(\"BookingTypeFlag.2\", \"PATTERNS\");\n\tresult.set(\"BookingTypeFlag.3\", \"RENTAL\");\n\tresult.set(\"BookingTypeFlag.4\", \"INTRODUCTORY\");\n\tresult.set(\"BookingTypeFlag.5\", \"SIMULATOR\");\n\tresult.set(\"BookingTypeFlag.6\", \"PHOTO\");\n\tresult.set(\"BookingTypeFlag.7\", \"MISSION\");\n\tresult.set(\"BookingTypeFlag.8\", \"MAINTENANCE\");\n\tresult.set(\"PriorityCode.0\", \"UNDEFINED\");\n\tresult.set(\"PriorityCode.1\", \"NONE\");\n\tresult.set(\"PriorityCode.2\", \"LOW\");\n\tresult.set(\"PriorityCode.3\", \"MEDIUM\");\n\tresult.set(\"PriorityCode.4\", \"HIGH\");\n\tresult.set(\"TicketStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"TicketStatusCode.1\", \"PENDING\");\n\tresult.set(\"TicketStatusCode.2\", \"SENT\");\n\tresult.set(\"AirplaneValidationFlag.0\", \"UNDEFINED\");\n\tresult.set(\"AirplaneValidationFlag.1\", \"AIRWORTHINESS\");\n\tresult.set(\"AirplaneValidationFlag.2\", \"INSURANCE\");\n\tresult.set(\"AirplaneValidationFlag.4\", \"FLIGHT_MANUAL\");\n\tresult.set(\"AirplaneValidationFlag.8\", \"RADIO_STATION\");\n\tresult.set(\"AirplaneValidationFlag.16\", \"REGISTRATION_CERT\");\n\tresult.set(\"AirplaneValidationFlag.32\", \"FIRST_AID_KIT\");\n\tresult.set(\"AirplaneValidationFlag.64\", \"FIRE_EXTINGUISHER\");\n\tresult.set(\"AirplaneValidationFlag.128\", \"OPERATION_SPEC\");\n\tresult.set(\"AirplaneValidationFlag.256\", \"VALID_337_CAMERA\");\n\tresult.set(\"AirplaneValidationFlag.512\", \"VALID_337_EXHAUST\");\n\tresult.set(\"AirplaneValidationFlag.1024\", \"VALID_STC_CAMERA\");\n\tresult.set(\"AirplaneValidationFlag.2048\", \"VALID_STC_EXHAUST\");\n\tresult.set(\"AirplaneValidationFlag.4096\", \"FLIGHT_LOGBOOK\");\n\tresult.set(\"AirplaneValidationFlag.8192\", \"AIR_OPERATOR\");\n\tresult.set(\"AirplaneValidationFlag.16384\", \"AIRCRAFT_WEIGHT\");\n\tresult.set(\"AirplaneValidationFlag.32768\", \"PROPELLER_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.65536\", \"SINGLE_ENGINE_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.131072\", \"LEFT_ENGINE_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.262144\", \"RIGHT_ENGINE_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.524288\", \"LEFT_PROPELLER_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.1048576\", \"RIGHT_PROPELLER_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.2097152\", \"CVFR_ATS\");\n\tresult.set(\"AirplaneValidationFlag.4194304\", \"WEIGHT_BALANCE_FORM\");\n\tresult.set(\"AirplaneValidationFlag.8388608\", \"CHECK_LIST\");\n\tresult.set(\"AirplaneValidationFlag.16777216\", \"NOISE_CERT\");\n\tresult.set(\"FlightPurposeCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightPurposeCode.1\", \"INTRODUCTORY\");\n\tresult.set(\"FlightPurposeCode.2\", \"INSTRUCTION\");\n\tresult.set(\"FlightPurposeCode.3\", \"RENTAL\");\n\tresult.set(\"FlightPurposeCode.4\", \"PRIVATE\");\n\tresult.set(\"FlightPurposeCode.5\", \"VERTICAL_PHOTO\");\n\tresult.set(\"FlightPurposeCode.6\", \"DIAGONAL_PHOTO\");\n\tresult.set(\"FlightPurposeCode.7\", \"ROUND\");\n\tresult.set(\"FlightPurposeCode.8\", \"CAA_TEST\");\n\tresult.set(\"FlightPurposeCode.9\", \"TRANSFER\");\n\tresult.set(\"FlightPurposeCode.10\", \"AIR_TAXI\");\n\tresult.set(\"FlightPurposeCode.11\", \"ENGINE_RUNNING\");\n\tresult.set(\"FlightPurposeCode.12\", \"OTHER\");\n\tresult.set(\"ValidationFlag.0\", \"UNDEFINED\");\n\tresult.set(\"ValidationFlag.1\", \"MEDICAL_CERT\");\n\tresult.set(\"ValidationFlag.2\", \"PILOT_LICENSE\");\n\tresult.set(\"ValidationFlag.4\", \"SINGLE_ENG_CERT\");\n\tresult.set(\"ValidationFlag.8\", \"DUAL_ENG_CERT\");\n\tresult.set(\"ValidationFlag.16\", \"INST_666_CERT\");\n\tresult.set(\"ValidationFlag.32\", \"INST_REC_CERT\");\n\tresult.set(\"ValidationFlag.64\", \"DAYTIME_FLY\");\n\tresult.set(\"ValidationFlag.128\", \"NIGHTTIME_FLY\");\n\tresult.set(\"ValidationFlag.256\", \"NIGHT_CVFR_CUR\");\n\tresult.set(\"ValidationFlag.512\", \"ROUTE_EXAM\");\n\tresult.set(\"ValidationFlag.1024\", \"DI_CERT\");\n\tresult.set(\"ValidationFlag.2048\", \"INTERNATIONAL\");\n\tresult.set(\"ValidationFlag.4096\", \"ENGLISH_PROF\");\n\tresult.set(\"ValidationFlag.8192\", \"INSTRUCTOR_LICENSE\");\n\tresult.set(\"ValidationFlag.16384\", \"COMPANY_CHECK\");\n\tresult.set(\"ValidationFlag.32768\", \"COMPANY_EXAMIN\");\n\tresult.set(\"ValidationFlag.65536\", \"COMMERCIAL_172P\");\n\tresult.set(\"ValidationFlag.131072\", \"COMMERCIAL_172XP\");\n\tresult.set(\"ValidationFlag.262144\", \"COMMERCIAL_207\");\n\tresult.set(\"AirplaneStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"AirplaneStatusCode.1\", \"ACTIVE\");\n\tresult.set(\"AirplaneStatusCode.2\", \"MAINTENANCE\");\n\tresult.set(\"AirplaneStatusCode.3\", \"SUSPENDED\");\n\tresult.set(\"CampaignTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"CampaignTypeCode.1\", \"WEB\");\n\tresult.set(\"CampaignTypeCode.2\", \"EMAIL\");\n\tresult.set(\"CampaignTypeCode.3\", \"TELESALES\");\n\tresult.set(\"LicenseTypeFlag.0\", \"UNDEFINED\");\n\tresult.set(\"LicenseTypeFlag.1\", \"PILOT\");\n\tresult.set(\"LicenseTypeFlag.2\", \"STUDENT\");\n\tresult.set(\"LicenseTypeFlag.4\", \"PPL\");\n\tresult.set(\"LicenseTypeFlag.8\", \"CPL\");\n\tresult.set(\"LicenseTypeFlag.16\", \"CFI\");\n\tresult.set(\"LicenseTypeFlag.32\", \"IFR\");\n\tresult.set(\"LicenseTypeFlag.64\", \"C172P\");\n\tresult.set(\"LicenseTypeFlag.128\", \"C172XP\");\n\tresult.set(\"LicenseTypeFlag.256\", \"C207\");\n\tresult.set(\"LicenseTypeFlag.512\", \"PA31\");\n\tresult.set(\"MaintenanceActionCode.0\", \"UNDEFINED\");\n\tresult.set(\"MaintenanceActionCode.1\", \"NONE\");\n\tresult.set(\"MaintenanceActionCode.2\", \"INSPECTION\");\n\tresult.set(\"MaintenanceActionCode.3\", \"OVERHAUL\");\n\tresult.set(\"MaintenanceActionCode.4\", \"REISSUE\");\n\tresult.set(\"MaintenanceActionCode.5\", \"REPLACEMENT\");\n\tresult.set(\"MaintenanceActionCode.6\", \"WEIGHT\");\n\tresult.set(\"ModuleCode.0\", \"UNDEFINED\");\n\tresult.set(\"ModuleCode.1\", \"AUDIT_LOG\");\n\tresult.set(\"ModuleCode.2\", \"USERS\");\n\tresult.set(\"ModuleCode.3\", \"GROUPS\");\n\tresult.set(\"ModuleCode.4\", \"ACCOUNTS\");\n\tresult.set(\"ModuleCode.5\", \"CONTACTS\");\n\tresult.set(\"ModuleCode.6\", \"LEADS\");\n\tresult.set(\"ModuleCode.7\", \"CAMPAIGNS\");\n\tresult.set(\"ModuleCode.8\", \"CERTIFICATES\");\n\tresult.set(\"ModuleCode.9\", \"MESSAGES\");\n\tresult.set(\"ModuleCode.10\", \"FLIGHTS\");\n\tresult.set(\"ModuleCode.11\", \"FLIGHT_TICKETS\");\n\tresult.set(\"ModuleCode.12\", \"AIRPLANES\");\n\tresult.set(\"ModuleCode.13\", \"AIRWORTHINESS\");\n\tresult.set(\"FlightTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightTypeCode.1\", \"GENERAL\");\n\tresult.set(\"FlightTypeCode.2\", \"OTHER\");\n\tresult.set(\"FlightTypeCode.3\", \"PRIVATE\");\n\tresult.set(\"FlightTypeCode.4\", \"PRIVATE_IFR\");\n\tresult.set(\"FlightTypeCode.5\", \"COMMERCIAL\");\n\tresult.set(\"FlightTypeCode.6\", \"COMMERCIAL_IFR\");\n\tresult.set(\"FlightTypeCode.7\", \"INSTRUCTION\");\n\tresult.set(\"FlightTypeCode.8\", \"INSTRUCTION_CVFR\");\n\tresult.set(\"FlightTypeCode.9\", \"INSTRUCTION_IFR\");\n\tresult.set(\"FlightTypeCode.10\", \"INSTRUCTION_NAV\");\n\tresult.set(\"FlightTypeCode.11\", \"INSTRUCTION_NIGHT\");\n\tresult.set(\"PermissionFlag.0\", \"UNDEFINED\");\n\tresult.set(\"PermissionFlag.1\", \"READ\");\n\tresult.set(\"PermissionFlag.2\", \"CREATE\");\n\tresult.set(\"PermissionFlag.4\", \"UPDATE\");\n\tresult.set(\"PermissionFlag.8\", \"DELETE\");\n\tresult.set(\"PermissionFlag.16\", \"MANAGE\");\n\tresult.set(\"PermissionFlag.31\", \"ALL\");\n\tresult.set(\"UserStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"UserStatusCode.1\", \"PENDING\");\n\tresult.set(\"UserStatusCode.2\", \"ACTIVE\");\n\tresult.set(\"UserStatusCode.3\", \"BLOCKED\");\n\tresult.set(\"UserStatusCode.4\", \"SUSPENDED\");\n\tresult.set(\"AccountStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"AccountStatusCode.1\", \"ACTIVE\");\n\tresult.set(\"AccountStatusCode.2\", \"INACTIVE\");\n\tresult.set(\"AccountStatusCode.3\", \"BLOCKED\");\n\tresult.set(\"AccountStatusCode.4\", \"SUSPENDED\");\n\tresult.set(\"ConfirmStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"ConfirmStatusCode.1\", \"PENDING\");\n\tresult.set(\"ConfirmStatusCode.2\", \"APPROVED\");\n\tresult.set(\"ConfirmStatusCode.3\", \"REJECTED\");\n\tresult.set(\"ErrorCode.0\", \"UNDEFINED\");\n\tresult.set(\"ErrorCode.-1\", \"GENERAL_ERROR\");\n\tresult.set(\"ErrorCode.-2\", \"UNAUTHENTICATED\");\n\tresult.set(\"ErrorCode.-3\", \"UNAUTHORIZED\");\n\tresult.set(\"ErrorCode.-10\", \"NOT_FOUND\");\n\tresult.set(\"ErrorCode.-1001\", \"FLIGHT_PILOTS_ONLY\");\n\tresult.set(\"ErrorCode.-1002\", \"FLIGHT_PIC_ONLY\");\n\tresult.set(\"ErrorCode.-1010\", \"PREFLIGHT_ALREADY_REPORTED\");\n\tresult.set(\"ErrorCode.-1011\", \"POSTFLIGHT_ALREADY_REPORTED\");\n\tresult.set(\"FlightClassCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightClassCode.32\", \"PRIVATE\");\n\tresult.set(\"FlightClassCode.64\", \"COMMERCIAL\");\n\tresult.set(\"FlightClassCode.128\", \"INTRODUCTORY\");\n\tresult.set(\"FlightClassCode.256\", \"EXAM\");\n\tresult.set(\"FlightClassCode.512\", \"INSTRUCTION\");\n\tresult.set(\"FlightClassCode.1024\", \"MAINTENANCE\");\n\tresult.set(\"FlightClassCode.2048\", \"OTHER\");\n\tresult.set(\"FlightStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightStatusCode.1\", \"REGISTERED\");\n\tresult.set(\"FlightStatusCode.2\", \"ACTIVE\");\n\tresult.set(\"FlightStatusCode.3\", \"COMPLETED\");\n\tresult.set(\"FlightStatusCode.4\", \"CANCELLED\");\n\tresult.set(\"FlightStatusCode.5\", \"ABORTED\");\n\tresult.set(\"FlightStatusCode.6\", \"DELETE\");\n\tresult.set(\"PaymentMethodCode.0\", \"UNDEFINED\");\n\tresult.set(\"PaymentMethodCode.1\", \"NONE\");\n\tresult.set(\"PaymentMethodCode.2\", \"CREDIT_CLIENT\");\n\tresult.set(\"PaymentMethodCode.3\", \"CARD\");\n\tresult.set(\"PaymentMethodCode.4\", \"CHECK\");\n\tresult.set(\"PaymentMethodCode.5\", \"CASH\");\n\tresult.set(\"PaymentMethodCode.6\", \"BANK\");\n\tresult.set(\"UserRoleFlag.0\", \"UNDEFINED\");\n\tresult.set(\"UserRoleFlag.1\", \"STUDENT\");\n\tresult.set(\"UserRoleFlag.2\", \"PILOT\");\n\tresult.set(\"UserRoleFlag.4\", \"INSTRUCTOR\");\n\tresult.set(\"UserRoleFlag.8\", \"SALES\");\n\tresult.set(\"UserRoleFlag.16\", \"OPERATIONS\");\n\tresult.set(\"UserRoleFlag.32\", \"MAINTENANCE\");\n\tresult.set(\"UserRoleFlag.1024\", \"MANAGER\");\n\tresult.set(\"UserRoleFlag.2047\", \"ALL\");\n\tresult.set(\"UserTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"UserTypeCode.1\", \"SYSADMIN\");\n\tresult.set(\"UserTypeCode.2\", \"SUPPORT\");\n\tresult.set(\"UserTypeCode.3\", \"USER\");\n\tresult.set(\"UserTypeCode.4\", \"SERVICE\");\n\tresult.set(\"ADSBSourceFlag.0\", \"ADSB\");\n\tresult.set(\"ADSBSourceFlag.1\", \"ASTERIX\");\n\tresult.set(\"ADSBSourceFlag.2\", \"MLAT\");\n\tresult.set(\"ADSBSourceFlag.3\", \"FLARM\");\n\tresult.set(\"BookingStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"BookingStatusCode.1\", \"PENDING\");\n\tresult.set(\"BookingStatusCode.2\", \"APPROVED\");\n\tresult.set(\"BookingStatusCode.3\", \"REJECTED\");\n\tresult.set(\"BookingStatusCode.4\", \"CONFIRMED\");\n\tresult.set(\"BookingStatusCode.5\", \"CANCELLED\");\n\tresult.set(\"BookingStatusCode.6\", \"FLIGHT_LAUNCHED\");\n\tresult.set(\"BookingStatusCode.7\", \"FLIGHT_CANCELLED\");\n\tresult.set(\"BookingStatusCode.8\", \"FLIGHT_COMPLETED\");\n\tresult.set(\"BookingStatusCode.9\", \"FLIGHT_ABORTED\");\n\tresult.set(\"FlightCategoryCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightCategoryCode.65\", \"COMMERCIAL_PHOTO\");\n\tresult.set(\"FlightCategoryCode.66\", \"COMMERCIAL_TAXI\");\n\tresult.set(\"FlightCategoryCode.67\", \"COMMERCIAL_OTHER\");\n\tresult.set(\"FlightCategoryCode.257\", \"EXAM_ANN_PROFICIENCY\");\n\tresult.set(\"FlightCategoryCode.258\", \"EXAM_ANN_IFR\");\n\tresult.set(\"FlightCategoryCode.259\", \"EXAM_CAA_PPL\");\n\tresult.set(\"FlightCategoryCode.260\", \"EXAM_CAA_CPL\");\n\tresult.set(\"FlightCategoryCode.261\", \"EXAM_CAA_CFI\");\n\tresult.set(\"FlightCategoryCode.262\", \"EXAM_CAA_IFR\");\n\tresult.set(\"FlightCategoryCode.263\", \"EXAM_CAA_CONVERSION\");\n\tresult.set(\"FlightCategoryCode.513\", \"INSTRUCTION_PPL\");\n\tresult.set(\"FlightCategoryCode.514\", \"INSTRUCTION_CPL\");\n\tresult.set(\"FlightCategoryCode.515\", \"INSTRUCTION_CFI\");\n\tresult.set(\"FlightCategoryCode.516\", \"INSTRUCTION_IFR\");\n\tresult.set(\"FlightCategoryCode.517\", \"INSTRUCTION_UL_CONV\");\n\tresult.set(\"FlightCategoryCode.518\", \"INSTRUCTION_COPTER_CONV\");\n\tresult.set(\"FlightCategoryCode.519\", \"INSTRUCTION_CPL_5\");\n\tresult.set(\"FlightCategoryCode.520\", \"INSTRUCTION_IFR_5\");\n\tresult.set(\"FlightCategoryCode.521\", \"INSTRUCTION_CPL_10\");\n\tresult.set(\"FlightCategoryCode.522\", \"INSTRUCTION_IFR_10\");\n\tresult.set(\"FlightCategoryCode.523\", \"INSTRUCTION_CPL_15\");\n\tresult.set(\"FlightCategoryCode.524\", \"INSTRUCTION_IFR_15\");\n\tresult.set(\"FlightCategoryCode.525\", \"INSTRUCTION_CPL_20\");\n\tresult.set(\"FlightCategoryCode.526\", \"INSTRUCTION_IFR_20\");\n\tresult.set(\"FlightCategoryCode.527\", \"INSTRUCTION_PPL_25\");\n\tresult.set(\"FlightCategoryCode.2049\", \"MAINTENANCE_ENGINE_RUNNING\");\n\tresult.set(\"FlightCategoryCode.2050\", \"MAINTENANCE_TRANSFER\");\n\tresult.set(\"LessonTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"LessonTypeCode.1\", \"INSTRUCTION\");\n\tresult.set(\"LessonTypeCode.2\", \"INSTRUCTION_CVFR\");\n\tresult.set(\"LessonTypeCode.3\", \"INSTRUCTION_IFR\");\n\tresult.set(\"LessonTypeCode.4\", \"INSTRUCTION_NAV\");\n\tresult.set(\"LessonTypeCode.5\", \"INSTRUCTION_NIGHT\");\n\tresult.set(\"LessonTypeCode.6\", \"OTHER\");\n\tresult.set(\"MessageTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"MessageTypeCode.1\", \"INFO\");\n\tresult.set(\"MessageTypeCode.2\", \"MEMO\");\n\tresult.set(\"MessageTypeCode.3\", \"EXTERNAL_PROCEDURE\");\n\tresult.set(\"MessageTypeCode.4\", \"INTERNAL_PROCEDURE\");\n\tresult.set(\"MessageTypeCode.5\", \"INCIDENT\");\n\tresult.set(\"MessageTypeCode.6\", \"POLICY\");\n\tresult.set(\"MessageTypeCode.7\", \"REPAIR\");\n\tresult.set(\"StatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"StatusCode.1\", \"PENDING\");\n\tresult.set(\"StatusCode.2\", \"IN_PROCESS\");\n\tresult.set(\"StatusCode.3\", \"COMPLETED\");\n\tresult.set(\"StatusCode.4\", \"CANCELLED\");\n\tresult.set(\"StatusCode.5\", \"AUTO_CANCELLED\");\n\tresult.set(\"AssessmentCode.0\", \"UNDEFINED\");\n\tresult.set(\"AssessmentCode.1\", \"EXCELLENT\");\n\tresult.set(\"AssessmentCode.2\", \"SATISFACTORY\");\n\tresult.set(\"AssessmentCode.3\", \"BELOW_AVERAGE\");\n\tresult.set(\"AssessmentCode.4\", \"UNSATISFACTORY\");\n\tresult.set(\"AssessmentCode.5\", \"INCOMPLETE\");\n\tresult.set(\"AssessmentCode.6\", \"REPEAT\");\n\tresult.set(\"AssessmentCode.7\", \"DEMO\");\n\tresult.set(\"CampaignStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"CampaignStatusCode.1\", \"PLANNING\");\n\tresult.set(\"CampaignStatusCode.2\", \"ACTIVE\");\n\tresult.set(\"CampaignStatusCode.3\", \"COMPLETED\");\n\tresult.set(\"CampaignStatusCode.4\", \"SUSPENDED\");\n\tresult.set(\"CurrencyCode.0\", \"UNDEFINED\");\n\tresult.set(\"CurrencyCode.1\", \"ILS\");\n\tresult.set(\"CurrencyCode.2\", \"USD\");\n\tresult.set(\"CurrencyCode.3\", \"EUR\");\n\tresult.set(\"InstructionTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"InstructionTypeCode.1\", \"FLIGHT\");\n\tresult.set(\"InstructionTypeCode.2\", \"CLASS\");\n\tresult.set(\"InstructionTypeCode.3\", \"SIMULATOR\");\n\tresult.set(\"LessonSubjectCode.0\", \"UNDEFINED\");\n\tresult.set(\"LessonSubjectCode.1\", \"PPL_01\");\n\tresult.set(\"LessonSubjectCode.2\", \"PPL_02\");\n\tresult.set(\"LessonSubjectCode.3\", \"PPL_03\");\n\tresult.set(\"LessonSubjectCode.4\", \"PPL_04\");\n\tresult.set(\"LessonSubjectCode.5\", \"PPL_05\");\n\tresult.set(\"LessonSubjectCode.6\", \"PPL_06\");\n\tresult.set(\"LessonSubjectCode.7\", \"PPL_07\");\n\tresult.set(\"LessonSubjectCode.8\", \"PPL_08\");\n\tresult.set(\"LessonSubjectCode.9\", \"PPL_09\");\n\tresult.set(\"LessonSubjectCode.10\", \"PPL_10\");\n\tresult.set(\"LessonSubjectCode.11\", \"PPL_11\");\n\tresult.set(\"LessonSubjectCode.12\", \"PPL_12\");\n\tresult.set(\"LessonSubjectCode.13\", \"PPL_13\");\n\tresult.set(\"LessonSubjectCode.14\", \"PPL_14\");\n\tresult.set(\"LessonSubjectCode.15\", \"PPL_15\");\n\tresult.set(\"LessonSubjectCode.16\", \"PPL_16\");\n\tresult.set(\"LessonSubjectCode.17\", \"PPL_17\");\n\tresult.set(\"LessonSubjectCode.18\", \"PPL_18\");\n\tresult.set(\"LessonSubjectCode.19\", \"PPL_19\");\n\tresult.set(\"LessonSubjectCode.20\", \"PPL_20\");\n\tresult.set(\"LessonSubjectCode.21\", \"PPL_21\");\n\tresult.set(\"LessonSubjectCode.22\", \"PPL_22\");\n\tresult.set(\"LessonSubjectCode.23\", \"PPL_23\");\n\tresult.set(\"LessonSubjectCode.24\", \"PPL_24\");\n\tresult.set(\"LessonSubjectCode.25\", \"PPL_25\");\n\tresult.set(\"LessonSubjectCode.26\", \"PPL_26\");\n\tresult.set(\"LessonSubjectCode.27\", \"PPL_27\");\n\tresult.set(\"LessonSubjectCode.28\", \"PPL_28\");\n\tresult.set(\"LessonSubjectCode.29\", \"PPL_29\");\n\tresult.set(\"LessonSubjectCode.30\", \"PPL_30\");\n\tresult.set(\"LessonSubjectCode.31\", \"PPL_31\");\n\tresult.set(\"LessonSubjectCode.32\", \"PPL_32\");\n\tresult.set(\"LessonSubjectCode.33\", \"PPL_33\");\n\tresult.set(\"LessonSubjectCode.34\", \"PPL_34\");\n\tresult.set(\"LessonSubjectCode.35\", \"PPL_35\");\n\tresult.set(\"LessonSubjectCode.36\", \"PPL_36\");\n\tresult.set(\"LessonSubjectCode.37\", \"PPL_37\");\n\tresult.set(\"LessonSubjectCode.38\", \"PPL_38\");\n\tresult.set(\"LessonSubjectCode.39\", \"PPL_39\");\n\tresult.set(\"LessonSubjectCode.51\", \"PPL_AZM_01\");\n\tresult.set(\"LessonSubjectCode.52\", \"PPL_AZM_02\");\n\tresult.set(\"LessonSubjectCode.53\", \"PPL_AZM_03\");\n\tresult.set(\"LessonSubjectCode.54\", \"PPL_AZM_04\");\n\tresult.set(\"LessonSubjectCode.55\", \"PPL_AZM_05\");\n\tresult.set(\"LessonSubjectCode.56\", \"PPL_AZM_06\");\n\tresult.set(\"LessonSubjectCode.57\", \"PPL_AZM_07\");\n\tresult.set(\"LessonSubjectCode.58\", \"PPL_AZM_08\");\n\tresult.set(\"LessonSubjectCode.59\", \"PPL_AZM_09\");\n\tresult.set(\"LessonSubjectCode.60\", \"PPL_AZM_10\");\n\tresult.set(\"LessonSubjectCode.61\", \"PPL_AZM_11\");\n\tresult.set(\"LessonSubjectCode.62\", \"PPL_AZM_12\");\n\tresult.set(\"LessonSubjectCode.63\", \"PPL_AZM_13\");\n\tresult.set(\"LessonSubjectCode.64\", \"PPL_AZM_14\");\n\tresult.set(\"LessonSubjectCode.65\", \"PPL_AZM_15\");\n\tresult.set(\"LessonSubjectCode.66\", \"PPL_AZM_16\");\n\tresult.set(\"LessonSubjectCode.101\", \"CPL_01\");\n\tresult.set(\"LessonSubjectCode.102\", \"CPL_02\");\n\tresult.set(\"LessonSubjectCode.103\", \"CPL_03\");\n\tresult.set(\"LessonSubjectCode.104\", \"CPL_04\");\n\tresult.set(\"LessonSubjectCode.105\", \"CPL_05\");\n\tresult.set(\"LessonSubjectCode.106\", \"CPL_06\");\n\tresult.set(\"LessonSubjectCode.107\", \"CPL_07\");\n\tresult.set(\"LessonSubjectCode.108\", \"CPL_08\");\n\tresult.set(\"LessonSubjectCode.109\", \"CPL_09\");\n\tresult.set(\"LessonSubjectCode.110\", \"CPL_10\");\n\tresult.set(\"LessonSubjectCode.111\", \"CPL_11\");\n\tresult.set(\"LessonSubjectCode.112\", \"CPL_12\");\n\tresult.set(\"LessonSubjectCode.113\", \"CPL_13\");\n\tresult.set(\"LessonSubjectCode.201\", \"IFR_05_01\");\n\tresult.set(\"LessonSubjectCode.202\", \"IFR_05_02\");\n\tresult.set(\"LessonSubjectCode.203\", \"IFR_05_03\");\n\tresult.set(\"LessonSubjectCode.204\", \"IFR_05_04\");\n\tresult.set(\"LessonSubjectCode.205\", \"IFR_05_05\");\n\tresult.set(\"LessonSubjectCode.221\", \"IFR_20_01\");\n\tresult.set(\"LessonSubjectCode.222\", \"IFR_20_02\");\n\tresult.set(\"LessonSubjectCode.223\", \"IFR_20_03\");\n\tresult.set(\"LessonSubjectCode.224\", \"IFR_20_04\");\n\tresult.set(\"LessonSubjectCode.225\", \"IFR_20_05\");\n\tresult.set(\"LessonSubjectCode.226\", \"IFR_20_06\");\n\tresult.set(\"LessonSubjectCode.227\", \"IFR_20_07\");\n\tresult.set(\"LessonSubjectCode.228\", \"IFR_20_08\");\n\tresult.set(\"LessonSubjectCode.229\", \"IFR_20_09\");\n\tresult.set(\"LessonSubjectCode.230\", \"IFR_20_10\");\n\tresult.set(\"LessonSubjectCode.231\", \"IFR_20_11\");\n\tresult.set(\"LessonSubjectCode.232\", \"IFR_20_12\");\n\tresult.set(\"LessonSubjectCode.233\", \"IFR_20_13\");\n\tresult.set(\"LessonSubjectCode.234\", \"IFR_20_14\");\n\tresult.set(\"LessonSubjectCode.235\", \"IFR_20_15\");\n\tresult.set(\"LessonSubjectCode.236\", \"IFR_20_16\");\n\tresult.set(\"LessonSubjectCode.237\", \"IFR_20_17\");\n\tresult.set(\"LessonSubjectCode.238\", \"IFR_20_18\");\n \n\treturn result;\n}\n","\nimport { AuditLogsEndPoint } from '.';\nimport { MessageConfirmsEndPoint } from '.';\nimport { CertificatesEndPoint } from '.';\nimport { MyAuthEndPoint } from '.';\nimport { PriceListEndPoint } from '.';\nimport { AirplanesEndPoint } from '.';\nimport { DocumentsEndPoint } from '.';\nimport { FlightsEndPoint } from '.';\nimport { LeadsEndPoint } from '.';\nimport { MaintenancesEndPoint } from '.';\nimport { LookupsEndPoint } from '.';\nimport { SystemMessagesEndPoint } from '.';\nimport { UsersEndPoint } from '.';\nimport { AccountsEndPoint } from '.';\nimport { FlightTicketsEndPoint } from '.';\nimport { CampaignsEndPoint } from '.';\nimport { GroupsEndPoint } from '.';\nimport { UserEndPoint } from '.';\nimport { MyBookingsEndPoint } from '.';\nimport { BookingsEndPoint } from '.';\nimport { CreditsEndPoint } from '.';\nimport { SyllabusEndPoint } from '.';\nimport { SystemConfigsEndPoint } from '.';\nimport { MyFlightsEndPoint } from '.';\nimport { BookingSlotsEndPoint } from '.';\nimport { ContactsEndPoint } from '.';\nimport { SystemEndPoint } from '.';\nimport { MyCreditsEndPoint } from '.';\n\nexport const Services = [\n AuditLogsEndPoint,\n MessageConfirmsEndPoint,\n CertificatesEndPoint,\n MyAuthEndPoint,\n PriceListEndPoint,\n AirplanesEndPoint,\n DocumentsEndPoint,\n FlightsEndPoint,\n LeadsEndPoint,\n MaintenancesEndPoint,\n LookupsEndPoint,\n SystemMessagesEndPoint,\n UsersEndPoint,\n AccountsEndPoint,\n FlightTicketsEndPoint,\n CampaignsEndPoint,\n GroupsEndPoint,\n UserEndPoint,\n MyBookingsEndPoint,\n BookingsEndPoint,\n CreditsEndPoint,\n SyllabusEndPoint,\n SystemConfigsEndPoint,\n MyFlightsEndPoint,\n BookingSlotsEndPoint,\n ContactsEndPoint,\n SystemEndPoint,\n MyCreditsEndPoint,\n \n]\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Services } from './lib/services.export';\nimport { RestUtil } from './utils/rest-util';\nimport { GooxConfig } from './config';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule]\n})\nexport class NgxGooxLibModule {\n static forRoot(config: GooxConfig): ModuleWithProviders<NgxGooxLibModule> {\n return {\n ngModule: NgxGooxLibModule,\n providers: [\n { provide: 'config', useValue: config },\n RestUtil,\n ...Services\n ]\n };\n }\n}\n\n","/*\n * Public API Surface of ngx-goox-lib\n */\n\nexport * from './ngx-goox-lib.module';\nexport * from './lib';\nexport * from './utils';\nexport * from './config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RestUtil"],"mappings":"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QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,C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iB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,C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"}
|
|
1
|
+
{"version":3,"file":"aya-flights-ngx-goox-lib.mjs","sources":["../../../projects/ngx-goox-lib/src/lib/ColumnDef.ts","../../../projects/ngx-goox-lib/src/lib/TimeFrame.ts","../../../projects/ngx-goox-lib/src/lib/TimeDataPoint.ts","../../../projects/ngx-goox-lib/src/lib/TimeSeries.ts","../../../projects/ngx-goox-lib/src/lib/BaseEntity.ts","../../../projects/ngx-goox-lib/src/lib/BaseEntityEx.ts","../../../projects/ngx-goox-lib/src/lib/Tuple.ts","../../../projects/ngx-goox-lib/src/lib/AirplaneValidationFlag.ts","../../../projects/ngx-goox-lib/src/lib/FlightPurposeCode.ts","../../../projects/ngx-goox-lib/src/lib/AirplaneStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/CampaignTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/LicenseTypeFlag.ts","../../../projects/ngx-goox-lib/src/lib/MaintenanceActionCode.ts","../../../projects/ngx-goox-lib/src/lib/ModuleCode.ts","../../../projects/ngx-goox-lib/src/lib/ValidationFlag.ts","../../../projects/ngx-goox-lib/src/lib/AccountStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ConfirmStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ErrorCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightClassCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/PermissionFlag.ts","../../../projects/ngx-goox-lib/src/lib/UserStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ADSBSourceFlag.ts","../../../projects/ngx-goox-lib/src/lib/BookingStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightCategoryCode.ts","../../../projects/ngx-goox-lib/src/lib/LessonTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/MessageTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/PaymentMethodCode.ts","../../../projects/ngx-goox-lib/src/lib/UserRoleFlag.ts","../../../projects/ngx-goox-lib/src/lib/UserTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/AssessmentCode.ts","../../../projects/ngx-goox-lib/src/lib/CampaignStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/CurrencyCode.ts","../../../projects/ngx-goox-lib/src/lib/InstructionTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/LessonSubjectCode.ts","../../../projects/ngx-goox-lib/src/lib/StatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FilterFlag.ts","../../../projects/ngx-goox-lib/src/lib/ADSBCategoryCode.ts","../../../projects/ngx-goox-lib/src/lib/BillingStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/FlightStateCode.ts","../../../projects/ngx-goox-lib/src/lib/LeadStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/OperatorCode.ts","../../../projects/ngx-goox-lib/src/lib/TransactionTypeCode.ts","../../../projects/ngx-goox-lib/src/lib/BookingTypeFlag.ts","../../../projects/ngx-goox-lib/src/lib/PriorityCode.ts","../../../projects/ngx-goox-lib/src/lib/TicketStatusCode.ts","../../../projects/ngx-goox-lib/src/lib/ADSBState.ts","../../../projects/ngx-goox-lib/src/lib/Airplane.ts","../../../projects/ngx-goox-lib/src/lib/BillingRecord.ts","../../../projects/ngx-goox-lib/src/lib/DepartureRisks.ts","../../../projects/ngx-goox-lib/src/lib/FlightTicket.ts","../../../projects/ngx-goox-lib/src/lib/BookingsFilter.ts","../../../projects/ngx-goox-lib/src/lib/Price.ts","../../../projects/ngx-goox-lib/src/lib/ContactsFilter.ts","../../../projects/ngx-goox-lib/src/lib/UsersFilter.ts","../../../projects/ngx-goox-lib/src/lib/PostFlightData.ts","../../../projects/ngx-goox-lib/src/lib/FlightPassenger.ts","../../../projects/ngx-goox-lib/src/lib/AccountsFilter.ts","../../../projects/ngx-goox-lib/src/lib/LeadsFilter.ts","../../../projects/ngx-goox-lib/src/lib/MaintenancesFilter.ts","../../../projects/ngx-goox-lib/src/lib/SyllabusFilter.ts","../../../projects/ngx-goox-lib/src/lib/FlightRisk.ts","../../../projects/ngx-goox-lib/src/lib/AuditLogFilter.ts","../../../projects/ngx-goox-lib/src/lib/CertificatesFilter.ts","../../../projects/ngx-goox-lib/src/lib/CreditsFilter.ts","../../../projects/ngx-goox-lib/src/lib/BookingPlan.ts","../../../projects/ngx-goox-lib/src/lib/FlightBilling.ts","../../../projects/ngx-goox-lib/src/lib/SpecialRisks.ts","../../../projects/ngx-goox-lib/src/lib/FlightPlan.ts","../../../projects/ngx-goox-lib/src/lib/Maintenance.ts","../../../projects/ngx-goox-lib/src/lib/LoginParams.ts","../../../projects/ngx-goox-lib/src/lib/Account.ts","../../../projects/ngx-goox-lib/src/lib/AuditLog.ts","../../../projects/ngx-goox-lib/src/lib/Flight.ts","../../../projects/ngx-goox-lib/src/lib/RiskAssessment.ts","../../../projects/ngx-goox-lib/src/lib/IntKeyValue.ts","../../../projects/ngx-goox-lib/src/lib/ReFuel.ts","../../../projects/ngx-goox-lib/src/lib/Lesson.ts","../../../projects/ngx-goox-lib/src/lib/Billing.ts","../../../projects/ngx-goox-lib/src/lib/Mitigation.ts","../../../projects/ngx-goox-lib/src/lib/Permission.ts","../../../projects/ngx-goox-lib/src/lib/TOLData.ts","../../../projects/ngx-goox-lib/src/lib/PilotQualificationsRisks.ts","../../../projects/ngx-goox-lib/src/lib/DestinationRisks.ts","../../../projects/ngx-goox-lib/src/lib/Lead.ts","../../../projects/ngx-goox-lib/src/lib/TokenData.ts","../../../projects/ngx-goox-lib/src/lib/Engine.ts","../../../projects/ngx-goox-lib/src/lib/TripRisks.ts","../../../projects/ngx-goox-lib/src/lib/LeadAction.ts","../../../projects/ngx-goox-lib/src/lib/LogBookRecord.ts","../../../projects/ngx-goox-lib/src/lib/PreFlightData.ts","../../../projects/ngx-goox-lib/src/lib/DocumentRevision.ts","../../../projects/ngx-goox-lib/src/lib/LookupGroup.ts","../../../projects/ngx-goox-lib/src/lib/SystemMessage.ts","../../../projects/ngx-goox-lib/src/lib/Address.ts","../../../projects/ngx-goox-lib/src/lib/AnyKeyValue.ts","../../../projects/ngx-goox-lib/src/lib/FlightsFilter.ts","../../../projects/ngx-goox-lib/src/lib/PreFlightInfo.ts","../../../projects/ngx-goox-lib/src/lib/Magneto.ts","../../../projects/ngx-goox-lib/src/lib/OnBoard.ts","../../../projects/ngx-goox-lib/src/lib/User.ts","../../../projects/ngx-goox-lib/src/lib/StringKeyValue.ts","../../../projects/ngx-goox-lib/src/lib/Propeller.ts","../../../projects/ngx-goox-lib/src/lib/Contact.ts","../../../projects/ngx-goox-lib/src/lib/Document.ts","../../../projects/ngx-goox-lib/src/lib/Group.ts","../../../projects/ngx-goox-lib/src/lib/Lookup.ts","../../../projects/ngx-goox-lib/src/lib/Booking.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlot.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlots.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlotsSet.ts","../../../projects/ngx-goox-lib/src/lib/Credit.ts","../../../projects/ngx-goox-lib/src/lib/MessageConfirm.ts","../../../projects/ngx-goox-lib/src/lib/Syllabus.ts","../../../projects/ngx-goox-lib/src/lib/AirplanesFilter.ts","../../../projects/ngx-goox-lib/src/lib/Location.ts","../../../projects/ngx-goox-lib/src/lib/Campaign.ts","../../../projects/ngx-goox-lib/src/lib/WeatherRisks.ts","../../../projects/ngx-goox-lib/src/lib/SystemConfig.ts","../../../projects/ngx-goox-lib/src/lib/PostFlightInfo.ts","../../../projects/ngx-goox-lib/src/lib/Fuel.ts","../../../projects/ngx-goox-lib/src/lib/Certificate.ts","../../../projects/ngx-goox-lib/src/lib/CrewDutyDayRisks.ts","../../../projects/ngx-goox-lib/src/utils/BaseRestResponse.ts","../../../projects/ngx-goox-lib/src/utils/ActionResponse.ts","../../../projects/ngx-goox-lib/src/utils/Entities.ts","../../../projects/ngx-goox-lib/src/utils/EntityResponse.ts","../../../projects/ngx-goox-lib/src/utils/EntitiesResponse.ts","../../../projects/ngx-goox-lib/src/utils/rest-util.ts","../../../projects/ngx-goox-lib/src/utils/SimpleEntity.ts","../../../projects/ngx-goox-lib/src/config.ts","../../../projects/ngx-goox-lib/src/lib/CertificatesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyAuthEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MaintenancesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/PriceListEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/AirplanesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/DocumentsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/FlightsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/LeadsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/LookupsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SystemMessagesEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/UsersEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/AccountsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/FlightTicketsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/CampaignsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/GroupsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/UserEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyBookingsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyFlightsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/BookingsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/CreditsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SyllabusEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SystemConfigsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/BookingSlotsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/ContactsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/SystemEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MyCreditsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/AuditLogsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/MessageConfirmsEndPoint.ts","../../../projects/ngx-goox-lib/src/lib/Enums.ts","../../../projects/ngx-goox-lib/src/lib/services.export.ts","../../../projects/ngx-goox-lib/src/ngx-goox-lib.module.ts","../../../projects/ngx-goox-lib/src/public-api.ts","../../../projects/ngx-goox-lib/src/aya-flights-ngx-goox-lib.ts"],"sourcesContent":["\n\n\n\nexport class ColumnDef {\n \n // Column field icon \n public icon: string;\n \n // Column field name \n public name: string;\n \n // Column field type \n public type: string;\n \n // Display format hint \n public format: string;\n \n // Sort order 0: no sort, 1: sort asc, -1 sort desc \n public sort: number;\n \n // Filter operand \n public filterOp: number;\n \n // Filter by value \n public filter: number | number[] | string | string[];\n \n constructor(icon?: string, name?: string, type?: string, format?: string, sort?: number, filterOp?: number, filter?: number | number[] | string | string[]) { \n if (icon !== undefined) { this.icon = icon; }\n if (name !== undefined) { this.name = name; }\n if (type !== undefined) { this.type = type; }\n if (format !== undefined) { this.format = format; }\n if (sort !== undefined) { this.sort = sort; }\n if (filterOp !== undefined) { this.filterOp = filterOp; }\n if (filter !== undefined) { this.filter = filter; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\nexport class TimeFrame {\n \n // From Timestamp \n public from: number;\n \n // To Timestamp \n public to: number;\n \n constructor(from?: number, to?: number) { \n if (from !== undefined) { this.from = from; }\n if (to !== undefined) { this.to = to; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// TimeDataPoint model represents a generic datapoint in time\nexport class TimeDataPoint<T> {\n \n // Datapoint Timestamp \n public timestamp: number;\n \n // Generic value \n public value: T;\n \n constructor(timestamp?: number, value?: T) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\nimport { TimeDataPoint } from '.';\n\n\n\n// TimeSeries is a set of data points over time\nexport class TimeSeries<T> {\n \n // Name of the time series \n public name: string;\n \n // Range of the series (from ... to) \n public range: TimeFrame;\n \n // Series data points \n public values: TimeDataPoint<T>[];\n \n constructor(name?: string, range?: TimeFrame, values?: TimeDataPoint<T>[]) { \n if (name !== undefined) { this.name = name; }\n if (range !== undefined) { this.range = range; }\n if (values !== undefined) { this.values = values; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Base class for all entities\nexport class BaseEntity {\n \n // Unique object Id \n public id: string;\n \n // When the object was created [Epoch milliseconds Timestamp] \n public createdOn: number;\n \n // When the object was last updated [Epoch milliseconds Timestamp] \n public updatedOn: number;\n \n constructor(id?: string, createdOn?: number, updatedOn?: number) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Extended Base class for all entities\nexport class BaseEntityEx {\n \n // Unique object Id \n public id: string;\n \n // When the object was created [Epoch milliseconds Timestamp] \n public createdOn: number;\n \n // When the object was last updated [Epoch milliseconds Timestamp] \n public updatedOn: number;\n \n // Entity status flag \n public flag: number;\n \n // List of custom properties \n public props: Map<string,object>;\n \n constructor(id?: string, createdOn?: number, updatedOn?: number, flag?: number, props?: Map<string,object>) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n if (flag !== undefined) { this.flag = flag; }\n if (props !== undefined) { this.props = props; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Tuple is a generic key-value pair\nexport class Tuple<K,T> {\n \n // Generic key \n public key: K;\n \n // Generic value \n public value: T;\n \n constructor(key?: K, value?: T) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { Tuple } from '.';\n\n\n// AirplaneValidationFlag represents combination of airplane validations\nexport enum AirplaneValidationFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Valid airworthiness (isairplanevalidairworthiness_c) [1] \n AIRWORTHINESS = 1,\n \n // Valid airplane insurance (isairplanevalidinsurance_c) [2] \n INSURANCE = 2,\n \n // Valid flight manual (isairplanevalidflightmanual_c) [4] \n FLIGHT_MANUAL = 4,\n \n // Valid radio station license (isairplanevalidradiostation_c) [8] \n RADIO_STATION = 8,\n \n // Certification Of Registration (isairplanevalidcertofregis_c)[16] \n REGISTRATION_CERT = 16,\n \n // Valid first-aid kit (isairplanevalidfirstaidkit_c) [32] \n FIRST_AID_KIT = 32,\n \n // Valid fire extinguisher (isairplanevalidfireextinguis_c) [64] \n FIRE_EXTINGUISHER = 64,\n \n // Valid operation spec (isairplanevalidoperationspec_c) [128] \n OPERATION_SPEC = 128,\n \n // Valid 337 certificate for camera hole (isairplanevalid337cameraho_c) [256] \n VALID_337_CAMERA = 256,\n \n // Valid 337 certificate for exhaust (isairplanevalid337exhaust_c) [512] \n VALID_337_EXHAUST = 512,\n \n // Valid stc camera hole (isairplanevalidstccameraho_c) [1024] \n VALID_STC_CAMERA = 1024,\n \n // Valid stc certificate for exhaust (isairplanevalidstcexhaust_c) [2048] \n VALID_STC_EXHAUST = 2048,\n \n // Valid flight logbook (isairplanevalidflightlogboo_c) [4096] \n FLIGHT_LOGBOOK = 4096,\n \n // Valid air operator certificate AOC (isairplanevalidairoperatorce_c) [8192] \n AIR_OPERATOR = 8192,\n \n // Aircraft weight certificate (isairplanevalidaircraftweigh_c) [16384] \n AIRCRAFT_WEIGHT = 16384,\n \n // Valid propeller overhaul (isairplanevalidpropellerover_c) [32768] \n PROPELLER_OVERHAUL = 32768,\n \n // Single engine overhaul (isairplanevalidsingleengineo_c) [65536] \n SINGLE_ENGINE_OVERHAUL = 65536,\n \n // Left engine overhaul (isairplanevalidleftengineove_c) [131072] \n LEFT_ENGINE_OVERHAUL = 131072,\n \n // Right engine overhaul (isairplanevalidrightengineov_c) [262144] \n RIGHT_ENGINE_OVERHAUL = 262144,\n \n // Left engine propeller overhaul (isairplanevalidleftenginepro_c) [524288] \n LEFT_PROPELLER_OVERHAUL = 524288,\n \n // Right engine propeller overhaul (isairplanevalidrightenginepr_c) [1048576] \n RIGHT_PROPELLER_OVERHAUL = 1048576,\n \n // CVFR_ATS aeronautical maps (isairplanevalidcvfr_atsaeron_c) [2097152] \n CVFR_ATS = 2097152,\n \n // Weight and Balance Form (isairplanevalidweightandbaln_c) [4194304] \n WEIGHT_BALANCE_FORM = 4194304,\n \n // Airplane checklist (isairplanevalidairplanechec_c) [8388608] \n CHECK_LIST = 8388608,\n \n // Noise Certificate (isairplanevalidnoisecertifi_c) [16777216] \n NOISE_CERT = 16777216,\n \n}\n\n// Return list of AirplaneValidationFlag values and their display names\nexport function GetAirplaneValidationFlags() : Tuple<AirplaneValidationFlag, string>[] {\n\tlet result : Tuple<AirplaneValidationFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRWORTHINESS, 'AirplaneValidationFlag.AIRWORTHINESS'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.INSURANCE, 'AirplaneValidationFlag.INSURANCE'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_MANUAL, 'AirplaneValidationFlag.FLIGHT_MANUAL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RADIO_STATION, 'AirplaneValidationFlag.RADIO_STATION'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.REGISTRATION_CERT, 'AirplaneValidationFlag.REGISTRATION_CERT'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRST_AID_KIT, 'AirplaneValidationFlag.FIRST_AID_KIT'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'AirplaneValidationFlag.FIRE_EXTINGUISHER'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.OPERATION_SPEC, 'AirplaneValidationFlag.OPERATION_SPEC'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_CAMERA, 'AirplaneValidationFlag.VALID_337_CAMERA'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_EXHAUST, 'AirplaneValidationFlag.VALID_337_EXHAUST'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_CAMERA, 'AirplaneValidationFlag.VALID_STC_CAMERA'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_EXHAUST, 'AirplaneValidationFlag.VALID_STC_EXHAUST'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'AirplaneValidationFlag.FLIGHT_LOGBOOK'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIR_OPERATOR, 'AirplaneValidationFlag.AIR_OPERATOR'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'AirplaneValidationFlag.AIRCRAFT_WEIGHT'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'AirplaneValidationFlag.PROPELLER_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CVFR_ATS, 'AirplaneValidationFlag.CVFR_ATS'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'AirplaneValidationFlag.WEIGHT_BALANCE_FORM'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CHECK_LIST, 'AirplaneValidationFlag.CHECK_LIST'))\n\t\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.NOISE_CERT, 'AirplaneValidationFlag.NOISE_CERT'))\n\t\n\n return result;\n}\n\n// Return map of AirplaneValidationFlag values and their display names\nexport function MapAirplaneValidationFlags() : Map<AirplaneValidationFlag, string> {\n let result = new Map<AirplaneValidationFlag, string>();\n\n \n\tresult.set(AirplaneValidationFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AirplaneValidationFlag.AIRWORTHINESS, 'Airworthiness');\n\t\n\tresult.set(AirplaneValidationFlag.INSURANCE, 'Insurance');\n\t\n\tresult.set(AirplaneValidationFlag.FLIGHT_MANUAL, 'Flight Manual');\n\t\n\tresult.set(AirplaneValidationFlag.RADIO_STATION, 'Radio Station');\n\t\n\tresult.set(AirplaneValidationFlag.REGISTRATION_CERT, 'Registration Cert');\n\t\n\tresult.set(AirplaneValidationFlag.FIRST_AID_KIT, 'First Aid Kit');\n\t\n\tresult.set(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'Fire Extinguisher');\n\t\n\tresult.set(AirplaneValidationFlag.OPERATION_SPEC, 'Operation Spec');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_337_CAMERA, 'Valid 337 Camera');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_337_EXHAUST, 'Valid 337 Exhaust');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_STC_CAMERA, 'Valid Stc Camera');\n\t\n\tresult.set(AirplaneValidationFlag.VALID_STC_EXHAUST, 'Valid Stc Exhaust');\n\t\n\tresult.set(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'Flight Logbook');\n\t\n\tresult.set(AirplaneValidationFlag.AIR_OPERATOR, 'Air Operator');\n\t\n\tresult.set(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'Aircraft Weight');\n\t\n\tresult.set(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'Propeller Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'Single Engine Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'Left Engine Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'Right Engine Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'Left Propeller Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'Right Propeller Overhaul');\n\t\n\tresult.set(AirplaneValidationFlag.CVFR_ATS, 'Cvfr Ats');\n\t\n\tresult.set(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'Weight Balance Form');\n\t\n\tresult.set(AirplaneValidationFlag.CHECK_LIST, 'Check List');\n\t\n\tresult.set(AirplaneValidationFlag.NOISE_CERT, 'Noise Cert');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightPurposeCode represents a flight purpose: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightPurposeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Introductory Flight [1] \n INTRODUCTORY = 1,\n \n // Flight Instruction Lesson [2] \n INSTRUCTION = 2,\n \n // Airplane Rental Flight [3] \n RENTAL = 3,\n \n // Private Flight [4] \n PRIVATE = 4,\n \n // Vertical Photographic [5] \n VERTICAL_PHOTO = 5,\n \n // Diagonal Photographic [6] \n DIAGONAL_PHOTO = 6,\n \n // Round Flight [7] \n ROUND = 7,\n \n // Initial / Recurrent CAA Test [8] \n CAA_TEST = 8,\n \n // Transfer Flight (to transfer airplane) [9] \n TRANSFER = 9,\n \n // Commercial air taxi to transfer passengers [10] \n AIR_TAXI = 10,\n \n // Engine Running [11] \n ENGINE_RUNNING = 11,\n \n // Other purpose (elaborate on next field) [12] \n OTHER = 12,\n \n}\n\n// Return list of FlightPurposeCode values and their display names\nexport function GetFlightPurposeCodes() : Tuple<FlightPurposeCode, string>[] {\n\tlet result : Tuple<FlightPurposeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INTRODUCTORY, 'FlightPurposeCode.INTRODUCTORY'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INSTRUCTION, 'FlightPurposeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.RENTAL, 'FlightPurposeCode.RENTAL'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.PRIVATE, 'FlightPurposeCode.PRIVATE'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.VERTICAL_PHOTO, 'FlightPurposeCode.VERTICAL_PHOTO'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.DIAGONAL_PHOTO, 'FlightPurposeCode.DIAGONAL_PHOTO'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ROUND, 'FlightPurposeCode.ROUND'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.CAA_TEST, 'FlightPurposeCode.CAA_TEST'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.TRANSFER, 'FlightPurposeCode.TRANSFER'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.AIR_TAXI, 'FlightPurposeCode.AIR_TAXI'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ENGINE_RUNNING, 'FlightPurposeCode.ENGINE_RUNNING'))\n\t\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.OTHER, 'FlightPurposeCode.OTHER'))\n\t\n\n return result;\n}\n\n// Return map of FlightPurposeCode values and their display names\nexport function MapFlightPurposeCodes() : Map<FlightPurposeCode, string> {\n let result = new Map<FlightPurposeCode, string>();\n\n \n\tresult.set(FlightPurposeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightPurposeCode.INTRODUCTORY, 'Introductory');\n\t\n\tresult.set(FlightPurposeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(FlightPurposeCode.RENTAL, 'Rental');\n\t\n\tresult.set(FlightPurposeCode.PRIVATE, 'Private');\n\t\n\tresult.set(FlightPurposeCode.VERTICAL_PHOTO, 'Vertical Photo');\n\t\n\tresult.set(FlightPurposeCode.DIAGONAL_PHOTO, 'Diagonal Photo');\n\t\n\tresult.set(FlightPurposeCode.ROUND, 'Round');\n\t\n\tresult.set(FlightPurposeCode.CAA_TEST, 'Caa Test');\n\t\n\tresult.set(FlightPurposeCode.TRANSFER, 'Transfer');\n\t\n\tresult.set(FlightPurposeCode.AIR_TAXI, 'Air Taxi');\n\t\n\tresult.set(FlightPurposeCode.ENGINE_RUNNING, 'Engine Running');\n\t\n\tresult.set(FlightPurposeCode.OTHER, 'Other');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AirplaneStatusCode represents the airplane status: ACTIVE | INACTIVE | MAINTENANCE ...\nexport enum AirplaneStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Active airplane [1] \n ACTIVE = 1,\n \n // Airplane inactive due to maintenance [2] \n MAINTENANCE = 2,\n \n // Suspended airplane (do not show since it is no longer operated by the the company) [3] \n SUSPENDED = 3,\n \n}\n\n// Return list of AirplaneStatusCode values and their display names\nexport function GetAirplaneStatusCodes() : Tuple<AirplaneStatusCode, string>[] {\n\tlet result : Tuple<AirplaneStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.ACTIVE, 'AirplaneStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.MAINTENANCE, 'AirplaneStatusCode.MAINTENANCE'))\n\t\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.SUSPENDED, 'AirplaneStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of AirplaneStatusCode values and their display names\nexport function MapAirplaneStatusCodes() : Map<AirplaneStatusCode, string> {\n let result = new Map<AirplaneStatusCode, string>();\n\n \n\tresult.set(AirplaneStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AirplaneStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(AirplaneStatusCode.MAINTENANCE, 'Maintenance');\n\t\n\tresult.set(AirplaneStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignTypeCode represents the campaign type: WEB | EMAIL | TELESALES\nexport enum CampaignTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Web [1] \n WEB = 1,\n \n // Mail [2] \n EMAIL = 2,\n \n // Telephone Sales [3] \n TELESALES = 3,\n \n}\n\n// Return list of CampaignTypeCode values and their display names\nexport function GetCampaignTypeCodes() : Tuple<CampaignTypeCode, string>[] {\n\tlet result : Tuple<CampaignTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.WEB, 'CampaignTypeCode.WEB'))\n\t\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.EMAIL, 'CampaignTypeCode.EMAIL'))\n\t\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.TELESALES, 'CampaignTypeCode.TELESALES'))\n\t\n\n return result;\n}\n\n// Return map of CampaignTypeCode values and their display names\nexport function MapCampaignTypeCodes() : Map<CampaignTypeCode, string> {\n let result = new Map<CampaignTypeCode, string>();\n\n \n\tresult.set(CampaignTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(CampaignTypeCode.WEB, 'Web');\n\t\n\tresult.set(CampaignTypeCode.EMAIL, 'Email');\n\t\n\tresult.set(CampaignTypeCode.TELESALES, 'Telesales');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LicenseTypeFlag represents the combined types of licenses\nexport enum LicenseTypeFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pilot [1] \n PILOT = 1,\n \n // Student [3] \n STUDENT = 2,\n \n // PPL [4] \n PPL = 4,\n \n // CPL [8] \n CPL = 8,\n \n // CFI [16] \n CFI = 16,\n \n // IFR [32] \n IFR = 32,\n \n // Cessna 172P [64] \n C172P = 64,\n \n // Cessna 172XP [128] \n C172XP = 128,\n \n // Cessna 207 [256] \n C207 = 256,\n \n // PA 31 [512] \n PA31 = 512,\n \n}\n\n// Return list of LicenseTypeFlag values and their display names\nexport function GetLicenseTypeFlags() : Tuple<LicenseTypeFlag, string>[] {\n\tlet result : Tuple<LicenseTypeFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.PILOT, 'LicenseTypeFlag.PILOT'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.STUDENT, 'LicenseTypeFlag.STUDENT'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.PPL, 'LicenseTypeFlag.PPL'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.CPL, 'LicenseTypeFlag.CPL'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.CFI, 'LicenseTypeFlag.CFI'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.IFR, 'LicenseTypeFlag.IFR'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.C172P, 'LicenseTypeFlag.C172P'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.C172XP, 'LicenseTypeFlag.C172XP'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.C207, 'LicenseTypeFlag.C207'))\n\t\n\tresult.push(new Tuple<LicenseTypeFlag, string>(LicenseTypeFlag.PA31, 'LicenseTypeFlag.PA31'))\n\t\n\n return result;\n}\n\n// Return map of LicenseTypeFlag values and their display names\nexport function MapLicenseTypeFlags() : Map<LicenseTypeFlag, string> {\n let result = new Map<LicenseTypeFlag, string>();\n\n \n\tresult.set(LicenseTypeFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LicenseTypeFlag.PILOT, 'Pilot');\n\t\n\tresult.set(LicenseTypeFlag.STUDENT, 'Student');\n\t\n\tresult.set(LicenseTypeFlag.PPL, 'Ppl');\n\t\n\tresult.set(LicenseTypeFlag.CPL, 'Cpl');\n\t\n\tresult.set(LicenseTypeFlag.CFI, 'Cfi');\n\t\n\tresult.set(LicenseTypeFlag.IFR, 'Ifr');\n\t\n\tresult.set(LicenseTypeFlag.C172P, 'C172p');\n\t\n\tresult.set(LicenseTypeFlag.C172XP, 'C172xp');\n\t\n\tresult.set(LicenseTypeFlag.C207, 'C207');\n\t\n\tresult.set(LicenseTypeFlag.PA31, 'Pa31');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MaintenanceActionCode represents a maintenance action\nexport enum MaintenanceActionCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // No action required [1] \n NONE = 1,\n \n // Inspection action [2] \n INSPECTION = 2,\n \n // Overhaul action [3] \n OVERHAUL = 3,\n \n // Reissue certificate [4] \n REISSUE = 4,\n \n // Replace component [5] \n REPLACEMENT = 5,\n \n // Weight action [6] \n WEIGHT = 6,\n \n}\n\n// Return list of MaintenanceActionCode values and their display names\nexport function GetMaintenanceActionCodes() : Tuple<MaintenanceActionCode, string>[] {\n\tlet result : Tuple<MaintenanceActionCode, string>[] = [];\n\n \n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.NONE, 'MaintenanceActionCode.NONE'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.INSPECTION, 'MaintenanceActionCode.INSPECTION'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.OVERHAUL, 'MaintenanceActionCode.OVERHAUL'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REISSUE, 'MaintenanceActionCode.REISSUE'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REPLACEMENT, 'MaintenanceActionCode.REPLACEMENT'))\n\t\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.WEIGHT, 'MaintenanceActionCode.WEIGHT'))\n\t\n\n return result;\n}\n\n// Return map of MaintenanceActionCode values and their display names\nexport function MapMaintenanceActionCodes() : Map<MaintenanceActionCode, string> {\n let result = new Map<MaintenanceActionCode, string>();\n\n \n\tresult.set(MaintenanceActionCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(MaintenanceActionCode.NONE, 'None');\n\t\n\tresult.set(MaintenanceActionCode.INSPECTION, 'Inspection');\n\t\n\tresult.set(MaintenanceActionCode.OVERHAUL, 'Overhaul');\n\t\n\tresult.set(MaintenanceActionCode.REISSUE, 'Reissue');\n\t\n\tresult.set(MaintenanceActionCode.REPLACEMENT, 'Replacement');\n\t\n\tresult.set(MaintenanceActionCode.WEIGHT, 'Weight');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ModuleCode represents a module in the system\nexport enum ModuleCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Audit Log [1] \n AUDIT_LOG = 1,\n \n // Users [2] \n USERS = 2,\n \n // Groups [3] \n GROUPS = 3,\n \n // Accounts [4] \n ACCOUNTS = 4,\n \n // Contacts [5] \n CONTACTS = 5,\n \n // Leads [6] \n LEADS = 6,\n \n // Campaigns [7] \n CAMPAIGNS = 7,\n \n // Certificates [8] \n CERTIFICATES = 8,\n \n // Messages (for Read & Confirm) [9] \n MESSAGES = 9,\n \n // Flight log [10] \n FLIGHTS = 10,\n \n // Flight tickets [11] \n FLIGHT_TICKETS = 11,\n \n // Airplanes [12] \n AIRPLANES = 12,\n \n // Airworthiness (maintenance) [13] \n AIRWORTHINESS = 13,\n \n}\n\n// Return list of ModuleCode values and their display names\nexport function GetModuleCodes() : Tuple<ModuleCode, string>[] {\n\tlet result : Tuple<ModuleCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AUDIT_LOG, 'ModuleCode.AUDIT_LOG'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.USERS, 'ModuleCode.USERS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.GROUPS, 'ModuleCode.GROUPS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.ACCOUNTS, 'ModuleCode.ACCOUNTS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CONTACTS, 'ModuleCode.CONTACTS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.LEADS, 'ModuleCode.LEADS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CAMPAIGNS, 'ModuleCode.CAMPAIGNS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CERTIFICATES, 'ModuleCode.CERTIFICATES'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.MESSAGES, 'ModuleCode.MESSAGES'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHTS, 'ModuleCode.FLIGHTS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHT_TICKETS, 'ModuleCode.FLIGHT_TICKETS'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRPLANES, 'ModuleCode.AIRPLANES'))\n\t\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRWORTHINESS, 'ModuleCode.AIRWORTHINESS'))\n\t\n\n return result;\n}\n\n// Return map of ModuleCode values and their display names\nexport function MapModuleCodes() : Map<ModuleCode, string> {\n let result = new Map<ModuleCode, string>();\n\n \n\tresult.set(ModuleCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ModuleCode.AUDIT_LOG, 'Audit Log');\n\t\n\tresult.set(ModuleCode.USERS, 'Users');\n\t\n\tresult.set(ModuleCode.GROUPS, 'Groups');\n\t\n\tresult.set(ModuleCode.ACCOUNTS, 'Accounts');\n\t\n\tresult.set(ModuleCode.CONTACTS, 'Contacts');\n\t\n\tresult.set(ModuleCode.LEADS, 'Leads');\n\t\n\tresult.set(ModuleCode.CAMPAIGNS, 'Campaigns');\n\t\n\tresult.set(ModuleCode.CERTIFICATES, 'Certificates');\n\t\n\tresult.set(ModuleCode.MESSAGES, 'Messages');\n\t\n\tresult.set(ModuleCode.FLIGHTS, 'Flights');\n\t\n\tresult.set(ModuleCode.FLIGHT_TICKETS, 'Flight Tickets');\n\t\n\tresult.set(ModuleCode.AIRPLANES, 'Airplanes');\n\t\n\tresult.set(ModuleCode.AIRWORTHINESS, 'Airworthiness');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ValidationFlag represents combination of validations\nexport enum ValidationFlag {\n \n // Other [0] \n UNDEFINED = 0,\n \n // Valid medical certificate [1] \n MEDICAL_CERT = 1,\n \n // Valid pilot license [2] \n PILOT_LICENSE = 2,\n \n // Single Engine Certificate [4] \n SINGLE_ENG_CERT = 4,\n \n // Dual Engine Certificate [8] \n DUAL_ENG_CERT = 8,\n \n // 666 Instruments Certificate [16] \n INST_666_CERT = 16,\n \n // REC Instruments Certificate [32] \n INST_REC_CERT = 32,\n \n // Day time fly [64] \n DAYTIME_FLY = 64,\n \n // Nighttime fly [128] \n NIGHTTIME_FLY = 128,\n \n // Night CVFR [256] \n NIGHT_CVFR_CUR = 256,\n \n // Route exam [512] \n ROUTE_EXAM = 512,\n \n // DI Certificate [1024] \n DI_CERT = 1024,\n \n // International [2048] \n INTERNATIONAL = 2048,\n \n // English Proficiency [4096] \n ENGLISH_PROF = 4096,\n \n // Instructor license [8192] \n INSTRUCTOR_LICENSE = 8192,\n \n // Company check ? [16384] \n COMPANY_CHECK = 16384,\n \n // Company Examiner ? [32768] \n COMPANY_EXAMIN = 32768,\n \n // Commercial 172p [65536] \n COMMERCIAL_172P = 65536,\n \n // Commercial 172xp [131072] \n COMMERCIAL_172XP = 131072,\n \n // Commercial 172xp [262144] \n COMMERCIAL_207 = 262144,\n \n}\n\n// Return list of ValidationFlag values and their display names\nexport function GetValidationFlags() : Tuple<ValidationFlag, string>[] {\n\tlet result : Tuple<ValidationFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.MEDICAL_CERT, 'ValidationFlag.MEDICAL_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.PILOT_LICENSE, 'ValidationFlag.PILOT_LICENSE'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.SINGLE_ENG_CERT, 'ValidationFlag.SINGLE_ENG_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DUAL_ENG_CERT, 'ValidationFlag.DUAL_ENG_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_666_CERT, 'ValidationFlag.INST_666_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_REC_CERT, 'ValidationFlag.INST_REC_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DAYTIME_FLY, 'ValidationFlag.DAYTIME_FLY'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.NIGHTTIME_FLY, 'ValidationFlag.NIGHTTIME_FLY'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.NIGHT_CVFR_CUR, 'ValidationFlag.NIGHT_CVFR_CUR'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ROUTE_EXAM, 'ValidationFlag.ROUTE_EXAM'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DI_CERT, 'ValidationFlag.DI_CERT'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INTERNATIONAL, 'ValidationFlag.INTERNATIONAL'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ENGLISH_PROF, 'ValidationFlag.ENGLISH_PROF'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INSTRUCTOR_LICENSE, 'ValidationFlag.INSTRUCTOR_LICENSE'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMPANY_CHECK, 'ValidationFlag.COMPANY_CHECK'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMPANY_EXAMIN, 'ValidationFlag.COMPANY_EXAMIN'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMMERCIAL_172P, 'ValidationFlag.COMMERCIAL_172P'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMMERCIAL_172XP, 'ValidationFlag.COMMERCIAL_172XP'))\n\t\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMMERCIAL_207, 'ValidationFlag.COMMERCIAL_207'))\n\t\n\n return result;\n}\n\n// Return map of ValidationFlag values and their display names\nexport function MapValidationFlags() : Map<ValidationFlag, string> {\n let result = new Map<ValidationFlag, string>();\n\n \n\tresult.set(ValidationFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ValidationFlag.MEDICAL_CERT, 'Medical Cert');\n\t\n\tresult.set(ValidationFlag.PILOT_LICENSE, 'Pilot License');\n\t\n\tresult.set(ValidationFlag.SINGLE_ENG_CERT, 'Single Eng Cert');\n\t\n\tresult.set(ValidationFlag.DUAL_ENG_CERT, 'Dual Eng Cert');\n\t\n\tresult.set(ValidationFlag.INST_666_CERT, 'Inst 666 Cert');\n\t\n\tresult.set(ValidationFlag.INST_REC_CERT, 'Inst Rec Cert');\n\t\n\tresult.set(ValidationFlag.DAYTIME_FLY, 'Daytime Fly');\n\t\n\tresult.set(ValidationFlag.NIGHTTIME_FLY, 'Nighttime Fly');\n\t\n\tresult.set(ValidationFlag.NIGHT_CVFR_CUR, 'Night Cvfr Cur');\n\t\n\tresult.set(ValidationFlag.ROUTE_EXAM, 'Route Exam');\n\t\n\tresult.set(ValidationFlag.DI_CERT, 'Di Cert');\n\t\n\tresult.set(ValidationFlag.INTERNATIONAL, 'International');\n\t\n\tresult.set(ValidationFlag.ENGLISH_PROF, 'English Prof');\n\t\n\tresult.set(ValidationFlag.INSTRUCTOR_LICENSE, 'Instructor License');\n\t\n\tresult.set(ValidationFlag.COMPANY_CHECK, 'Company Check');\n\t\n\tresult.set(ValidationFlag.COMPANY_EXAMIN, 'Company Examin');\n\t\n\tresult.set(ValidationFlag.COMMERCIAL_172P, 'Commercial 172p');\n\t\n\tresult.set(ValidationFlag.COMMERCIAL_172XP, 'Commercial 172xp');\n\t\n\tresult.set(ValidationFlag.COMMERCIAL_207, 'Commercial 207');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AccountStatusCode represents the account status: ACTIVE | INACTIVE | BLOCKED ...\nexport enum AccountStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Active account in the system [1] \n ACTIVE = 1,\n \n // Inactive account in the system [2] \n INACTIVE = 2,\n \n // Blocked account [3] \n BLOCKED = 3,\n \n // Suspended account (about to be deleted) [4] \n SUSPENDED = 4,\n \n}\n\n// Return list of AccountStatusCode values and their display names\nexport function GetAccountStatusCodes() : Tuple<AccountStatusCode, string>[] {\n\tlet result : Tuple<AccountStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.ACTIVE, 'AccountStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.INACTIVE, 'AccountStatusCode.INACTIVE'))\n\t\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.BLOCKED, 'AccountStatusCode.BLOCKED'))\n\t\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.SUSPENDED, 'AccountStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of AccountStatusCode values and their display names\nexport function MapAccountStatusCodes() : Map<AccountStatusCode, string> {\n let result = new Map<AccountStatusCode, string>();\n\n \n\tresult.set(AccountStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AccountStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(AccountStatusCode.INACTIVE, 'Inactive');\n\t\n\tresult.set(AccountStatusCode.BLOCKED, 'Blocked');\n\t\n\tresult.set(AccountStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ConfirmStatusCode represents the contact confirmation status: PENDING | APPROVED | REJECTED ...\nexport enum ConfirmStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending not read yet [1] \n PENDING = 1,\n \n // Approved by the contact [2] \n APPROVED = 2,\n \n // Rejected by the contact [3] \n REJECTED = 3,\n \n}\n\n// Return list of ConfirmStatusCode values and their display names\nexport function GetConfirmStatusCodes() : Tuple<ConfirmStatusCode, string>[] {\n\tlet result : Tuple<ConfirmStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.PENDING, 'ConfirmStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.APPROVED, 'ConfirmStatusCode.APPROVED'))\n\t\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.REJECTED, 'ConfirmStatusCode.REJECTED'))\n\t\n\n return result;\n}\n\n// Return map of ConfirmStatusCode values and their display names\nexport function MapConfirmStatusCodes() : Map<ConfirmStatusCode, string> {\n let result = new Map<ConfirmStatusCode, string>();\n\n \n\tresult.set(ConfirmStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ConfirmStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(ConfirmStatusCode.APPROVED, 'Approved');\n\t\n\tresult.set(ConfirmStatusCode.REJECTED, 'Rejected');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ErrorCode represents a general error\nexport enum ErrorCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // General server error [-1] \n GENERAL_ERROR = -1,\n \n // Unauthenticated [-2] \n UNAUTHENTICATED = -2,\n \n // Unauthorized [-3] \n UNAUTHORIZED = -3,\n \n // Not found [-2] \n NOT_FOUND = -10,\n \n // The form is intended only for pilots on this flight [-1001] \n FLIGHT_PILOTS_ONLY = -1001,\n \n // The form is intended only for pilot in command of this flight [-1002] \n FLIGHT_PIC_ONLY = -1002,\n \n // Pre-flight form was already reported [-1010] \n PREFLIGHT_ALREADY_REPORTED = -1010,\n \n // Post-flight form was already reported [-1011] \n POSTFLIGHT_ALREADY_REPORTED = -1011,\n \n}\n\n// Return list of ErrorCode values and their display names\nexport function GetErrorCodes() : Tuple<ErrorCode, string>[] {\n\tlet result : Tuple<ErrorCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.GENERAL_ERROR, 'ErrorCode.GENERAL_ERROR'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHENTICATED, 'ErrorCode.UNAUTHENTICATED'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHORIZED, 'ErrorCode.UNAUTHORIZED'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.NOT_FOUND, 'ErrorCode.NOT_FOUND'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PILOTS_ONLY, 'ErrorCode.FLIGHT_PILOTS_ONLY'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PIC_ONLY, 'ErrorCode.FLIGHT_PIC_ONLY'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'ErrorCode.PREFLIGHT_ALREADY_REPORTED'))\n\t\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'ErrorCode.POSTFLIGHT_ALREADY_REPORTED'))\n\t\n\n return result;\n}\n\n// Return map of ErrorCode values and their display names\nexport function MapErrorCodes() : Map<ErrorCode, string> {\n let result = new Map<ErrorCode, string>();\n\n \n\tresult.set(ErrorCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ErrorCode.GENERAL_ERROR, 'General Error');\n\t\n\tresult.set(ErrorCode.UNAUTHENTICATED, 'Unauthenticated');\n\t\n\tresult.set(ErrorCode.UNAUTHORIZED, 'Unauthorized');\n\t\n\tresult.set(ErrorCode.NOT_FOUND, 'Not Found');\n\t\n\tresult.set(ErrorCode.FLIGHT_PILOTS_ONLY, 'Flight Pilots Only');\n\t\n\tresult.set(ErrorCode.FLIGHT_PIC_ONLY, 'Flight Pic Only');\n\t\n\tresult.set(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'Preflight Already Reported');\n\t\n\tresult.set(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'Postflight Already Reported');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightClassCode represents a flight Class: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightClassCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Private Flight [32] \n PRIVATE = 32,\n \n // Commercial Flight [64] \n COMMERCIAL = 64,\n \n // Introductory Flight [128] \n INTRODUCTORY = 128,\n \n // Examination Flight [256] \n EXAM = 256,\n \n // Instruction Flight [512] \n INSTRUCTION = 512,\n \n // Maintenance[1024] \n MAINTENANCE = 1024,\n \n // Other Class (elaborate on next field) [2048] \n OTHER = 2048,\n \n}\n\n// Return list of FlightClassCode values and their display names\nexport function GetFlightClassCodes() : Tuple<FlightClassCode, string>[] {\n\tlet result : Tuple<FlightClassCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.PRIVATE, 'FlightClassCode.PRIVATE'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.COMMERCIAL, 'FlightClassCode.COMMERCIAL'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INTRODUCTORY, 'FlightClassCode.INTRODUCTORY'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.EXAM, 'FlightClassCode.EXAM'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INSTRUCTION, 'FlightClassCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.MAINTENANCE, 'FlightClassCode.MAINTENANCE'))\n\t\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.OTHER, 'FlightClassCode.OTHER'))\n\t\n\n return result;\n}\n\n// Return map of FlightClassCode values and their display names\nexport function MapFlightClassCodes() : Map<FlightClassCode, string> {\n let result = new Map<FlightClassCode, string>();\n\n \n\tresult.set(FlightClassCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightClassCode.PRIVATE, 'Private');\n\t\n\tresult.set(FlightClassCode.COMMERCIAL, 'Commercial');\n\t\n\tresult.set(FlightClassCode.INTRODUCTORY, 'Introductory');\n\t\n\tresult.set(FlightClassCode.EXAM, 'Exam');\n\t\n\tresult.set(FlightClassCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(FlightClassCode.MAINTENANCE, 'Maintenance');\n\t\n\tresult.set(FlightClassCode.OTHER, 'Other');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStatusCode represents a flight status can be changed by the operator: ...\nexport enum FlightStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Registered flight but not started (launched) [1] \n REGISTERED = 1,\n \n // Active (after pre-flight form) [2] \n ACTIVE = 2,\n \n // Completed (Done - after post-flight form) [3] \n COMPLETED = 3,\n \n // Cancelled by Aya [4] \n CANCELLED = 4,\n \n // Aborted - cancelled by client [5] \n ABORTED = 5,\n \n // Pending deletion [6] \n DELETE = 6,\n \n}\n\n// Return list of FlightStatusCode values and their display names\nexport function GetFlightStatusCodes() : Tuple<FlightStatusCode, string>[] {\n\tlet result : Tuple<FlightStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.REGISTERED, 'FlightStatusCode.REGISTERED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ACTIVE, 'FlightStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.COMPLETED, 'FlightStatusCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.CANCELLED, 'FlightStatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ABORTED, 'FlightStatusCode.ABORTED'))\n\t\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.DELETE, 'FlightStatusCode.DELETE'))\n\t\n\n return result;\n}\n\n// Return map of FlightStatusCode values and their display names\nexport function MapFlightStatusCodes() : Map<FlightStatusCode, string> {\n let result = new Map<FlightStatusCode, string>();\n\n \n\tresult.set(FlightStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightStatusCode.REGISTERED, 'Registered');\n\t\n\tresult.set(FlightStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(FlightStatusCode.COMPLETED, 'Completed');\n\t\n\tresult.set(FlightStatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(FlightStatusCode.ABORTED, 'Aborted');\n\t\n\tresult.set(FlightStatusCode.DELETE, 'Delete');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightTypeCode represents a flight type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // General Purpose Flight [1] \n GENERAL = 1,\n \n // Other Flight [2] \n OTHER = 2,\n \n // Private Flight [3] \n PRIVATE = 3,\n \n // Private Flight with IFR [4] \n PRIVATE_IFR = 4,\n \n // Commercial Flight [5] \n COMMERCIAL = 5,\n \n // Commercial Flight with IFR [6] \n COMMERCIAL_IFR = 6,\n \n // Instruction Flight [7] \n INSTRUCTION = 7,\n \n // Instruction Flight with CVFR [8] \n INSTRUCTION_CVFR = 8,\n \n // Instruction Flight with IFR [9] \n INSTRUCTION_IFR = 9,\n \n // Instruction Flight with Navigation [10] \n INSTRUCTION_NAV = 10,\n \n // Instruction Night Flight [11] \n INSTRUCTION_NIGHT = 11,\n \n}\n\n// Return list of FlightTypeCode values and their display names\nexport function GetFlightTypeCodes() : Tuple<FlightTypeCode, string>[] {\n\tlet result : Tuple<FlightTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.GENERAL, 'FlightTypeCode.GENERAL'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.OTHER, 'FlightTypeCode.OTHER'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.PRIVATE, 'FlightTypeCode.PRIVATE'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.PRIVATE_IFR, 'FlightTypeCode.PRIVATE_IFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.COMMERCIAL, 'FlightTypeCode.COMMERCIAL'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.COMMERCIAL_IFR, 'FlightTypeCode.COMMERCIAL_IFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION, 'FlightTypeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_CVFR, 'FlightTypeCode.INSTRUCTION_CVFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_IFR, 'FlightTypeCode.INSTRUCTION_IFR'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_NAV, 'FlightTypeCode.INSTRUCTION_NAV'))\n\t\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.INSTRUCTION_NIGHT, 'FlightTypeCode.INSTRUCTION_NIGHT'))\n\t\n\n return result;\n}\n\n// Return map of FlightTypeCode values and their display names\nexport function MapFlightTypeCodes() : Map<FlightTypeCode, string> {\n let result = new Map<FlightTypeCode, string>();\n\n \n\tresult.set(FlightTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightTypeCode.GENERAL, 'General');\n\t\n\tresult.set(FlightTypeCode.OTHER, 'Other');\n\t\n\tresult.set(FlightTypeCode.PRIVATE, 'Private');\n\t\n\tresult.set(FlightTypeCode.PRIVATE_IFR, 'Private Ifr');\n\t\n\tresult.set(FlightTypeCode.COMMERCIAL, 'Commercial');\n\t\n\tresult.set(FlightTypeCode.COMMERCIAL_IFR, 'Commercial Ifr');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_CVFR, 'Instruction Cvfr');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_NAV, 'Instruction Nav');\n\t\n\tresult.set(FlightTypeCode.INSTRUCTION_NIGHT, 'Instruction Night');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PermissionFlag represents combination of permissions: READ | CREATE | UPDATE | DELETE | MANAGE\nexport enum PermissionFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Read [1] \n READ = 1,\n \n // Create [2] \n CREATE = 2,\n \n // Update [4] \n UPDATE = 4,\n \n // Delete [8] \n DELETE = 8,\n \n // Manage [16] \n MANAGE = 16,\n \n // All permissions combined \n ALL = 31,\n \n}\n\n// Return list of PermissionFlag values and their display names\nexport function GetPermissionFlags() : Tuple<PermissionFlag, string>[] {\n\tlet result : Tuple<PermissionFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.READ, 'PermissionFlag.READ'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.CREATE, 'PermissionFlag.CREATE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.UPDATE, 'PermissionFlag.UPDATE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.DELETE, 'PermissionFlag.DELETE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.MANAGE, 'PermissionFlag.MANAGE'))\n\t\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.ALL, 'PermissionFlag.ALL'))\n\t\n\n return result;\n}\n\n// Return map of PermissionFlag values and their display names\nexport function MapPermissionFlags() : Map<PermissionFlag, string> {\n let result = new Map<PermissionFlag, string>();\n\n \n\tresult.set(PermissionFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(PermissionFlag.READ, 'Read');\n\t\n\tresult.set(PermissionFlag.CREATE, 'Create');\n\t\n\tresult.set(PermissionFlag.UPDATE, 'Update');\n\t\n\tresult.set(PermissionFlag.DELETE, 'Delete');\n\t\n\tresult.set(PermissionFlag.MANAGE, 'Manage');\n\t\n\tresult.set(PermissionFlag.ALL, 'All');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserStatusCode represents the user status: PENDING | ACTIVE | BLOCKED ...\nexport enum UserStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // User is registered and pending verification [1] \n PENDING = 1,\n \n // Active user in the system [2] \n ACTIVE = 2,\n \n // Blocked user (only account system can unblock the user) [3] \n BLOCKED = 3,\n \n // Suspended user (about to be deleted) [4] \n SUSPENDED = 4,\n \n}\n\n// Return list of UserStatusCode values and their display names\nexport function GetUserStatusCodes() : Tuple<UserStatusCode, string>[] {\n\tlet result : Tuple<UserStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.PENDING, 'UserStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.ACTIVE, 'UserStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.BLOCKED, 'UserStatusCode.BLOCKED'))\n\t\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.SUSPENDED, 'UserStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of UserStatusCode values and their display names\nexport function MapUserStatusCodes() : Map<UserStatusCode, string> {\n let result = new Map<UserStatusCode, string>();\n\n \n\tresult.set(UserStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(UserStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(UserStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(UserStatusCode.BLOCKED, 'Blocked');\n\t\n\tresult.set(UserStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBSourceFlag represents the ADSB source types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBSourceFlag {\n \n // ADS-B [0] \n ADSB = 0,\n \n // ASTERIX [1] \n ASTERIX = 1,\n \n // MLAT [2] \n MLAT = 2,\n \n // FLARM [3] \n FLARM = 3,\n \n}\n\n// Return list of ADSBSourceFlag values and their display names\nexport function GetADSBSourceFlags() : Tuple<ADSBSourceFlag, string>[] {\n\tlet result : Tuple<ADSBSourceFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ADSB, 'ADSBSourceFlag.ADSB'))\n\t\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ASTERIX, 'ADSBSourceFlag.ASTERIX'))\n\t\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.MLAT, 'ADSBSourceFlag.MLAT'))\n\t\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.FLARM, 'ADSBSourceFlag.FLARM'))\n\t\n\n return result;\n}\n\n// Return map of ADSBSourceFlag values and their display names\nexport function MapADSBSourceFlags() : Map<ADSBSourceFlag, string> {\n let result = new Map<ADSBSourceFlag, string>();\n\n \n\tresult.set(ADSBSourceFlag.ADSB, 'Adsb');\n\t\n\tresult.set(ADSBSourceFlag.ASTERIX, 'Asterix');\n\t\n\tresult.set(ADSBSourceFlag.MLAT, 'Mlat');\n\t\n\tresult.set(ADSBSourceFlag.FLARM, 'Flarm');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingStatusCode represents the booking status: PENDING | APPROVED | CANCELLED | REJECTED | OVERDUE ...\nexport enum BookingStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending booking (requested but not approved) [1] \n PENDING = 1,\n \n // Booking request approved [2] \n APPROVED = 2,\n \n // Booking rejected by the staff [3] \n REJECTED = 3,\n \n // Booking confirmed by by the client [4] \n CONFIRMED = 4,\n \n // Booking cancelled by by the client [5] \n CANCELLED = 5,\n \n // Booking fulfilled and flight was launched by the staff [6] \n FLIGHT_LAUNCHED = 6,\n \n // Booking cancelled by the client [7] \n FLIGHT_CANCELLED = 7,\n \n // Booking completed - flight was launched [8] \n FLIGHT_COMPLETED = 8,\n \n // Flight was aborted by client [9] \n FLIGHT_ABORTED = 9,\n \n}\n\n// Return list of BookingStatusCode values and their display names\nexport function GetBookingStatusCodes() : Tuple<BookingStatusCode, string>[] {\n\tlet result : Tuple<BookingStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.PENDING, 'BookingStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.APPROVED, 'BookingStatusCode.APPROVED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.REJECTED, 'BookingStatusCode.REJECTED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CONFIRMED, 'BookingStatusCode.CONFIRMED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CANCELLED, 'BookingStatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_LAUNCHED, 'BookingStatusCode.FLIGHT_LAUNCHED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_CANCELLED, 'BookingStatusCode.FLIGHT_CANCELLED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_COMPLETED, 'BookingStatusCode.FLIGHT_COMPLETED'))\n\t\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_ABORTED, 'BookingStatusCode.FLIGHT_ABORTED'))\n\t\n\n return result;\n}\n\n// Return map of BookingStatusCode values and their display names\nexport function MapBookingStatusCodes() : Map<BookingStatusCode, string> {\n let result = new Map<BookingStatusCode, string>();\n\n \n\tresult.set(BookingStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(BookingStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(BookingStatusCode.APPROVED, 'Approved');\n\t\n\tresult.set(BookingStatusCode.REJECTED, 'Rejected');\n\t\n\tresult.set(BookingStatusCode.CONFIRMED, 'Confirmed');\n\t\n\tresult.set(BookingStatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_LAUNCHED, 'Flight Launched');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_CANCELLED, 'Flight Cancelled');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_COMPLETED, 'Flight Completed');\n\t\n\tresult.set(BookingStatusCode.FLIGHT_ABORTED, 'Flight Aborted');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightCategoryCode represents a more specific flight class\nexport enum FlightCategoryCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // ----------------------------- COMMERCIAL ------------------------------------------------------------------------ Commercial Areal Photography [65] \n COMMERCIAL_PHOTO = 65,\n \n // Commercial TAXI Flight [66] \n COMMERCIAL_TAXI = 66,\n \n // Commercial איקר צןדדןםמ flight [67] \n COMMERCIAL_OTHER = 67,\n \n // ----------------------------- EXAM ------------------------------------------------------------------------------ Annual Proficiency Exam [257] \n EXAM_ANN_PROFICIENCY = 257,\n \n // Annual IFR Exam [258] \n EXAM_ANN_IFR = 258,\n \n // CAA PPL Exam [259] \n EXAM_CAA_PPL = 259,\n \n // CAA CPL Exam [260] \n EXAM_CAA_CPL = 260,\n \n // CAA CFI Exam [261] \n EXAM_CAA_CFI = 261,\n \n // CAA CFI Exam [262] \n EXAM_CAA_IFR = 262,\n \n // CAA CONVERSION Exam [263] \n EXAM_CAA_CONVERSION = 263,\n \n // PPL Instruction plan [513] \n INSTRUCTION_PPL = 513,\n \n // CPL Instruction plan [514] \n INSTRUCTION_CPL = 514,\n \n // CFI Instruction plan [515] \n INSTRUCTION_CFI = 515,\n \n // IFR Instruction plan [516] \n INSTRUCTION_IFR = 516,\n \n // Ultralight Conversion plan [517] \n INSTRUCTION_UL_CONV = 517,\n \n // Helicopter Conversion plan [518] \n INSTRUCTION_COPTER_CONV = 518,\n \n // CPL 5 Hours Conversion plan [519] \n INSTRUCTION_CPL_5 = 519,\n \n // IFR 5 Hours Conversion plan [520] \n INSTRUCTION_IFR_5 = 520,\n \n // CPL 10 Hours Conversion plan [521] \n INSTRUCTION_CPL_10 = 521,\n \n // IFR 10 Hours Conversion plan [522] \n INSTRUCTION_IFR_10 = 522,\n \n // CPL 15 Hours Conversion plan [523] \n INSTRUCTION_CPL_15 = 523,\n \n // IFR 15 Hours Conversion plan [524] \n INSTRUCTION_IFR_15 = 524,\n \n // CPL 20 Hours Conversion plan [525] \n INSTRUCTION_CPL_20 = 525,\n \n // IFR 20 Hours Conversion plan [526] \n INSTRUCTION_IFR_20 = 526,\n \n // PPL 25 Hours short plan [527] \n INSTRUCTION_PPL_25 = 527,\n \n // Maintenance Engine running [2049] \n MAINTENANCE_ENGINE_RUNNING = 2049,\n \n // Maintenance Transfer [2050] \n MAINTENANCE_TRANSFER = 2050,\n \n}\n\n// Return list of FlightCategoryCode values and their display names\nexport function GetFlightCategoryCodes() : Tuple<FlightCategoryCode, string>[] {\n\tlet result : Tuple<FlightCategoryCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_PHOTO, 'FlightCategoryCode.COMMERCIAL_PHOTO'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_TAXI, 'FlightCategoryCode.COMMERCIAL_TAXI'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_OTHER, 'FlightCategoryCode.COMMERCIAL_OTHER'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'FlightCategoryCode.EXAM_ANN_PROFICIENCY'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_IFR, 'FlightCategoryCode.EXAM_ANN_IFR'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_PPL, 'FlightCategoryCode.EXAM_CAA_PPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CPL, 'FlightCategoryCode.EXAM_CAA_CPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CFI, 'FlightCategoryCode.EXAM_CAA_CFI'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_IFR, 'FlightCategoryCode.EXAM_CAA_IFR'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CONVERSION, 'FlightCategoryCode.EXAM_CAA_CONVERSION'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL, 'FlightCategoryCode.INSTRUCTION_PPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL, 'FlightCategoryCode.INSTRUCTION_CPL'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CFI, 'FlightCategoryCode.INSTRUCTION_CFI'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR, 'FlightCategoryCode.INSTRUCTION_IFR'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_UL_CONV, 'FlightCategoryCode.INSTRUCTION_UL_CONV'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'FlightCategoryCode.INSTRUCTION_COPTER_CONV'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_5, 'FlightCategoryCode.INSTRUCTION_CPL_5'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_5, 'FlightCategoryCode.INSTRUCTION_IFR_5'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_10, 'FlightCategoryCode.INSTRUCTION_CPL_10'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_10, 'FlightCategoryCode.INSTRUCTION_IFR_10'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_15, 'FlightCategoryCode.INSTRUCTION_CPL_15'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_15, 'FlightCategoryCode.INSTRUCTION_IFR_15'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_20, 'FlightCategoryCode.INSTRUCTION_CPL_20'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_20, 'FlightCategoryCode.INSTRUCTION_IFR_20'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL_25, 'FlightCategoryCode.INSTRUCTION_PPL_25'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING'))\n\t\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_TRANSFER, 'FlightCategoryCode.MAINTENANCE_TRANSFER'))\n\t\n\n return result;\n}\n\n// Return map of FlightCategoryCode values and their display names\nexport function MapFlightCategoryCodes() : Map<FlightCategoryCode, string> {\n let result = new Map<FlightCategoryCode, string>();\n\n \n\tresult.set(FlightCategoryCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightCategoryCode.COMMERCIAL_PHOTO, 'Commercial Photo');\n\t\n\tresult.set(FlightCategoryCode.COMMERCIAL_TAXI, 'Commercial Taxi');\n\t\n\tresult.set(FlightCategoryCode.COMMERCIAL_OTHER, 'Commercial Other');\n\t\n\tresult.set(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'Exam Ann Proficiency');\n\t\n\tresult.set(FlightCategoryCode.EXAM_ANN_IFR, 'Exam Ann Ifr');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_PPL, 'Exam Caa Ppl');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_CPL, 'Exam Caa Cpl');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_CFI, 'Exam Caa Cfi');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_IFR, 'Exam Caa Ifr');\n\t\n\tresult.set(FlightCategoryCode.EXAM_CAA_CONVERSION, 'Exam Caa Conversion');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL, 'Instruction Ppl');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL, 'Instruction Cpl');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CFI, 'Instruction Cfi');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_UL_CONV, 'Instruction Ul Conv');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'Instruction Copter Conv');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_5, 'Instruction Cpl 5');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_5, 'Instruction Ifr 5');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_10, 'Instruction Cpl 10');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_10, 'Instruction Ifr 10');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_15, 'Instruction Cpl 15');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_15, 'Instruction Ifr 15');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_20, 'Instruction Cpl 20');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_20, 'Instruction Ifr 20');\n\t\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL_25, 'Instruction Ppl 25');\n\t\n\tresult.set(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'Maintenance Engine Running');\n\t\n\tresult.set(FlightCategoryCode.MAINTENANCE_TRANSFER, 'Maintenance Transfer');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonTypeCode represents a flight lesson type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum LessonTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // General Instruction Flight [1] \n INSTRUCTION = 1,\n \n // Instruction Flight with CVFR [2] \n INSTRUCTION_CVFR = 2,\n \n // Instruction Flight with IFR [3] \n INSTRUCTION_IFR = 3,\n \n // Instruction Flight with Navigation [4] \n INSTRUCTION_NAV = 4,\n \n // Instruction Night Flight [5] \n INSTRUCTION_NIGHT = 5,\n \n // Other Flight [6] \n OTHER = 6,\n \n}\n\n// Return list of LessonTypeCode values and their display names\nexport function GetLessonTypeCodes() : Tuple<LessonTypeCode, string>[] {\n\tlet result : Tuple<LessonTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION, 'LessonTypeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_CVFR, 'LessonTypeCode.INSTRUCTION_CVFR'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_IFR, 'LessonTypeCode.INSTRUCTION_IFR'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NAV, 'LessonTypeCode.INSTRUCTION_NAV'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NIGHT, 'LessonTypeCode.INSTRUCTION_NIGHT'))\n\t\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.OTHER, 'LessonTypeCode.OTHER'))\n\t\n\n return result;\n}\n\n// Return map of LessonTypeCode values and their display names\nexport function MapLessonTypeCodes() : Map<LessonTypeCode, string> {\n let result = new Map<LessonTypeCode, string>();\n\n \n\tresult.set(LessonTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_CVFR, 'Instruction Cvfr');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_NAV, 'Instruction Nav');\n\t\n\tresult.set(LessonTypeCode.INSTRUCTION_NIGHT, 'Instruction Night');\n\t\n\tresult.set(LessonTypeCode.OTHER, 'Other');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MessageTypeCode represents the message type: ALERT | INFO | POLICY\nexport enum MessageTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Company information [1] \n INFO = 1,\n \n // Memorandum [2] \n MEMO = 2,\n \n // Distribution and Reissue procedures [3] \n EXTERNAL_PROCEDURE = 3,\n \n // Internal procedures [4] \n INTERNAL_PROCEDURE = 4,\n \n // Incident_OR_Hazard Report_Low_Human_Mitigation required [5] \n INCIDENT = 5,\n \n // Policy and Procedural Changes [6] \n POLICY = 6,\n \n // Repair Stations Audit_IANR_OPS 344_2 [7] \n REPAIR = 7,\n \n}\n\n// Return list of MessageTypeCode values and their display names\nexport function GetMessageTypeCodes() : Tuple<MessageTypeCode, string>[] {\n\tlet result : Tuple<MessageTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INFO, 'MessageTypeCode.INFO'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.MEMO, 'MessageTypeCode.MEMO'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.EXTERNAL_PROCEDURE, 'MessageTypeCode.EXTERNAL_PROCEDURE'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INTERNAL_PROCEDURE, 'MessageTypeCode.INTERNAL_PROCEDURE'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INCIDENT, 'MessageTypeCode.INCIDENT'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.POLICY, 'MessageTypeCode.POLICY'))\n\t\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.REPAIR, 'MessageTypeCode.REPAIR'))\n\t\n\n return result;\n}\n\n// Return map of MessageTypeCode values and their display names\nexport function MapMessageTypeCodes() : Map<MessageTypeCode, string> {\n let result = new Map<MessageTypeCode, string>();\n\n \n\tresult.set(MessageTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(MessageTypeCode.INFO, 'Info');\n\t\n\tresult.set(MessageTypeCode.MEMO, 'Memo');\n\t\n\tresult.set(MessageTypeCode.EXTERNAL_PROCEDURE, 'External Procedure');\n\t\n\tresult.set(MessageTypeCode.INTERNAL_PROCEDURE, 'Internal Procedure');\n\t\n\tresult.set(MessageTypeCode.INCIDENT, 'Incident');\n\t\n\tresult.set(MessageTypeCode.POLICY, 'Policy');\n\t\n\tresult.set(MessageTypeCode.REPAIR, 'Repair');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PaymentMethodCode represents a payment method: CASH | CHECK | BANK TRANSFER | CREDIT ...\nexport enum PaymentMethodCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // None paid [1] \n NONE = 1,\n \n // Credit client balance [2] \n CREDIT_CLIENT = 2,\n \n // Paid with credit card [3] \n CARD = 3,\n \n // Paid with check [4] \n CHECK = 4,\n \n // Paid with cash [5] \n CASH = 5,\n \n // Paid with bank transfer [6] \n BANK = 6,\n \n}\n\n// Return list of PaymentMethodCode values and their display names\nexport function GetPaymentMethodCodes() : Tuple<PaymentMethodCode, string>[] {\n\tlet result : Tuple<PaymentMethodCode, string>[] = [];\n\n \n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.NONE, 'PaymentMethodCode.NONE'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CREDIT_CLIENT, 'PaymentMethodCode.CREDIT_CLIENT'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CARD, 'PaymentMethodCode.CARD'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CHECK, 'PaymentMethodCode.CHECK'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CASH, 'PaymentMethodCode.CASH'))\n\t\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.BANK, 'PaymentMethodCode.BANK'))\n\t\n\n return result;\n}\n\n// Return map of PaymentMethodCode values and their display names\nexport function MapPaymentMethodCodes() : Map<PaymentMethodCode, string> {\n let result = new Map<PaymentMethodCode, string>();\n\n \n\tresult.set(PaymentMethodCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(PaymentMethodCode.NONE, 'None');\n\t\n\tresult.set(PaymentMethodCode.CREDIT_CLIENT, 'Credit Client');\n\t\n\tresult.set(PaymentMethodCode.CARD, 'Card');\n\t\n\tresult.set(PaymentMethodCode.CHECK, 'Check');\n\t\n\tresult.set(PaymentMethodCode.CASH, 'Cash');\n\t\n\tresult.set(PaymentMethodCode.BANK, 'Bank');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserRoleFlag represents combination of roles: STUDENT | PILOT | INSTRUCTOR | SALES | OPERATIONS | MANAGER\nexport enum UserRoleFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Student [1] \n STUDENT = 1,\n \n // Pilot [2] \n PILOT = 2,\n \n // Flight Instructor [4] \n INSTRUCTOR = 4,\n \n // Sales [8] \n SALES = 8,\n \n // Operations [16] \n OPERATIONS = 16,\n \n // Maintenance [32] \n MAINTENANCE = 32,\n \n // Manager [1024] \n MANAGER = 1024,\n \n // All roles combined \n ALL = 2047,\n \n}\n\n// Return list of UserRoleFlag values and their display names\nexport function GetUserRoleFlags() : Tuple<UserRoleFlag, string>[] {\n\tlet result : Tuple<UserRoleFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.STUDENT, 'UserRoleFlag.STUDENT'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.PILOT, 'UserRoleFlag.PILOT'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.INSTRUCTOR, 'UserRoleFlag.INSTRUCTOR'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.SALES, 'UserRoleFlag.SALES'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.OPERATIONS, 'UserRoleFlag.OPERATIONS'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MAINTENANCE, 'UserRoleFlag.MAINTENANCE'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MANAGER, 'UserRoleFlag.MANAGER'))\n\t\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.ALL, 'UserRoleFlag.ALL'))\n\t\n\n return result;\n}\n\n// Return map of UserRoleFlag values and their display names\nexport function MapUserRoleFlags() : Map<UserRoleFlag, string> {\n let result = new Map<UserRoleFlag, string>();\n\n \n\tresult.set(UserRoleFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(UserRoleFlag.STUDENT, 'Student');\n\t\n\tresult.set(UserRoleFlag.PILOT, 'Pilot');\n\t\n\tresult.set(UserRoleFlag.INSTRUCTOR, 'Instructor');\n\t\n\tresult.set(UserRoleFlag.SALES, 'Sales');\n\t\n\tresult.set(UserRoleFlag.OPERATIONS, 'Operations');\n\t\n\tresult.set(UserRoleFlag.MAINTENANCE, 'Maintenance');\n\t\n\tresult.set(UserRoleFlag.MANAGER, 'Manager');\n\t\n\tresult.set(UserRoleFlag.ALL, 'All');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserTypeCode represents the user type: SYSADMIN | SUPPORT | USER ...\nexport enum UserTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // System administrator has access to all accounts and permissions to perform all actions [1] \n SYSADMIN = 1,\n \n // Support user has view permissions only for all accounts that enabled option Enable Support [2] \n SUPPORT = 2,\n \n // Account user - has access to specific accounts with role based access control [3] \n USER = 3,\n \n // Service Account - to be used by other systems to perform actions using the API (can't login as a user to the portal) [4] \n SERVICE = 4,\n \n}\n\n// Return list of UserTypeCode values and their display names\nexport function GetUserTypeCodes() : Tuple<UserTypeCode, string>[] {\n\tlet result : Tuple<UserTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SYSADMIN, 'UserTypeCode.SYSADMIN'))\n\t\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SUPPORT, 'UserTypeCode.SUPPORT'))\n\t\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.USER, 'UserTypeCode.USER'))\n\t\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SERVICE, 'UserTypeCode.SERVICE'))\n\t\n\n return result;\n}\n\n// Return map of UserTypeCode values and their display names\nexport function MapUserTypeCodes() : Map<UserTypeCode, string> {\n let result = new Map<UserTypeCode, string>();\n\n \n\tresult.set(UserTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(UserTypeCode.SYSADMIN, 'Sysadmin');\n\t\n\tresult.set(UserTypeCode.SUPPORT, 'Support');\n\t\n\tresult.set(UserTypeCode.USER, 'User');\n\t\n\tresult.set(UserTypeCode.SERVICE, 'Service');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AssessmentCode represents the assessment score: EXCELLENT | SATISFACTORY | INCOMPLETE ...\nexport enum AssessmentCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Excellent [1] \n EXCELLENT = 1,\n \n // Satisfactory [2] \n SATISFACTORY = 2,\n \n // Below Average [3] \n BELOW_AVERAGE = 3,\n \n // Unsatisfactory [4] \n UNSATISFACTORY = 4,\n \n // Incomplete [5] \n INCOMPLETE = 5,\n \n // Repeat exercise is required [6] \n REPEAT = 6,\n \n // Demonstration only [7] \n DEMO = 7,\n \n}\n\n// Return list of AssessmentCode values and their display names\nexport function GetAssessmentCodes() : Tuple<AssessmentCode, string>[] {\n\tlet result : Tuple<AssessmentCode, string>[] = [];\n\n \n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.EXCELLENT, 'AssessmentCode.EXCELLENT'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.SATISFACTORY, 'AssessmentCode.SATISFACTORY'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.BELOW_AVERAGE, 'AssessmentCode.BELOW_AVERAGE'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.UNSATISFACTORY, 'AssessmentCode.UNSATISFACTORY'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.INCOMPLETE, 'AssessmentCode.INCOMPLETE'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.REPEAT, 'AssessmentCode.REPEAT'))\n\t\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.DEMO, 'AssessmentCode.DEMO'))\n\t\n\n return result;\n}\n\n// Return map of AssessmentCode values and their display names\nexport function MapAssessmentCodes() : Map<AssessmentCode, string> {\n let result = new Map<AssessmentCode, string>();\n\n \n\tresult.set(AssessmentCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(AssessmentCode.EXCELLENT, 'Excellent');\n\t\n\tresult.set(AssessmentCode.SATISFACTORY, 'Satisfactory');\n\t\n\tresult.set(AssessmentCode.BELOW_AVERAGE, 'Below Average');\n\t\n\tresult.set(AssessmentCode.UNSATISFACTORY, 'Unsatisfactory');\n\t\n\tresult.set(AssessmentCode.INCOMPLETE, 'Incomplete');\n\t\n\tresult.set(AssessmentCode.REPEAT, 'Repeat');\n\t\n\tresult.set(AssessmentCode.DEMO, 'Demo');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignStatusCode represents the campaign status: PLANNING | ACTIVE | COMPLETED ...\nexport enum CampaignStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Planned campaign [1] \n PLANNING = 1,\n \n // Active campaign [2] \n ACTIVE = 2,\n \n // `Completed campaign [3] \n COMPLETED = 3,\n \n // Suspended (about to be deleted) [4] \n SUSPENDED = 4,\n \n}\n\n// Return list of CampaignStatusCode values and their display names\nexport function GetCampaignStatusCodes() : Tuple<CampaignStatusCode, string>[] {\n\tlet result : Tuple<CampaignStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.PLANNING, 'CampaignStatusCode.PLANNING'))\n\t\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.ACTIVE, 'CampaignStatusCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.COMPLETED, 'CampaignStatusCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.SUSPENDED, 'CampaignStatusCode.SUSPENDED'))\n\t\n\n return result;\n}\n\n// Return map of CampaignStatusCode values and their display names\nexport function MapCampaignStatusCodes() : Map<CampaignStatusCode, string> {\n let result = new Map<CampaignStatusCode, string>();\n\n \n\tresult.set(CampaignStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(CampaignStatusCode.PLANNING, 'Planning');\n\t\n\tresult.set(CampaignStatusCode.ACTIVE, 'Active');\n\t\n\tresult.set(CampaignStatusCode.COMPLETED, 'Completed');\n\t\n\tresult.set(CampaignStatusCode.SUSPENDED, 'Suspended');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CurrencyCode represents the currency: ILS | USD | EUR ...\nexport enum CurrencyCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // ILS [1] \n ILS = 1,\n \n // USD [2] \n USD = 2,\n \n // EURO [3] \n EUR = 3,\n \n}\n\n// Return list of CurrencyCode values and their display names\nexport function GetCurrencyCodes() : Tuple<CurrencyCode, string>[] {\n\tlet result : Tuple<CurrencyCode, string>[] = [];\n\n \n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.ILS, 'CurrencyCode.ILS'))\n\t\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.USD, 'CurrencyCode.USD'))\n\t\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.EUR, 'CurrencyCode.EUR'))\n\t\n\n return result;\n}\n\n// Return map of CurrencyCode values and their display names\nexport function MapCurrencyCodes() : Map<CurrencyCode, string> {\n let result = new Map<CurrencyCode, string>();\n\n \n\tresult.set(CurrencyCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(CurrencyCode.ILS, 'Ils');\n\t\n\tresult.set(CurrencyCode.USD, 'Usd');\n\t\n\tresult.set(CurrencyCode.EUR, 'Eur');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// InstructionTypeCode represents a flight instruction type: FLIGHT | CLASS | SIMULATOR ...\nexport enum InstructionTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Instruction during a Flight [1] \n FLIGHT = 1,\n \n // Instruction in the class [2] \n CLASS = 2,\n \n // Instruction in the simulator [3] \n SIMULATOR = 3,\n \n}\n\n// Return list of InstructionTypeCode values and their display names\nexport function GetInstructionTypeCodes() : Tuple<InstructionTypeCode, string>[] {\n\tlet result : Tuple<InstructionTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.FLIGHT, 'InstructionTypeCode.FLIGHT'))\n\t\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.CLASS, 'InstructionTypeCode.CLASS'))\n\t\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.SIMULATOR, 'InstructionTypeCode.SIMULATOR'))\n\t\n\n return result;\n}\n\n// Return map of InstructionTypeCode values and their display names\nexport function MapInstructionTypeCodes() : Map<InstructionTypeCode, string> {\n let result = new Map<InstructionTypeCode, string>();\n\n \n\tresult.set(InstructionTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(InstructionTypeCode.FLIGHT, 'Flight');\n\t\n\tresult.set(InstructionTypeCode.CLASS, 'Class');\n\t\n\tresult.set(InstructionTypeCode.SIMULATOR, 'Simulator');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonSubjectCode represents a flight lesson subject:\nexport enum LessonSubjectCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // \"1 השפעת הגאים ומנופי בקרה. משך: 40 ד\" \n PPL_01 = 1,\n \n // \"2 הכנה לטיסה, הסעה, טיסה ישרה ואופקית. משך: 40 ד\" \n PPL_02 = 2,\n \n // \"3 הסעה, טיסה ישרה ואופקית, נסיקה. משך: 40 ד\" \n PPL_03 = 3,\n \n // \"4 מצבי יסוד - ישרה ואופקית נסיקה וגלישה. משך: 40 ד\" \n PPL_04 = 4,\n \n // \"5 מעברים רגילים ומורכבים בטיסה ישרה. משך: 50 ד\" \n PPL_05 = 5,\n \n // \"6 פניות קלות (נסיקה גלישה), בינוניות וחדות. משך: 50 ד\" \n PPL_06 = 6,\n \n // \"7 מעברים רגילים ומורכבים בפניה. משך: 40 ד\" \n PPL_07 = 7,\n \n // \"8 שינויי מהירות בטיסה ישרה ואופקית, והזדקרויות ישרות. משך: 40 ד\" \n PPL_08 = 8,\n \n // \"9 הזדקרויות בטיסה ישרה ובפניות והזדקרות עם נפילת כנף. משך: 40 ד\" \n PPL_09 = 9,\n \n // \"10 נחיתות אונס מגבהים שונים+החלצות ממצב של נפילת כנף תוך כדי הזדקרות. משך: 40 ד\" \n PPL_10 = 10,\n \n // \"11 הקפה. משך: 40 ד\" \n PPL_11 = 11,\n \n // \"12 חזרה כללית: הקפות המראה ונחיתה. משך: 40 ד\" \n PPL_12 = 12,\n \n // \"13 חזרה כללית: הקפות המראה ונחיתה. משך: 1:00 ש\" \n PPL_13 = 13,\n \n // \"14 חזרה כללית: הקפות המראה ונחיתה. משך: 50 ד\" \n PPL_14 = 14,\n \n // \"15 חזרה כללית + הקפות המראה קצרה ונחיתה קצרה. משך: 50 ד\" \n PPL_15 = 15,\n \n // \"16 טיסת בדיקה לקראת טיסת יחיד-טיסה כללית ובהקפה. משך המבחן 1:00. טיסת הסולו ראשונה: הקפה אחת, משך 10 ד\" \n PPL_16 = 16,\n \n // \"17 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_17 = 17,\n \n // \"18 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_18 = 18,\n \n // \"19 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_19 = 19,\n \n // \"20 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_20 = 20,\n \n // \"21 הקפות, נחיתות דיוק, חירום. הדרכה 15 ד; סולו 1:00 ש\" \n PPL_21 = 21,\n \n // \"22 הקפות, טיסה כללית, חירום. הדרכה 50 ד; הקפות- סולו 50 ד\" \n PPL_22 = 22,\n \n // \"23 הקפות, טיסה כללית, חירום. הדרכה 30 ד; סולו אזור 50 ד\" \n PPL_23 = 23,\n \n // \"24 טיסה כללית, חירום. הדרכה 10 ד; סולו אזור 50 ד\" \n PPL_24 = 24,\n \n // \"25 שעור 1: טיסת מכשירים בסיסית-מצבי טיסה יסודיים. משך 45 ד\" \n PPL_25 = 25,\n \n // \"26 שעור 2: טיסת מכשירים בסיסית-מעברים בטיסה ישרה. משך 45 ד\" \n PPL_26 = 26,\n \n // \"27 שעור 3: פניות בינוניות אופקיות ופניות בשעור1. משך: 45 ד\" \n PPL_27 = 27,\n \n // \"28 שעור 4: לוח מוגבל ומצבים מוזרים. משך: 45 ד\" \n PPL_28 = 28,\n \n // \"29 - טיסת נווט מגע + נחיתת ביניים. משך הנווט 1:20 ש\" \n PPL_29 = 29,\n \n // \"30 - טיסת נווט מגע, אבדן התמצאות ונ״א + שימוש בעזרי רדיו לנווט. נחיתות ביניים בנתיב בשני שדות זרים. משך הנווט 1:40 ש\" \n PPL_30 = 30,\n \n // \"31 נווטי מגע, שימוש בעזרי רדיו לנווט+נחיתות בשדות זרים. משך הנווטים בטיסות יחיד 3:00 ש; הדרכה לבדיקת רמה לפני כל נווט 10 ד\" \n PPL_31 = 31,\n \n // \"32 נווט יחיד ארוך-נווט מגע, שימוש בעזרי רדיו+נחיתה בשני שדות זרים מרוחקים משדה האם. משך: 2:30 שעות; הדרכה 10 דקות -בדיקת רמה\" \n PPL_32 = 32,\n \n // \"33 סולו – חזרה על כל תרגילי הטיסה ותהליכי חירום. משך: הדרכה 10 דקות + סולו 55 ד\" \n PPL_33 = 33,\n \n // \"34 שעור 1 לילה: טיסה כללית-מצבי טיסה. משך: 45 ד\" \n PPL_34 = 34,\n \n // \"35 שעור 2-לילה: מעברים רגילים+מורכבים בטיסה ישרה. משך: 45 ד\" \n PPL_35 = 35,\n \n // \"36 שעור 3 לילה: פניות נסיקה וגלישה ופניות בינוניות + אופקיות 30º הטייה ומעברים בפניה ושתי הקפות. משך: 45 ד\" \n PPL_36 = 36,\n \n // \"37 שעור 4 לילה: הקפות עם פנסי נחיתה וללא. משך: 45 ד\" \n PPL_37 = 37,\n \n // \"38 חזרה כללית לפני מבחן. משך: 45 ד\" \n PPL_38 = 38,\n \n // \"39 -סולו -חזרה כללית לפני מבחן. משך: 55 ד\" \n PPL_39 = 39,\n \n // 1 הסעה, מעברים מורכבים, פניות, שינוי מהירות, הקפה \n PPL_AZM_01 = 51,\n \n // 2 פניות חדות, שינוי מהירות, הזדקרות, נ\"א, הקפה \n PPL_AZM_02 = 52,\n \n // 3 הקפות \n PPL_AZM_03 = 53,\n \n // 4 מצבי חירום באיזור ובהקפה \n PPL_AZM_04 = 54,\n \n // 5 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_05 = 55,\n \n // 6 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_06 = 56,\n \n // 7 טיסת בדיקה לטיסת יחיד (מד\"ר) \n PPL_AZM_07 = 57,\n \n // 8 מכשירים - מצבי טיסה יסודיים \n PPL_AZM_08 = 58,\n \n // 9 מכשירים, פניות, שינוי מהירות, הזדקרויות \n PPL_AZM_09 = 59,\n \n // 10 טיסת נווט מגע ונחיתת ביניים, מצבי חירום, הקפות \n PPL_AZM_10 = 60,\n \n // 11 טיסת מכשירים לוח מוגבל, מצבים מוזרים, יירוט רדיאלים \n PPL_AZM_11 = 61,\n \n // 12 ניווט בטיסת יחיד \n PPL_AZM_12 = 62,\n \n // 13 ניווט בטיסת יחיד \n PPL_AZM_13 = 63,\n \n // 14 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_14 = 64,\n \n // 15 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_15 = 65,\n \n // 16 חזרה כללית (מד\"ר) \n PPL_AZM_16 = 66,\n \n // \"1 מצבי טיסה, מעברים, פניות, שינוי מהירות, הזדקרויות\" \n CPL_01 = 101,\n \n // \"2 תמרונים רגילים בטיסה (שיפור מיומנות)\" \n CPL_02 = 102,\n \n // \"3 הזדקרויות והיכרות עם תרגילי המיומנות הנדרשים בטיס מסחרי\" \n CPL_03 = 103,\n \n // \"4 תרגילי המיומנות הנדרשים מטייס מסחרי (שיפור מיומנות)\" \n CPL_04 = 104,\n \n // \"5 תפעול רגיל ותרגול חירומים\" \n CPL_05 = 105,\n \n // \"6 תפעול רגיל ותרגול חירומים (שיפור מיומנות)\" \n CPL_06 = 106,\n \n // \"7 תרגול הקפות במשקל המראה מירבי\" \n CPL_07 = 107,\n \n // \"8 תרגול הקפות ותפעול חרומים בהקפה\" \n CPL_08 = 108,\n \n // \"9 טיסת מכשירים בסיסית\" \n CPL_09 = 109,\n \n // \"10 טיסת ניווט בנתיבי התובלה הנמוכים\" \n CPL_10 = 110,\n \n // \"11 ישום שיטת ניווט (גובה נמוך)\" \n CPL_11 = 111,\n \n // \"12 ישום שיטת ניווט (גובה נמוך) ושיפור מיומנות\" \n CPL_12 = 112,\n \n // \"13 הכנה למבחן מעשי\" \n CPL_13 = 113,\n \n // 1 מצבים יסודיים, מעברים,פניות, שינוי מהירות, הזדקרויות, שעור פניה, מצבים מוזרים \n IFR_05_01 = 201,\n \n // 2 טיסה לפי רדיאלים \n IFR_05_02 = 202,\n \n // 3 SID, ניווט בנתיבי IFR, STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_03 = 203,\n \n // 4 מסכמת, נתיב, SID,STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_04 = 204,\n \n // 5 חזרה למבחן \n IFR_05_05 = 205,\n \n // 1 מצבים טיסה יסודיים - מדמה \n IFR_20_01 = 221,\n \n // 2 מצבי טיסה יסודיים \n IFR_20_02 = 222,\n \n // 3 הזדקרויות עד מצבים מוזרים - מדמה \n IFR_20_03 = 223,\n \n // 4 הזדקרויות עד מצבים מוזרים \n IFR_20_04 = 224,\n \n // 5 טיסה לפי רדיאלים - מדמה \n IFR_20_05 = 225,\n \n // 6 טיסה לפי רדיאלים \n IFR_20_06 = 226,\n \n // 7 מעגל המתנה וכניסות - מדמה \n IFR_20_07 = 227,\n \n // 8 SID, נתיבי IFR, STAR - מדמה \n IFR_20_08 = 228,\n \n // 9 SID, נתיבי IFR, STAR \n IFR_20_09 = 229,\n \n // 10 הנמכות מדויקות - מדמה \n IFR_20_10 = 230,\n \n // 11 הנמכות לא מדויקות - מדמה \n IFR_20_11 = 231,\n \n // 12 SID, נתיבי IFR, STAR, הנמכות מדויקות \n IFR_20_12 = 232,\n \n // 13 הנמכות לא מדויקות \n IFR_20_13 = 233,\n \n // 14 הנמכות שונות \n IFR_20_14 = 234,\n \n // 15 SID, נתיבי IFR, STAR, הנמכות שונות - מדמה \n IFR_20_15 = 235,\n \n // 16 טיסה מסכמת \n IFR_20_16 = 236,\n \n // 17 חזרה למבחן - מדמה \n IFR_20_17 = 237,\n \n // 18 חזרה למבחן \n IFR_20_18 = 238,\n \n}\n\n// Return list of LessonSubjectCode values and their display names\nexport function GetLessonSubjectCodes() : Tuple<LessonSubjectCode, string>[] {\n\tlet result : Tuple<LessonSubjectCode, string>[] = [];\n\n \n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_01, 'LessonSubjectCode.PPL_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_02, 'LessonSubjectCode.PPL_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_03, 'LessonSubjectCode.PPL_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_04, 'LessonSubjectCode.PPL_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_05, 'LessonSubjectCode.PPL_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_06, 'LessonSubjectCode.PPL_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_07, 'LessonSubjectCode.PPL_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_08, 'LessonSubjectCode.PPL_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_09, 'LessonSubjectCode.PPL_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_10, 'LessonSubjectCode.PPL_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_11, 'LessonSubjectCode.PPL_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_12, 'LessonSubjectCode.PPL_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_13, 'LessonSubjectCode.PPL_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_14, 'LessonSubjectCode.PPL_14'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_15, 'LessonSubjectCode.PPL_15'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_16, 'LessonSubjectCode.PPL_16'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_17, 'LessonSubjectCode.PPL_17'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_18, 'LessonSubjectCode.PPL_18'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_19, 'LessonSubjectCode.PPL_19'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_20, 'LessonSubjectCode.PPL_20'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_21, 'LessonSubjectCode.PPL_21'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_22, 'LessonSubjectCode.PPL_22'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_23, 'LessonSubjectCode.PPL_23'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_24, 'LessonSubjectCode.PPL_24'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_25, 'LessonSubjectCode.PPL_25'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_26, 'LessonSubjectCode.PPL_26'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_27, 'LessonSubjectCode.PPL_27'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_28, 'LessonSubjectCode.PPL_28'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_29, 'LessonSubjectCode.PPL_29'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_30, 'LessonSubjectCode.PPL_30'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_31, 'LessonSubjectCode.PPL_31'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_32, 'LessonSubjectCode.PPL_32'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_33, 'LessonSubjectCode.PPL_33'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_34, 'LessonSubjectCode.PPL_34'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_35, 'LessonSubjectCode.PPL_35'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_36, 'LessonSubjectCode.PPL_36'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_37, 'LessonSubjectCode.PPL_37'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_38, 'LessonSubjectCode.PPL_38'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_39, 'LessonSubjectCode.PPL_39'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_01, 'LessonSubjectCode.PPL_AZM_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_02, 'LessonSubjectCode.PPL_AZM_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_03, 'LessonSubjectCode.PPL_AZM_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_04, 'LessonSubjectCode.PPL_AZM_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_05, 'LessonSubjectCode.PPL_AZM_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_06, 'LessonSubjectCode.PPL_AZM_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_07, 'LessonSubjectCode.PPL_AZM_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_08, 'LessonSubjectCode.PPL_AZM_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_09, 'LessonSubjectCode.PPL_AZM_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_10, 'LessonSubjectCode.PPL_AZM_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_11, 'LessonSubjectCode.PPL_AZM_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_12, 'LessonSubjectCode.PPL_AZM_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_13, 'LessonSubjectCode.PPL_AZM_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_14, 'LessonSubjectCode.PPL_AZM_14'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_15, 'LessonSubjectCode.PPL_AZM_15'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_16, 'LessonSubjectCode.PPL_AZM_16'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_01, 'LessonSubjectCode.CPL_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_02, 'LessonSubjectCode.CPL_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_03, 'LessonSubjectCode.CPL_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_04, 'LessonSubjectCode.CPL_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_05, 'LessonSubjectCode.CPL_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_06, 'LessonSubjectCode.CPL_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_07, 'LessonSubjectCode.CPL_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_08, 'LessonSubjectCode.CPL_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_09, 'LessonSubjectCode.CPL_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_10, 'LessonSubjectCode.CPL_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_11, 'LessonSubjectCode.CPL_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_12, 'LessonSubjectCode.CPL_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_13, 'LessonSubjectCode.CPL_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_01, 'LessonSubjectCode.IFR_05_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_02, 'LessonSubjectCode.IFR_05_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_03, 'LessonSubjectCode.IFR_05_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_04, 'LessonSubjectCode.IFR_05_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_05, 'LessonSubjectCode.IFR_05_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_01, 'LessonSubjectCode.IFR_20_01'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_02, 'LessonSubjectCode.IFR_20_02'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_03, 'LessonSubjectCode.IFR_20_03'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_04, 'LessonSubjectCode.IFR_20_04'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_05, 'LessonSubjectCode.IFR_20_05'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_06, 'LessonSubjectCode.IFR_20_06'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_07, 'LessonSubjectCode.IFR_20_07'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_08, 'LessonSubjectCode.IFR_20_08'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_09, 'LessonSubjectCode.IFR_20_09'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_10, 'LessonSubjectCode.IFR_20_10'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_11, 'LessonSubjectCode.IFR_20_11'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_12, 'LessonSubjectCode.IFR_20_12'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_13, 'LessonSubjectCode.IFR_20_13'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_14, 'LessonSubjectCode.IFR_20_14'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_15, 'LessonSubjectCode.IFR_20_15'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_16, 'LessonSubjectCode.IFR_20_16'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_17, 'LessonSubjectCode.IFR_20_17'))\n\t\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_18, 'LessonSubjectCode.IFR_20_18'))\n\t\n\n return result;\n}\n\n// Return map of LessonSubjectCode values and their display names\nexport function MapLessonSubjectCodes() : Map<LessonSubjectCode, string> {\n let result = new Map<LessonSubjectCode, string>();\n\n \n\tresult.set(LessonSubjectCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LessonSubjectCode.PPL_01, 'Ppl 01');\n\t\n\tresult.set(LessonSubjectCode.PPL_02, 'Ppl 02');\n\t\n\tresult.set(LessonSubjectCode.PPL_03, 'Ppl 03');\n\t\n\tresult.set(LessonSubjectCode.PPL_04, 'Ppl 04');\n\t\n\tresult.set(LessonSubjectCode.PPL_05, 'Ppl 05');\n\t\n\tresult.set(LessonSubjectCode.PPL_06, 'Ppl 06');\n\t\n\tresult.set(LessonSubjectCode.PPL_07, 'Ppl 07');\n\t\n\tresult.set(LessonSubjectCode.PPL_08, 'Ppl 08');\n\t\n\tresult.set(LessonSubjectCode.PPL_09, 'Ppl 09');\n\t\n\tresult.set(LessonSubjectCode.PPL_10, 'Ppl 10');\n\t\n\tresult.set(LessonSubjectCode.PPL_11, 'Ppl 11');\n\t\n\tresult.set(LessonSubjectCode.PPL_12, 'Ppl 12');\n\t\n\tresult.set(LessonSubjectCode.PPL_13, 'Ppl 13');\n\t\n\tresult.set(LessonSubjectCode.PPL_14, 'Ppl 14');\n\t\n\tresult.set(LessonSubjectCode.PPL_15, 'Ppl 15');\n\t\n\tresult.set(LessonSubjectCode.PPL_16, 'Ppl 16');\n\t\n\tresult.set(LessonSubjectCode.PPL_17, 'Ppl 17');\n\t\n\tresult.set(LessonSubjectCode.PPL_18, 'Ppl 18');\n\t\n\tresult.set(LessonSubjectCode.PPL_19, 'Ppl 19');\n\t\n\tresult.set(LessonSubjectCode.PPL_20, 'Ppl 20');\n\t\n\tresult.set(LessonSubjectCode.PPL_21, 'Ppl 21');\n\t\n\tresult.set(LessonSubjectCode.PPL_22, 'Ppl 22');\n\t\n\tresult.set(LessonSubjectCode.PPL_23, 'Ppl 23');\n\t\n\tresult.set(LessonSubjectCode.PPL_24, 'Ppl 24');\n\t\n\tresult.set(LessonSubjectCode.PPL_25, 'Ppl 25');\n\t\n\tresult.set(LessonSubjectCode.PPL_26, 'Ppl 26');\n\t\n\tresult.set(LessonSubjectCode.PPL_27, 'Ppl 27');\n\t\n\tresult.set(LessonSubjectCode.PPL_28, 'Ppl 28');\n\t\n\tresult.set(LessonSubjectCode.PPL_29, 'Ppl 29');\n\t\n\tresult.set(LessonSubjectCode.PPL_30, 'Ppl 30');\n\t\n\tresult.set(LessonSubjectCode.PPL_31, 'Ppl 31');\n\t\n\tresult.set(LessonSubjectCode.PPL_32, 'Ppl 32');\n\t\n\tresult.set(LessonSubjectCode.PPL_33, 'Ppl 33');\n\t\n\tresult.set(LessonSubjectCode.PPL_34, 'Ppl 34');\n\t\n\tresult.set(LessonSubjectCode.PPL_35, 'Ppl 35');\n\t\n\tresult.set(LessonSubjectCode.PPL_36, 'Ppl 36');\n\t\n\tresult.set(LessonSubjectCode.PPL_37, 'Ppl 37');\n\t\n\tresult.set(LessonSubjectCode.PPL_38, 'Ppl 38');\n\t\n\tresult.set(LessonSubjectCode.PPL_39, 'Ppl 39');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_01, 'Ppl Azm 01');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_02, 'Ppl Azm 02');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_03, 'Ppl Azm 03');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_04, 'Ppl Azm 04');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_05, 'Ppl Azm 05');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_06, 'Ppl Azm 06');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_07, 'Ppl Azm 07');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_08, 'Ppl Azm 08');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_09, 'Ppl Azm 09');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_10, 'Ppl Azm 10');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_11, 'Ppl Azm 11');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_12, 'Ppl Azm 12');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_13, 'Ppl Azm 13');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_14, 'Ppl Azm 14');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_15, 'Ppl Azm 15');\n\t\n\tresult.set(LessonSubjectCode.PPL_AZM_16, 'Ppl Azm 16');\n\t\n\tresult.set(LessonSubjectCode.CPL_01, 'Cpl 01');\n\t\n\tresult.set(LessonSubjectCode.CPL_02, 'Cpl 02');\n\t\n\tresult.set(LessonSubjectCode.CPL_03, 'Cpl 03');\n\t\n\tresult.set(LessonSubjectCode.CPL_04, 'Cpl 04');\n\t\n\tresult.set(LessonSubjectCode.CPL_05, 'Cpl 05');\n\t\n\tresult.set(LessonSubjectCode.CPL_06, 'Cpl 06');\n\t\n\tresult.set(LessonSubjectCode.CPL_07, 'Cpl 07');\n\t\n\tresult.set(LessonSubjectCode.CPL_08, 'Cpl 08');\n\t\n\tresult.set(LessonSubjectCode.CPL_09, 'Cpl 09');\n\t\n\tresult.set(LessonSubjectCode.CPL_10, 'Cpl 10');\n\t\n\tresult.set(LessonSubjectCode.CPL_11, 'Cpl 11');\n\t\n\tresult.set(LessonSubjectCode.CPL_12, 'Cpl 12');\n\t\n\tresult.set(LessonSubjectCode.CPL_13, 'Cpl 13');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_01, 'Ifr 05 01');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_02, 'Ifr 05 02');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_03, 'Ifr 05 03');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_04, 'Ifr 05 04');\n\t\n\tresult.set(LessonSubjectCode.IFR_05_05, 'Ifr 05 05');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_01, 'Ifr 20 01');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_02, 'Ifr 20 02');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_03, 'Ifr 20 03');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_04, 'Ifr 20 04');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_05, 'Ifr 20 05');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_06, 'Ifr 20 06');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_07, 'Ifr 20 07');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_08, 'Ifr 20 08');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_09, 'Ifr 20 09');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_10, 'Ifr 20 10');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_11, 'Ifr 20 11');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_12, 'Ifr 20 12');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_13, 'Ifr 20 13');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_14, 'Ifr 20 14');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_15, 'Ifr 20 15');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_16, 'Ifr 20 16');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_17, 'Ifr 20 17');\n\t\n\tresult.set(LessonSubjectCode.IFR_20_18, 'Ifr 20 18');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// StatusCode represents a general workflow status: PENDING | IN_PROGRESS | DONE ...\nexport enum StatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Flow not started yet [1] \n PENDING = 1,\n \n // Flow in process [2] \n IN_PROCESS = 2,\n \n // Flow completed [3] \n COMPLETED = 3,\n \n // Flow cancelled by user [4] \n CANCELLED = 4,\n \n // Flow automatically cancelled by the system [5] \n AUTO_CANCELLED = 5,\n \n}\n\n// Return list of StatusCode values and their display names\nexport function GetStatusCodes() : Tuple<StatusCode, string>[] {\n\tlet result : Tuple<StatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<StatusCode, string>(StatusCode.PENDING, 'StatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.IN_PROCESS, 'StatusCode.IN_PROCESS'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.COMPLETED, 'StatusCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.CANCELLED, 'StatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.AUTO_CANCELLED, 'StatusCode.AUTO_CANCELLED'))\n\t\n\n return result;\n}\n\n// Return map of StatusCode values and their display names\nexport function MapStatusCodes() : Map<StatusCode, string> {\n let result = new Map<StatusCode, string>();\n\n \n\tresult.set(StatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(StatusCode.PENDING, 'Pending');\n\t\n\tresult.set(StatusCode.IN_PROCESS, 'In Process');\n\t\n\tresult.set(StatusCode.COMPLETED, 'Completed');\n\t\n\tresult.set(StatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(StatusCode.AUTO_CANCELLED, 'Auto Cancelled');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FilterFlag represents combination of filtered fields\nexport enum FilterFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Global search [1] \n SEARCH = 1,\n \n // F2 [2] \n F2 = 2,\n \n // F3 [4] \n F3 = 4,\n \n // F4 [8] \n F4 = 8,\n \n // F5 [16] \n F5 = 16,\n \n // F6 [32] \n F6 = 32,\n \n // F7 [64] \n F7 = 64,\n \n // F8 [128] \n F8 = 128,\n \n // F9 [256] \n F9 = 256,\n \n // F10 [512] \n F10 = 512,\n \n // F11 [1024] \n F11 = 1024,\n \n // F12 [2048] \n F12 = 2048,\n \n // F13 [4096] \n F13 = 4096,\n \n // F14 [8192] \n F14 = 8192,\n \n // F15 [16384] \n F15 = 16384,\n \n // F16 [32768] \n F16 = 32768,\n \n // F17 [65536] \n F17 = 65536,\n \n // F18 [131072] \n F18 = 131072,\n \n // F19 [262144] \n F19 = 262144,\n \n // F20 [524288] \n F20 = 524288,\n \n // F21 [1048576] \n F21 = 1048576,\n \n // F22 [2097152] \n F22 = 2097152,\n \n // F23 [4194304] \n F23 = 4194304,\n \n // F24 [8388608] \n F24 = 8388608,\n \n // F25 [16777216] \n F25 = 16777216,\n \n}\n\n// Return list of FilterFlag values and their display names\nexport function GetFilterFlags() : Tuple<FilterFlag, string>[] {\n\tlet result : Tuple<FilterFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.SEARCH, 'FilterFlag.SEARCH'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F2, 'FilterFlag.F2'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F3, 'FilterFlag.F3'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F4, 'FilterFlag.F4'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F5, 'FilterFlag.F5'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F6, 'FilterFlag.F6'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F7, 'FilterFlag.F7'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F8, 'FilterFlag.F8'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F9, 'FilterFlag.F9'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F10, 'FilterFlag.F10'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F11, 'FilterFlag.F11'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F12, 'FilterFlag.F12'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F13, 'FilterFlag.F13'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F14, 'FilterFlag.F14'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F15, 'FilterFlag.F15'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F16, 'FilterFlag.F16'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F17, 'FilterFlag.F17'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F18, 'FilterFlag.F18'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F19, 'FilterFlag.F19'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F20, 'FilterFlag.F20'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F21, 'FilterFlag.F21'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F22, 'FilterFlag.F22'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F23, 'FilterFlag.F23'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F24, 'FilterFlag.F24'))\n\t\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F25, 'FilterFlag.F25'))\n\t\n\n return result;\n}\n\n// Return map of FilterFlag values and their display names\nexport function MapFilterFlags() : Map<FilterFlag, string> {\n let result = new Map<FilterFlag, string>();\n\n \n\tresult.set(FilterFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FilterFlag.SEARCH, 'Search');\n\t\n\tresult.set(FilterFlag.F2, 'F2');\n\t\n\tresult.set(FilterFlag.F3, 'F3');\n\t\n\tresult.set(FilterFlag.F4, 'F4');\n\t\n\tresult.set(FilterFlag.F5, 'F5');\n\t\n\tresult.set(FilterFlag.F6, 'F6');\n\t\n\tresult.set(FilterFlag.F7, 'F7');\n\t\n\tresult.set(FilterFlag.F8, 'F8');\n\t\n\tresult.set(FilterFlag.F9, 'F9');\n\t\n\tresult.set(FilterFlag.F10, 'F10');\n\t\n\tresult.set(FilterFlag.F11, 'F11');\n\t\n\tresult.set(FilterFlag.F12, 'F12');\n\t\n\tresult.set(FilterFlag.F13, 'F13');\n\t\n\tresult.set(FilterFlag.F14, 'F14');\n\t\n\tresult.set(FilterFlag.F15, 'F15');\n\t\n\tresult.set(FilterFlag.F16, 'F16');\n\t\n\tresult.set(FilterFlag.F17, 'F17');\n\t\n\tresult.set(FilterFlag.F18, 'F18');\n\t\n\tresult.set(FilterFlag.F19, 'F19');\n\t\n\tresult.set(FilterFlag.F20, 'F20');\n\t\n\tresult.set(FilterFlag.F21, 'F21');\n\t\n\tresult.set(FilterFlag.F22, 'F22');\n\t\n\tresult.set(FilterFlag.F23, 'F23');\n\t\n\tresult.set(FilterFlag.F24, 'F24');\n\t\n\tresult.set(FilterFlag.F25, 'F25');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBCategoryCode represents the ADSB category types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBCategoryCode {\n \n // No information at all [0] \n UNDEFINED = 0,\n \n // No ADS-B Emitter Category Information [1] \n NO_ADSB = 1,\n \n // Light (< 15500 lbs) [2] \n LIGHT = 2,\n \n // Small (15500 to 75000 lbs) [3] \n SMALL = 3,\n \n // Large (75000 to 300000 lbs) [4] \n LARGE = 4,\n \n // Very large aircraft (such as B-757) [5] \n HIGH_VORTEX = 5,\n \n // (> 300000 lbs) [6] \n HEAVY = 6,\n \n}\n\n// Return list of ADSBCategoryCode values and their display names\nexport function GetADSBCategoryCodes() : Tuple<ADSBCategoryCode, string>[] {\n\tlet result : Tuple<ADSBCategoryCode, string>[] = [];\n\n \n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.NO_ADSB, 'ADSBCategoryCode.NO_ADSB'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LIGHT, 'ADSBCategoryCode.LIGHT'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.SMALL, 'ADSBCategoryCode.SMALL'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LARGE, 'ADSBCategoryCode.LARGE'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HIGH_VORTEX, 'ADSBCategoryCode.HIGH_VORTEX'))\n\t\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HEAVY, 'ADSBCategoryCode.HEAVY'))\n\t\n\n return result;\n}\n\n// Return map of ADSBCategoryCode values and their display names\nexport function MapADSBCategoryCodes() : Map<ADSBCategoryCode, string> {\n let result = new Map<ADSBCategoryCode, string>();\n\n \n\tresult.set(ADSBCategoryCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(ADSBCategoryCode.NO_ADSB, 'No Adsb');\n\t\n\tresult.set(ADSBCategoryCode.LIGHT, 'Light');\n\t\n\tresult.set(ADSBCategoryCode.SMALL, 'Small');\n\t\n\tresult.set(ADSBCategoryCode.LARGE, 'Large');\n\t\n\tresult.set(ADSBCategoryCode.HIGH_VORTEX, 'High Vortex');\n\t\n\tresult.set(ADSBCategoryCode.HEAVY, 'Heavy');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BillingStatusCode represents a flight billing status: ...\nexport enum BillingStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Unapproved [1] \n UNAPPROVED = 1,\n \n // Approved [2] \n APPROVED = 2,\n \n // Auto invoice created [3] \n CREATED_INVOICE = 3,\n \n // Auto invoice pending [4] \n PENDING_INVOICE = 4,\n \n // Manual invoice [5] \n MANUAL_INVOICE = 5,\n \n // Closed [6] \n CLOSED = 6,\n \n // Credit Client [7] \n CREDIT = 7,\n \n // Cancelled invoice [8] \n CANCELLED = 8,\n \n // Irrelevant status [9] \n CANCELLED_BY_CLIENT = 9,\n \n // Irrelevant status [10] \n IRRELEVANT = 10,\n \n}\n\n// Return list of BillingStatusCode values and their display names\nexport function GetBillingStatusCodes() : Tuple<BillingStatusCode, string>[] {\n\tlet result : Tuple<BillingStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.UNAPPROVED, 'BillingStatusCode.UNAPPROVED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.APPROVED, 'BillingStatusCode.APPROVED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREATED_INVOICE, 'BillingStatusCode.CREATED_INVOICE'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.PENDING_INVOICE, 'BillingStatusCode.PENDING_INVOICE'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.MANUAL_INVOICE, 'BillingStatusCode.MANUAL_INVOICE'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CLOSED, 'BillingStatusCode.CLOSED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREDIT, 'BillingStatusCode.CREDIT'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED, 'BillingStatusCode.CANCELLED'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED_BY_CLIENT, 'BillingStatusCode.CANCELLED_BY_CLIENT'))\n\t\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.IRRELEVANT, 'BillingStatusCode.IRRELEVANT'))\n\t\n\n return result;\n}\n\n// Return map of BillingStatusCode values and their display names\nexport function MapBillingStatusCodes() : Map<BillingStatusCode, string> {\n let result = new Map<BillingStatusCode, string>();\n\n \n\tresult.set(BillingStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(BillingStatusCode.UNAPPROVED, 'Unapproved');\n\t\n\tresult.set(BillingStatusCode.APPROVED, 'Approved');\n\t\n\tresult.set(BillingStatusCode.CREATED_INVOICE, 'Created Invoice');\n\t\n\tresult.set(BillingStatusCode.PENDING_INVOICE, 'Pending Invoice');\n\t\n\tresult.set(BillingStatusCode.MANUAL_INVOICE, 'Manual Invoice');\n\t\n\tresult.set(BillingStatusCode.CLOSED, 'Closed');\n\t\n\tresult.set(BillingStatusCode.CREDIT, 'Credit');\n\t\n\tresult.set(BillingStatusCode.CANCELLED, 'Cancelled');\n\t\n\tresult.set(BillingStatusCode.CANCELLED_BY_CLIENT, 'Cancelled By Client');\n\t\n\tresult.set(BillingStatusCode.IRRELEVANT, 'Irrelevant');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStateCode represents a flight state which can't be modified manually: PENDING | ACTIVE | COMPLETED ...\nexport enum FlightStateCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending (Not started) [1] \n PENDING = 1,\n \n // Active (on flight) [2] \n ACTIVE = 2,\n \n // Completed (Done) [3] \n COMPLETED = 3,\n \n // Cancelled [4] \n CANCELLED = 4,\n \n}\n\n// Return list of FlightStateCode values and their display names\nexport function GetFlightStateCodes() : Tuple<FlightStateCode, string>[] {\n\tlet result : Tuple<FlightStateCode, string>[] = [];\n\n \n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.PENDING, 'FlightStateCode.PENDING'))\n\t\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.ACTIVE, 'FlightStateCode.ACTIVE'))\n\t\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.COMPLETED, 'FlightStateCode.COMPLETED'))\n\t\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.CANCELLED, 'FlightStateCode.CANCELLED'))\n\t\n\n return result;\n}\n\n// Return map of FlightStateCode values and their display names\nexport function MapFlightStateCodes() : Map<FlightStateCode, string> {\n let result = new Map<FlightStateCode, string>();\n\n \n\tresult.set(FlightStateCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(FlightStateCode.PENDING, 'Pending');\n\t\n\tresult.set(FlightStateCode.ACTIVE, 'Active');\n\t\n\tresult.set(FlightStateCode.COMPLETED, 'Completed');\n\t\n\tresult.set(FlightStateCode.CANCELLED, 'Cancelled');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LeadStatusCode represents the lead status: NEW | INPROCESS | ASSIGNED ...\nexport enum LeadStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // New Lead [1] \n NEW = 1,\n \n // Lead in process [2] \n INPROCESS = 2,\n \n // Lead Assigned [3] \n ASSIGNED = 3,\n \n // Lead converted [4] \n CONVERTED = 4,\n \n // Lead irrelevant [5] \n IRRELEVANT = 5,\n \n // Lead redirected [6] \n REDIRECTED = 6,\n \n // Followup action required after successful conversion [7] \n FOLLOWUP = 7,\n \n}\n\n// Return list of LeadStatusCode values and their display names\nexport function GetLeadStatusCodes() : Tuple<LeadStatusCode, string>[] {\n\tlet result : Tuple<LeadStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.NEW, 'LeadStatusCode.NEW'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.INPROCESS, 'LeadStatusCode.INPROCESS'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.ASSIGNED, 'LeadStatusCode.ASSIGNED'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.CONVERTED, 'LeadStatusCode.CONVERTED'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.IRRELEVANT, 'LeadStatusCode.IRRELEVANT'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.REDIRECTED, 'LeadStatusCode.REDIRECTED'))\n\t\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.FOLLOWUP, 'LeadStatusCode.FOLLOWUP'))\n\t\n\n return result;\n}\n\n// Return map of LeadStatusCode values and their display names\nexport function MapLeadStatusCodes() : Map<LeadStatusCode, string> {\n let result = new Map<LeadStatusCode, string>();\n\n \n\tresult.set(LeadStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(LeadStatusCode.NEW, 'New');\n\t\n\tresult.set(LeadStatusCode.INPROCESS, 'Inprocess');\n\t\n\tresult.set(LeadStatusCode.ASSIGNED, 'Assigned');\n\t\n\tresult.set(LeadStatusCode.CONVERTED, 'Converted');\n\t\n\tresult.set(LeadStatusCode.IRRELEVANT, 'Irrelevant');\n\t\n\tresult.set(LeadStatusCode.REDIRECTED, 'Redirected');\n\t\n\tresult.set(LeadStatusCode.FOLLOWUP, 'Followup');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// OperatorCode represents a math operator\nexport enum OperatorCode {\n \n}\n\n// Return list of OperatorCode values and their display names\nexport function GetOperatorCodes() : Tuple<OperatorCode, string>[] {\n\tlet result : Tuple<OperatorCode, string>[] = [];\n\n \n\n return result;\n}\n\n// Return map of OperatorCode values and their display names\nexport function MapOperatorCodes() : Map<OperatorCode, string> {\n let result = new Map<OperatorCode, string>();\n\n \n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TransactionTypeCode represents the credit transaction type\nexport enum TransactionTypeCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Payment for Flight auto charged by the system (Debit) - Auto calculated from flight diary [1] \n FLIGHT = 1,\n \n // Payment for Instruction (Debit) [2] \n INSTRUCTION = 2,\n \n // Payment for Purchasing a Product / Service (Debit) [3] \n PURCHASE = 3,\n \n // Credit from client (Credit) [4] \n PAYMENT = 4,\n \n // Bonus added to client (Credit) [5] \n BONUS = 5,\n \n // Refund for client (Credit) [6] \n REFUND = 6,\n \n}\n\n// Return list of TransactionTypeCode values and their display names\nexport function GetTransactionTypeCodes() : Tuple<TransactionTypeCode, string>[] {\n\tlet result : Tuple<TransactionTypeCode, string>[] = [];\n\n \n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.FLIGHT, 'TransactionTypeCode.FLIGHT'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.INSTRUCTION, 'TransactionTypeCode.INSTRUCTION'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PURCHASE, 'TransactionTypeCode.PURCHASE'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PAYMENT, 'TransactionTypeCode.PAYMENT'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.BONUS, 'TransactionTypeCode.BONUS'))\n\t\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.REFUND, 'TransactionTypeCode.REFUND'))\n\t\n\n return result;\n}\n\n// Return map of TransactionTypeCode values and their display names\nexport function MapTransactionTypeCodes() : Map<TransactionTypeCode, string> {\n let result = new Map<TransactionTypeCode, string>();\n\n \n\tresult.set(TransactionTypeCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(TransactionTypeCode.FLIGHT, 'Flight');\n\t\n\tresult.set(TransactionTypeCode.INSTRUCTION, 'Instruction');\n\t\n\tresult.set(TransactionTypeCode.PURCHASE, 'Purchase');\n\t\n\tresult.set(TransactionTypeCode.PAYMENT, 'Payment');\n\t\n\tresult.set(TransactionTypeCode.BONUS, 'Bonus');\n\t\n\tresult.set(TransactionTypeCode.REFUND, 'Refund');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingTypeFlag represents the booking type: LESSON | PATTERN | RENTAL | WORK | SIM ...\nexport enum BookingTypeFlag {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Flight lesson [1] \n LESSON = 1,\n \n // Flight lesson for patterns [2] \n PATTERNS = 2,\n \n // Book for rental [3] \n RENTAL = 3,\n \n // Book for Introductory Flight [4] \n INTRODUCTORY = 4,\n \n // Book for Simulator [5] \n SIMULATOR = 5,\n \n // Book for aerial photography mission [6] \n PHOTO = 6,\n \n // Book for other mission [7] \n MISSION = 7,\n \n // Book for maintenance [8] \n MAINTENANCE = 8,\n \n}\n\n// Return list of BookingTypeFlag values and their display names\nexport function GetBookingTypeFlags() : Tuple<BookingTypeFlag, string>[] {\n\tlet result : Tuple<BookingTypeFlag, string>[] = [];\n\n \n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.LESSON, 'BookingTypeFlag.LESSON'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PATTERNS, 'BookingTypeFlag.PATTERNS'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.RENTAL, 'BookingTypeFlag.RENTAL'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.INTRODUCTORY, 'BookingTypeFlag.INTRODUCTORY'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.SIMULATOR, 'BookingTypeFlag.SIMULATOR'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PHOTO, 'BookingTypeFlag.PHOTO'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MISSION, 'BookingTypeFlag.MISSION'))\n\t\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MAINTENANCE, 'BookingTypeFlag.MAINTENANCE'))\n\t\n\n return result;\n}\n\n// Return map of BookingTypeFlag values and their display names\nexport function MapBookingTypeFlags() : Map<BookingTypeFlag, string> {\n let result = new Map<BookingTypeFlag, string>();\n\n \n\tresult.set(BookingTypeFlag.UNDEFINED, 'Undefined');\n\t\n\tresult.set(BookingTypeFlag.LESSON, 'Lesson');\n\t\n\tresult.set(BookingTypeFlag.PATTERNS, 'Patterns');\n\t\n\tresult.set(BookingTypeFlag.RENTAL, 'Rental');\n\t\n\tresult.set(BookingTypeFlag.INTRODUCTORY, 'Introductory');\n\t\n\tresult.set(BookingTypeFlag.SIMULATOR, 'Simulator');\n\t\n\tresult.set(BookingTypeFlag.PHOTO, 'Photo');\n\t\n\tresult.set(BookingTypeFlag.MISSION, 'Mission');\n\t\n\tresult.set(BookingTypeFlag.MAINTENANCE, 'Maintenance');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PriorityCode represents a priority: LOW | MEDIUM | HIGH\nexport enum PriorityCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // No priority [1] \n NONE = 1,\n \n // Low priority [2] \n LOW = 2,\n \n // Medium priority [3] \n MEDIUM = 3,\n \n // High priority [4] \n HIGH = 4,\n \n}\n\n// Return list of PriorityCode values and their display names\nexport function GetPriorityCodes() : Tuple<PriorityCode, string>[] {\n\tlet result : Tuple<PriorityCode, string>[] = [];\n\n \n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.NONE, 'PriorityCode.NONE'))\n\t\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.LOW, 'PriorityCode.LOW'))\n\t\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.MEDIUM, 'PriorityCode.MEDIUM'))\n\t\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.HIGH, 'PriorityCode.HIGH'))\n\t\n\n return result;\n}\n\n// Return map of PriorityCode values and their display names\nexport function MapPriorityCodes() : Map<PriorityCode, string> {\n let result = new Map<PriorityCode, string>();\n\n \n\tresult.set(PriorityCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(PriorityCode.NONE, 'None');\n\t\n\tresult.set(PriorityCode.LOW, 'Low');\n\t\n\tresult.set(PriorityCode.MEDIUM, 'Medium');\n\t\n\tresult.set(PriorityCode.HIGH, 'High');\n\t\n\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TicketStatusCode represents a flight ticket status: ...\nexport enum TicketStatusCode {\n \n // Undefined [0] \n UNDEFINED = 0,\n \n // Pending [1] \n PENDING = 1,\n \n // Sent to client [2] \n SENT = 2,\n \n}\n\n// Return list of TicketStatusCode values and their display names\nexport function GetTicketStatusCodes() : Tuple<TicketStatusCode, string>[] {\n\tlet result : Tuple<TicketStatusCode, string>[] = [];\n\n \n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.PENDING, 'TicketStatusCode.PENDING'))\n\t\n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.SENT, 'TicketStatusCode.SENT'))\n\t\n\n return result;\n}\n\n// Return map of TicketStatusCode values and their display names\nexport function MapTicketStatusCodes() : Map<TicketStatusCode, string> {\n let result = new Map<TicketStatusCode, string>();\n\n \n\tresult.set(TicketStatusCode.UNDEFINED, 'Undefined');\n\t\n\tresult.set(TicketStatusCode.PENDING, 'Pending');\n\t\n\tresult.set(TicketStatusCode.SENT, 'Sent');\n\t\n\n return result;\n}\n","\nimport { Location } from '.';\n\n\n\n// ADSBState model represents the ADSB real time state of an airplane\nexport class ADSBState {\n \n // Unique ICAO 24-bit address of the transponder in hex string representation \n public icaoAddr: string;\n \n // Callsign of the vehicle (8 chars). Can be null if no callsign has been received \n public callsign: string;\n \n // Country name inferred from the ICAO 24-bit address \n public origin: string;\n \n // Unix timestamp (seconds) for the last position update. Can be null if no position report was received by OpenSky within the past 15s \n public timePosition: number;\n \n // Unix timestamp (seconds) for the last update in general. This field is updated for any new, valid message received from the transponder \n public lastContact: number;\n \n // WGS-84 location and Geometric altitude \n public location: Location;\n \n // Boolean value which indicates if the position was retrieved from a surface position report \n public on_ground: boolean;\n \n // Velocity over ground in m/s. Can be null. \n public velocity: number;\n \n // True track in decimal degrees clockwise from north (north=0°). Can be null. \n public track: number;\n \n // Vertical rate in m/s. A positive value indicates that the airplane is climbing, a negative value indicates that it descends. Can be null \n public vertical: number;\n \n // IDs of the receivers which contributed to this state vector. Is null if no filtering for sensor was used in the request \n public sensors: number[];\n \n // Barometric altitude in meters. Can be null. \n public barometer: number;\n \n // The transponder code aka Squawk \n public squawk: string;\n \n // Whether flight status indicates special purpose indicator \n public spi: boolean;\n \n constructor(icaoAddr?: string, callsign?: string, origin?: string, timePosition?: number, lastContact?: number, location?: Location, onGround?: boolean, velocity?: number, track?: number, vertical?: number, sensors?: number[], barometer?: number, squawk?: string, sPI?: boolean) { \n if (icaoAddr !== undefined) { this.icaoAddr = icaoAddr; }\n if (callsign !== undefined) { this.callsign = callsign; }\n if (origin !== undefined) { this.origin = origin; }\n if (timePosition !== undefined) { this.timePosition = timePosition; }\n if (lastContact !== undefined) { this.lastContact = lastContact; }\n if (location !== undefined) { this.location = location; }\n if (onGround !== undefined) { this.on_ground = onGround; }\n if (velocity !== undefined) { this.velocity = velocity; }\n if (track !== undefined) { this.track = track; }\n if (vertical !== undefined) { this.vertical = vertical; }\n if (sensors !== undefined) { this.sensors = sensors; }\n if (barometer !== undefined) { this.barometer = barometer; }\n if (squawk !== undefined) { this.squawk = squawk; }\n if (sPI !== undefined) { this.spi = sPI; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { AirplaneValidationFlag } from '.';\nimport { Engine } from '.';\nimport { Magneto } from '.';\nimport { Propeller } from '.';\nimport { Fuel } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { AirplaneStatusCode } from '.';\n\n\n\n// Airplane entity represents an airplane\nexport class Airplane extends BaseEntityEx {\n \n // Name \n public name: string;\n \n // Description \n public description: string;\n \n // Airplane model \n public model: string;\n \n // Airplane serial number \n public serialNo: string;\n \n // Airplane status \n public status: AirplaneStatusCode;\n \n // Auto-calculated flag to mark if the airplane is active (available) or not \n public isActive: boolean;\n \n // Airplane hobs counter \n public hobs: number;\n \n // Airplane tachometer counter \n public tach: number;\n \n // Airplane next tachometer for inspection \n public nextTach: number;\n \n // Airplane air time (hours) \n public airTime: number;\n \n // Airplane customer number \n public customerNo: string;\n \n // Airworthiness flags \n public airworthiness: AirplaneValidationFlag;\n \n // Airworthiness required flags for the airplane to be active \n public required: AirplaneValidationFlag;\n \n // Fixed value to first flight \n public fixedValueToFirstFlight: number;\n \n // AC total time \n public acTotalTime: number;\n \n // Single / Left Engine indicators \n public engine: Engine;\n \n // Left Magneto indicators \n public leftMagneto: Magneto;\n \n // Right Magneto indicators \n public rightMagneto: Magneto;\n \n // Single / Left Propeller indicators \n public propeller: Propeller;\n \n // Fuel indicators \n public fuel: Fuel;\n \n // Airplane related documents \n public documents: string[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetAirplaneColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"model\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"serialNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AirplaneStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isActive\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"airTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"customerNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airworthiness\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"required\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fixedValueToFirstFlight\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"acTotalTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"engine\", \"Engine\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leftMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"rightMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"propeller\", \"Propeller\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuel\", \"Fuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documents\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// BillingRecord is a single record in the total billing of the flight\nexport class BillingRecord {\n \n // Billing record key - for \n public key: number;\n \n // Billing units - quantity_c / quantity_2_c \n public units: number;\n \n // Price per Unit - price_c / price_2_c \n public unitPrice: number;\n \n // Base factor (0 means no factor) \n public baseRate: number;\n \n // Description for Invoice - invoice_description_c / invoice_description_2_c \n public description: string;\n \n // Flag to indicate if VAT included (false) or Exempt (true) \n public exempt: boolean;\n \n constructor(key?: number, units?: number, unitPrice?: number, baseRate?: number, description?: string, exempt?: boolean) { \n if (key !== undefined) { this.key = key; }\n if (units !== undefined) { this.units = units; }\n if (unitPrice !== undefined) { this.unitPrice = unitPrice; }\n if (baseRate !== undefined) { this.baseRate = baseRate; }\n if (description !== undefined) { this.description = description; }\n if (exempt !== undefined) { this.exempt = exempt; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// DepartureRisks group of departure risk values\nexport class DepartureRisks {\n \n // Mountainous airport \n public mountainousAirport: number;\n \n // Control tower not operational at ETD \n public towerNotOperationalAtEtd: number;\n \n // Departure - Non-towered airport \n public nonToweredAirport: number;\n \n // Departure - Wet Runway \n public wetRunway: number;\n \n // Departure - Contaminated Runway \n public contaminatedRunway: number;\n \n constructor(mountainousAirport?: number, towerNotOperationalAtEtd?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEtd !== undefined) { this.towerNotOperationalAtEtd = towerNotOperationalAtEtd; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TicketStatusCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightTicket entity is a single flight in the airplane\nexport class FlightTicket extends BaseEntityEx {\n \n // Flight ticket name \n public name: string;\n \n // Flight ticket description \n public description: string;\n \n // Flight ticket number \n public ticketNumber: number;\n \n // Flight number \n public flightNumber: number;\n \n // Flight Id \n public flightId: string;\n \n // Flight ticket status: PENDING | SENT ... \n public status: TicketStatusCode;\n \n // Customer name \n public customerName: string;\n \n // Customer email \n public customerEmail: string;\n \n // Customer mobile phone \n public customerMobile: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightTicketColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"ticketNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"TicketStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerEmail\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerMobile\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\nimport { BookingStatusCode } from '.';\n\n\n\n// BookingsFilter list of fields to filter bookings\nexport class BookingsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by time frame \n public period: TimeFrame;\n \n // Filter by Account ID \n public accountId: string;\n \n // Filter by Contact ID \n public contactId: string;\n \n // Filter by Airplane ID (when the booking is approved) \n public airplaneId: string;\n \n // Filter by Status(es) of booking \n public status: BookingStatusCode[];\n \n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, status?: BookingStatusCode[]) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (status !== undefined) { this.status = status; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightPurposeCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Price entity is a single pricing of an airplane per flight purpose in the price list\nexport class Price extends BaseEntityEx {\n \n // Price item name \n public name: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Special price for a specific account (* for all accounts) \n public accountId: string;\n \n // Special price for a specific purpose (UNDEFINED for all) \n public purpose: FlightPurposeCode;\n \n // Cost of the airplane per flight purpose \n public cost: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetPriceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"cost\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { StatusCode } from '.';\n\n\n\n// ContactsFilter list of fields to filter contacts\nexport class ContactsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by status(es) \n public status: StatusCode[];\n \n // Flag indicating if this contact is a pilot \n public isPilot: boolean;\n \n constructor(search?: string, status?: StatusCode[], isPilot?: boolean) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isPilot !== undefined) { this.isPilot = isPilot; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { UserTypeCode } from '.';\nimport { UserStatusCode } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// UsersFilter list of fields to filter users\nexport class UsersFilter {\n \n // Filter by text search on name / id / email (using * wildcard) \n public search: string;\n \n // Filter by type(s) \n public type: UserTypeCode[];\n \n // Filter by status(s) \n public status: UserStatusCode[];\n \n // Filter by time frame of last sign in \n public lastSignIn: TimeFrame;\n \n constructor(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], lastSignIn?: TimeFrame) { \n if (search !== undefined) { this.search = search; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (lastSignIn !== undefined) { this.lastSignIn = lastSignIn; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { FlightTypeCode } from '.';\nimport { FlightPurposeCode } from '.';\nimport { OnBoard } from '.';\nimport { TOLData } from '.';\nimport { ReFuel } from '.';\nimport { Lesson } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// PostFlightData model represents pre-flight information\nexport class PostFlightData extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Captain / Instructor contact ID - replace OnBoard \n public captain: string;\n \n // First Officer / Student contact ID - replace OnBoard \n public firstOfficer: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Crew and Passengers on board \n public onBoard: OnBoard;\n \n // Flight attending time [YYYY-MM-DD HH:mm] \n public attendingTime: string;\n \n // Flight boarding time [YYYY-MM-DD HH:mm] \n public boardingTime: string;\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Flight has competency certification \n public hasCompetency: boolean;\n \n // Flight has a flight plan \n public hasFlightPlan: boolean;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Fuel status before and after flight \n public fuelStatus: ReFuel;\n \n // Oil status before and after flight \n public oilStatus: ReFuel;\n \n // Flight lesson attributes \n public lesson: Lesson;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetPostFlightDataColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"onBoard\", \"OnBoard\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasCompetency\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasFlightPlan\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"oilStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightPassenger entity is a passenger in the flight\nexport class FlightPassenger extends BaseEntityEx {\n \n // Flight ID \n public flightId: string;\n \n // Flight Number \n public flightNumber: number;\n \n // Passenger name \n public name: string;\n \n // Passenger Mobile phone \n public mobile: string;\n \n // Passenger Email address \n public email: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightPassengerColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { AccountStatusCode } from '.';\n\n\n\n// AccountsFilter list of fields to filter accounts\nexport class AccountsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // by status(s) \n public status: AccountStatusCode[];\n \n constructor(search?: string, status?: AccountStatusCode[]) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { LeadStatusCode } from '.';\n\n\n\n// LeadsFilter list of fields to filter leads\nexport class LeadsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by status(s) \n public status: LeadStatusCode[];\n \n constructor(search?: string, status?: LeadStatusCode[]) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { MaintenanceActionCode } from '.';\nimport { StatusCode } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// MaintenancesFilter list of fields to filter maintenance\nexport class MaintenancesFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by airplane ID \n public airplaneId: string;\n \n // Filter by action(s) \n public action: MaintenanceActionCode[];\n \n // Filter by status(s) \n public status: StatusCode[];\n \n // Filter by time frame of valid time \n public valid: TimeFrame;\n \n constructor(search?: string, airplaneId?: string, action?: MaintenanceActionCode[], status?: StatusCode[], valid?: TimeFrame) { \n if (search !== undefined) { this.search = search; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (action !== undefined) { this.action = action; }\n if (status !== undefined) { this.status = status; }\n if (valid !== undefined) { this.valid = valid; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightCategoryCode } from '.';\nimport { InstructionTypeCode } from '.';\n\n\n\n// SyllabusFilter list of fields to filter syllabus\nexport class SyllabusFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by Syllabus plan(s) \n public plan: FlightCategoryCode[];\n \n // Filter by Lesson type(s) \n public type: InstructionTypeCode[];\n \n constructor(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[]) { \n if (search !== undefined) { this.search = search; }\n if (plan !== undefined) { this.plan = plan; }\n if (type !== undefined) { this.type = type; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { SpecialRisks } from '.';\nimport { Mitigation } from '.';\nimport { PilotQualificationsRisks } from '.';\nimport { CrewDutyDayRisks } from '.';\nimport { TripRisks } from '.';\nimport { WeatherRisks } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { DepartureRisks } from '.';\nimport { DestinationRisks } from '.';\n\n\n\n// FlightRisk entity is a data extension for a single flight listing risk assessments and mitigation\n// The ID should be identical to the flight ID\nexport class FlightRisk extends BaseEntityEx {\n \n // Risk assessment time \n public timestamp: number;\n \n // Pilot Qualifications and and Experience risks \n public pilotQualifications: PilotQualificationsRisks;\n \n // Crew Duty Day risks \n public crewDutyDay: CrewDutyDayRisks;\n \n // Departure risks \n public departure: DepartureRisks;\n \n // Destination risks \n public destination: DestinationRisks;\n \n // Trip risks \n public trip: TripRisks;\n \n // Weather risks \n public weather: WeatherRisks;\n \n // Other special risks \n public other: SpecialRisks;\n \n // Risks mitigation strategy \n public mitigation: Mitigation;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightRiskColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"timestamp\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"pilotQualifications\", \"PilotQualificationsRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crewDutyDay\", \"CrewDutyDayRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"DepartureRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"DestinationRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"trip\", \"TripRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"weather\", \"WeatherRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"other\", \"SpecialRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mitigation\", \"Mitigation\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\n\n\n\n// AuditLogFilter list of fields to filter audit log entries\nexport class AuditLogFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by time frame \n public period: TimeFrame;\n \n // Filter by User ID \n public userId: string;\n \n // Filter by action \n public action: string;\n \n // Filter by item type \n public itemType: string;\n \n // Filter by item ID \n public itemId: string;\n \n // Filter by item name \n public itemName: string;\n \n constructor(search?: string, period?: TimeFrame, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (userId !== undefined) { this.userId = userId; }\n if (action !== undefined) { this.action = action; }\n if (itemType !== undefined) { this.itemType = itemType; }\n if (itemId !== undefined) { this.itemId = itemId; }\n if (itemName !== undefined) { this.itemName = itemName; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { StatusCode } from '.';\nimport { ValidationFlag } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// CertificatesFilter list of fields to filter certificates\nexport class CertificatesFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by contact ID \n public contactId: string;\n \n // Filter by status(es) \n public status: StatusCode[];\n \n // Filter by validation type(es) \n public type: ValidationFlag[];\n \n // Filter by time frame of valid until \n public valid: TimeFrame;\n \n constructor(search?: string, contactId?: string, status?: StatusCode[], type?: ValidationFlag[], valid?: TimeFrame) { \n if (search !== undefined) { this.search = search; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (status !== undefined) { this.status = status; }\n if (type !== undefined) { this.type = type; }\n if (valid !== undefined) { this.valid = valid; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TransactionTypeCode } from '.';\nimport { TimeFrame } from '.';\n\n\n\n// CreditsFilter list of fields to filter credits\nexport class CreditsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by account \n public accountId: string;\n \n // Filter by flight \n public flightId: string;\n \n // Filter by transaction type(s) \n public type: TransactionTypeCode[];\n \n // Filter by time frame of transaction time \n public period: TimeFrame;\n \n // Filter by reference \n public reference: string;\n \n constructor(search?: string, accountId?: string, flightId?: string, type?: TransactionTypeCode[], period?: TimeFrame, reference?: string) { \n if (search !== undefined) { this.search = search; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (flightId !== undefined) { this.flightId = flightId; }\n if (type !== undefined) { this.type = type; }\n if (period !== undefined) { this.period = period; }\n if (reference !== undefined) { this.reference = reference; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { BookingTypeFlag } from '.';\nimport { FlightPurposeCode } from '.';\nimport { FlightStatusCode } from '.';\n\n\n\n// BookingPlan entity is a subset of booking and flight union for booking planning tools\nexport class BookingPlan extends BaseEntityEx {\n \n // Name \n public name: string;\n \n // Description \n public description: string;\n \n // Flag to mark entry as flight or booking \n public isFlight: boolean;\n \n // Account ID \n public accountId: string;\n \n // Account Name \n public accountName: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Airplane ID \n public airplaneName: string;\n \n // Type of booking \n public type: BookingTypeFlag;\n \n // When to ask for the airplane [Epoch milliseconds] \n public placementOn: number;\n \n // When to return the airplane [Epoch milliseconds] \n public placementTo: number;\n \n // Flight number (for flights only) \n public flightNumber: number;\n \n // Flight ID (for flights only) \n public flightId: string;\n \n // Purpose of the flight (for flights only) \n public flightPurpose: FlightPurposeCode;\n \n // Status of flight (for flights only) \n public flightStatus: FlightStatusCode;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFlight\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightPurpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightStatus\", \"FlightStatusCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BillingRecord } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightBilling entity is a data extension for a single flight listing all billing details of this flight\n// The ID should be identical to the flight ID\nexport class FlightBilling extends BaseEntityEx {\n \n // Billing invoice records \n public invoiceRecords: BillingRecord[];\n \n // Billing invoice issue date [epoch time milliseconds] \n public invoiceDate: number;\n \n // Discount percentage (0 .. 100) - percentage_discount \n public discountPercentage: number;\n \n // Total before VAT - total_charge_c \n public totalBeforeVat: number;\n \n // Total including VAT - total_charge_inc_vat_bef_dis_c \n public totalAfterVat: number;\n \n // Total charge including VAT after discount - total_charge_includes_vat_c \n public totalAfterDiscount: number;\n \n // Pilot payment - pilot_requested_payment_c \n public pilotPayment: number;\n \n // Pilot payment status - pilot_payment_status_c \n public pilotPaymentStatus: string;\n \n // Pilot payment - lbl_first_officer_payment_c \n public firstOfficerPayment: number;\n \n // Pilot payment status - lbl_firts_officer_payment_st_c \n public firstOfficerPaymentStatus: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightBillingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceRecords\", \"BillingRecord\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"discountPercentage\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalBeforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterDiscount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPaymentStatus\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPaymentStatus\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// SpecialRisks group of special / other risk values\nexport class SpecialRisks {\n \n // Special Flight Permit operation (ferry permit) \n public specialFlightPermit: number;\n \n // MEL / CDL Items (items related to safety of flight) \n public specialMelCdlItems: number;\n \n // Special flight limitations based on AFM equipment limitations \n public specialFlightLimitAfm: number;\n \n constructor(specialFlightPermit?: number, specialMelCdlItems?: number, specialFlightLimitAfm?: number) { \n if (specialFlightPermit !== undefined) { this.specialFlightPermit = specialFlightPermit; }\n if (specialMelCdlItems !== undefined) { this.specialMelCdlItems = specialMelCdlItems; }\n if (specialFlightLimitAfm !== undefined) { this.specialFlightLimitAfm = specialFlightLimitAfm; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightTypeCode } from '.';\nimport { FlightStatusCode } from '.';\nimport { FlightStateCode } from '.';\nimport { FlightPurposeCode } from '.';\nimport { TOLData } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// FlightPlan entity is a subset of flight for flight planning tools\nexport class FlightPlan extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Account ID \n public accountId: string;\n \n // Account Name \n public accountName: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Airplane ID \n public airplaneName: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Flight status: REGISTERED | DELETE | CANCELLED ... \n public status: FlightStatusCode;\n \n // Flight actual state PENDING | ACTIVE | COMPLETED (can't be manually modified): ... \n public state: FlightStateCode;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Captain ID \n public captainId: string;\n \n // Captain Name \n public captainName: string;\n \n // First Officer / Student contact Id \n public firstOfficerId: string;\n \n // First Officer / Student contact Name \n public firstOfficerName: string;\n \n // Passengers names \n public passengers: string[];\n \n // Crew members (name:role) \n public crew: string[];\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Landing data \n public landing: TOLData;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"state\", \"FlightStateCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"passengers\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crew\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { MaintenanceActionCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { StatusCode } from '.';\n\n\n\n// Maintenance entity is an airplane airworthiness certificate\nexport class Maintenance extends BaseEntityEx {\n \n // Maintenance name \n public name: string;\n \n // Maintenance description \n public description: string;\n \n // Linked airplane ID \n public airplaneId: string;\n \n // Linked document ID \n public documentId: string;\n \n // Airplane hobs counter \n public hobs: number;\n \n // Airplane next hobs for inspection \n public nextHobs: number;\n \n // Airplane tachometer counter \n public tach: number;\n \n // Airplane next tachometer for inspection \n public nextTach: number;\n \n // Maintenance Certificate is valid until the timestamp [epoch time milliseconds] \n public validUntil: number;\n \n // Maintenance workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n public status: StatusCode;\n \n // Airworthiness component code \n public component: string;\n \n // Airworthiness action code \n public action: MaintenanceActionCode;\n \n // Time of notification sent to contact [epoch time milliseconds] \n public notifyAt: number;\n \n // Notification subject \n public subject: string;\n \n // Notification message \n public message: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetMaintenanceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextHobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"component\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"MaintenanceActionCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// LoginParams model used for authorize user by email or by SMS\nexport class LoginParams {\n \n // User email for login authentication or mail verification \n public email: string;\n \n // User mobile phone for SMS verification \n public mobile: string;\n \n // User token if he wsa already authenticated \n public token: string;\n \n constructor(email?: string, mobile?: string, token?: string) { \n if (email !== undefined) { this.email = email; }\n if (mobile !== undefined) { this.mobile = mobile; }\n if (token !== undefined) { this.token = token; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { AccountStatusCode } from '.';\nimport { Address } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// Account entity is a billing account in the system\nexport class Account extends BaseEntityEx {\n \n // Account name \n public name: string;\n \n // Account english name \n public enName: string;\n \n // Account description \n public description: string;\n \n // Account status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPENDED \n public status: AccountStatusCode;\n \n // Office / Landline phone \n public phone: string;\n \n // Mobile phone \n public mobile: string;\n \n // Email address \n public email: string;\n \n // Billing address \n public billingAddress: Address;\n \n // Shipping address \n public shippingAddress: Address;\n \n // Campaign Id \n public campaignId: string;\n \n // Is credit enabled for this account \n public enableCredit: boolean;\n \n // Current account credit \n public currentCredit: number;\n \n // Base rate for billing \n public baseRate: number;\n \n // Permanent discount (percentage) \n public percentageDiscount: number;\n \n // Green invoice Id \n public invoiceId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetAccountColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billingAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"shippingAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enableCredit\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"currentCredit\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"percentageDiscount\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { UserTypeCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// AuditLog entity is a log entry in the audit log to track users / service account actions\nexport class AuditLog extends BaseEntityEx {\n \n // User Id \n public userId: string;\n \n // User type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n public userType: UserTypeCode;\n \n // Action that was performed \n public action: string;\n \n // Item type \n public itemType: string;\n \n // Item Id \n public itemId: string;\n \n // Item Name \n public itemName: string;\n \n // Item value before change [Json] \n public beforeChange: string;\n \n // Item delta after change [Json] \n public afterChange: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetAuditLogColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"userId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"userType\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"beforeChange\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"afterChange\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { Billing } from '.';\nimport { RiskAssessment } from '.';\nimport { FlightStateCode } from '.';\nimport { FlightCategoryCode } from '.';\nimport { FlightTypeCode } from '.';\nimport { ReFuel } from '.';\nimport { FlightClassCode } from '.';\nimport { BillingStatusCode } from '.';\nimport { OnBoard } from '.';\nimport { FlightPurposeCode } from '.';\nimport { TOLData } from '.';\nimport { Lesson } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { FlightStatusCode } from '.';\n\n\n\n// Flight entity is a single flight in the airplane\nexport class Flight extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Account ID \n public accountId: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Captain / Instructor contact ID - replace OnBoard \n public captain: string;\n \n // First Officer / Student contact ID - replace OnBoard \n public firstOfficer: string;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Flight class - replace purpose \n public flightClass: FlightClassCode;\n \n // Flight sub-class - replace purpose \n public flightCategory: FlightCategoryCode;\n \n // Flight type: CVFR | IFR \n public type: FlightTypeCode;\n \n // Flight status: REGISTERED | DELETE | CANCELLED ... \n public status: FlightStatusCode;\n \n // Flight actual state PENDING | ACTIVE | COMPLETED (can't be manually modified): ... \n public state: FlightStateCode;\n \n // Billing status \n public billingStatus: BillingStatusCode;\n \n // Crew and Passengers on board \n public onBoard: OnBoard;\n \n // Flight attending time [YYYY-MM-DD HH:mm] \n public attendingTime: string;\n \n // Flight boarding time [YYYY-MM-DD HH:mm] \n public boardingTime: string;\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Landing data \n public landing: TOLData;\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Flight has competency certification - OBSOLETE \n public hasCompetency: boolean;\n \n // Flight has a flight plan - OBSOLETE \n public hasFlightPlan: boolean;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Fuel status before and after flight - OBSOLETE \n public fuelStatus: ReFuel;\n \n // Oil status before and after flight - OBSOLETE \n public oilStatus: ReFuel;\n \n // Fuel level \n public fuelLevel: number;\n \n // Oil level \n public oilLevel: number;\n \n // Flight lesson attributes \n public lesson: Lesson;\n \n // Flight billing information \n public billing: Billing;\n \n // Pilot certification check ? \n public pilotCertCheck: number;\n \n // Risk Assessment Tool & Mitigation Strategies \n public riskAssessment: RiskAssessment;\n \n // Contact Id of the pre-flight form reporter \n public preFlightReporter: string;\n \n // Contact Id of the post-flight form reporter \n public postFlightReporter: string;\n \n // Booking Id reference \n public bookingReference: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetFlightColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightClass\", \"FlightClassCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightCategory\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"state\", \"FlightStateCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billingStatus\", \"BillingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"onBoard\", \"OnBoard\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasCompetency\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasFlightPlan\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"oilStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"oilLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billing\", \"Billing\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotCertCheck\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"riskAssessment\", \"RiskAssessment\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"postFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingReference\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { DestinationRisks } from '.';\nimport { TripRisks } from '.';\nimport { WeatherRisks } from '.';\nimport { SpecialRisks } from '.';\nimport { Mitigation } from '.';\nimport { PilotQualificationsRisks } from '.';\nimport { CrewDutyDayRisks } from '.';\nimport { DepartureRisks } from '.';\n\n\n\n// RiskAssessment Risk Assessment Tool & Mitigation Strategies\nexport class RiskAssessment {\n \n // Risk assessment time \n public timestamp: number;\n \n // Pilot Qualifications and and Experience risks \n public pilotQualifications: PilotQualificationsRisks;\n \n // Crew Duty Day risks \n public crewDutyDay: CrewDutyDayRisks;\n \n // Departure risks \n public departure: DepartureRisks;\n \n // Destination risks \n public destination: DestinationRisks;\n \n // Trip risks \n public trip: TripRisks;\n \n // Weather risks \n public weather: WeatherRisks;\n \n // Other special risks \n public other: SpecialRisks;\n \n // Risks mitigation strategy \n public mitigation: Mitigation;\n \n constructor(timestamp?: number, pilotQualifications?: PilotQualificationsRisks, crewDutyDay?: CrewDutyDayRisks, departure?: DepartureRisks, destination?: DestinationRisks, trip?: TripRisks, weather?: WeatherRisks, other?: SpecialRisks, mitigation?: Mitigation) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (pilotQualifications !== undefined) { this.pilotQualifications = pilotQualifications; }\n if (crewDutyDay !== undefined) { this.crewDutyDay = crewDutyDay; }\n if (departure !== undefined) { this.departure = departure; }\n if (destination !== undefined) { this.destination = destination; }\n if (trip !== undefined) { this.trip = trip; }\n if (weather !== undefined) { this.weather = weather; }\n if (other !== undefined) { this.other = other; }\n if (mitigation !== undefined) { this.mitigation = mitigation; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// IntKeyValue model used as a string key- (int)value pair\nexport class IntKeyValue {\n \n // Tuple key \n public key: string;\n \n // Tuple value \n public value: number;\n \n constructor(key?: string, value?: number) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// ReFuel includes Fuel and Oil\nexport class ReFuel {\n \n // Refill before flight \n public refillBefore: number;\n \n // Total amount on board \n public amountOnBoard: number;\n \n // Refill after flight \n public refillAfter: number;\n \n constructor(refillBefore?: number, amountOnBoard?: number, refillAfter?: number) { \n if (refillBefore !== undefined) { this.refillBefore = refillBefore; }\n if (amountOnBoard !== undefined) { this.amountOnBoard = amountOnBoard; }\n if (refillAfter !== undefined) { this.refillAfter = refillAfter; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { LessonTypeCode } from '.';\nimport { FlightCategoryCode } from '.';\nimport { LessonSubjectCode } from '.';\nimport { AssessmentCode } from '.';\n\n\n\n// Lesson includes flight instruction lesson details\nexport class Lesson {\n \n // Lesson number - lesson_number \n public number: number;\n \n // Lesson type: INSTRUCTION | INSTRUCTION_CVFR | INSTRUCTION_IFR ... \n public type: LessonTypeCode;\n \n // Flight instruction plan \n public instructionPlan: FlightCategoryCode;\n \n // Lesson topic from the instruction plan syllabus \n public topicId: string;\n \n // Lesson subject by the syllabus - lesson_subject - OBSOLETE \n public subject: string;\n \n // Lesson subject enum by the syllabus - OBSOLETE \n public lessonSubject: LessonSubjectCode;\n \n // Instructor assessment (score) enum - lesson_score \n public assessment: AssessmentCode;\n \n // Pilot / Instructor comments after flight \n public comments: string;\n \n // First Officer / Student flight counter - student_flights_count \n public flightCounter: number;\n \n // Total instructed flight time - from hobbs \n public instructedFlightTime: number;\n \n // Total Instrument flight time - net_instruments_flight_time_c \n public instrumentsFlightTime: number;\n \n // Total student Solo flight time - student_solo_flight_time \n public soloFlightTime: number;\n \n constructor(number?: number, type?: LessonTypeCode, instructionPlan?: FlightCategoryCode, topicId?: string, subject?: string, lessonSubject?: LessonSubjectCode, assessment?: AssessmentCode, comments?: string, flightCounter?: number, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number) { \n if (number !== undefined) { this.number = number; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (topicId !== undefined) { this.topicId = topicId; }\n if (subject !== undefined) { this.subject = subject; }\n if (lessonSubject !== undefined) { this.lessonSubject = lessonSubject; }\n if (assessment !== undefined) { this.assessment = assessment; }\n if (comments !== undefined) { this.comments = comments; }\n if (flightCounter !== undefined) { this.flightCounter = flightCounter; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BillingRecord } from '.';\n\n\n\n// Billing includes flight billing information\nexport class Billing {\n \n // Billing invoice records \n public invoiceRecords: BillingRecord[];\n \n // Billing invoice issue date [epoch time milliseconds] \n public invoiceDate: number;\n \n // Discount percentage (0 .. 100) - percentage_discount \n public discountPercentage: number;\n \n // Total before VAT - total_charge_c \n public totalBeforeVat: number;\n \n // Total including VAT - total_charge_inc_vat_bef_dis_c \n public totalAfterVat: number;\n \n // Total charge including VAT after discount - total_charge_includes_vat_c \n public totalAfterDiscount: number;\n \n // Pilot payment - pilot_requested_payment_c \n public pilotPayment: number;\n \n // Pilot payment status - pilot_payment_status_c \n public pilotPaymentStatus: string;\n \n // Pilot payment - lbl_first_officer_payment_c \n public firstOfficerPayment: number;\n \n // Pilot payment status - lbl_firts_officer_payment_st_c \n public firstOfficerPaymentStatus: string;\n \n constructor(invoiceRecords?: BillingRecord[], invoiceDate?: number, discountPercentage?: number, totalBeforeVAT?: number, totalAfterVAT?: number, totalAfterDiscount?: number, pilotPayment?: number, pilotPaymentStatus?: string, firstOfficerPayment?: number, firstOfficerPaymentStatus?: string) { \n if (invoiceRecords !== undefined) { this.invoiceRecords = invoiceRecords; }\n if (invoiceDate !== undefined) { this.invoiceDate = invoiceDate; }\n if (discountPercentage !== undefined) { this.discountPercentage = discountPercentage; }\n if (totalBeforeVAT !== undefined) { this.totalBeforeVat = totalBeforeVAT; }\n if (totalAfterVAT !== undefined) { this.totalAfterVat = totalAfterVAT; }\n if (totalAfterDiscount !== undefined) { this.totalAfterDiscount = totalAfterDiscount; }\n if (pilotPayment !== undefined) { this.pilotPayment = pilotPayment; }\n if (pilotPaymentStatus !== undefined) { this.pilotPaymentStatus = pilotPaymentStatus; }\n if (firstOfficerPayment !== undefined) { this.firstOfficerPayment = firstOfficerPayment; }\n if (firstOfficerPaymentStatus !== undefined) { this.firstOfficerPaymentStatus = firstOfficerPaymentStatus; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Mitigation risks mitigation strategy\nexport class Mitigation {\n \n // Operations Manager evaluation \n public operationManagerEval: boolean;\n \n // Document mitigation \n public documentMitigation: boolean;\n \n // Mitigation strategies - Risk Assessment Tool \n public mitigationStrategy: string;\n \n // Manager name \n public managerName: string;\n \n // Manager ID number \n public idNumber: string;\n \n // Flight cannot be conducted under noted conditions \n public flightNotApproved: boolean;\n \n // Mitigation followup actions \n public followUpActions: string;\n \n constructor(operationManagerEval?: boolean, documentMitigation?: boolean, mitigationStrategy?: string, managerName?: string, idNumber?: string, flightNotApproved?: boolean, followUpActions?: string) { \n if (operationManagerEval !== undefined) { this.operationManagerEval = operationManagerEval; }\n if (documentMitigation !== undefined) { this.documentMitigation = documentMitigation; }\n if (mitigationStrategy !== undefined) { this.mitigationStrategy = mitigationStrategy; }\n if (managerName !== undefined) { this.managerName = managerName; }\n if (idNumber !== undefined) { this.idNumber = idNumber; }\n if (flightNotApproved !== undefined) { this.flightNotApproved = flightNotApproved; }\n if (followUpActions !== undefined) { this.followUpActions = followUpActions; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ModuleCode } from '.';\nimport { PermissionFlag } from '.';\n\n\n\n// Permission model used to map list of permissions to a module\nexport class Permission {\n \n // Module code \n public module: ModuleCode;\n \n // Permissions (flag) \n public permissions: PermissionFlag;\n \n constructor(module?: ModuleCode, permissions?: PermissionFlag) { \n if (module !== undefined) { this.module = module; }\n if (permissions !== undefined) { this.permissions = permissions; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// TOLData is Takeoff and landing data\nexport class TOLData {\n \n // Planned Time [epoch time milliseconds] \n public planned: number;\n \n // Actual Time [epoch time milliseconds] \n public time: number;\n \n // Hobs count \n public hobs: number;\n \n // Tachometer count \n public tach: number;\n \n // Airport / Field \n public field: string;\n \n // Field Timezone provided as IANA Time zone abbreviation (e.g. IST, CET) or by UTC offset (e.g. +02:00) \n public timezone: string;\n \n constructor(planned?: number, time?: number, hobs?: number, tach?: number, field?: string, timezone?: string) { \n if (planned !== undefined) { this.planned = planned; }\n if (time !== undefined) { this.time = time; }\n if (hobs !== undefined) { this.hobs = hobs; }\n if (tach !== undefined) { this.tach = tach; }\n if (field !== undefined) { this.field = field; }\n if (timezone !== undefined) { this.timezone = timezone; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// PilotQualificationsRisks group of pilot qualifications risk values\nexport class PilotQualificationsRisks {\n \n // Captain with less than 200 hours in aircraft type \n public captLess200Hr: number;\n \n // Captain with less than 100 hours in the last 90 days \n public captLess100Hr90d: number;\n \n // First Officer with less than 200 hours in aircraft type \n public firstOfLess200Hr: number;\n \n // First Officer with less than 100 hours in the last 90 days \n public firstOfLess100Hr90d: number;\n \n constructor(captLess200Hr?: number, captLess100Hr90d?: number, firstOfLess200Hr?: number, firstOfLess100Hr90d?: number) { \n if (captLess200Hr !== undefined) { this.captLess200Hr = captLess200Hr; }\n if (captLess100Hr90d !== undefined) { this.captLess100Hr90d = captLess100Hr90d; }\n if (firstOfLess200Hr !== undefined) { this.firstOfLess200Hr = firstOfLess200Hr; }\n if (firstOfLess100Hr90d !== undefined) { this.firstOfLess100Hr90d = firstOfLess100Hr90d; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// DestinationRisks group of destination risk values\nexport class DestinationRisks {\n \n // Mountainous airport \n public mountainousAirport: number;\n \n // Control tower not operational at ETA \n public towerNotOperationalAtEta: number;\n \n // Destination - Non-towered airport \n public nonToweredAirport: number;\n \n // Destination - Wet Runway \n public wetRunway: number;\n \n // Destination - Contaminated Runway \n public contaminatedRunway: number;\n \n // Stopping distance greater than 80% of available runway \n public stoppingDistanceOver80p: number;\n \n // Runway braking action less than good - rv_runw_brakin_actionless_t_c \n public runwayBreakingLessGood: number;\n \n // Approach w/o vertical guidance (best available approach) - rv_approach_w_o_vertical_gui_c \n public approachWoVerticalGuide: number;\n \n // Circling approach (best available approach) - rv_circling_approach_best_av_c \n public circlingApproach: number;\n \n // No published approaches - rv_no_published_approaches_c \n public noPublishedApproaches: number;\n \n // Alternate airport not selected - rv_alternate_airport_not_sel_c \n public noAlternateAirport: number;\n \n // Destination - Elevation of primary airport greater than 5,000 ft. MSL - rv_destelevtio_of_primary_ai_c \n public airportElevOver5KFts: number;\n \n constructor(mountainousAirport?: number, towerNotOperationalAtEta?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number, stoppingDistanceOver80p?: number, runwayBreakingLessGood?: number, approachWoVerticalGuide?: number, circlingApproach?: number, noPublishedApproaches?: number, noAlternateAirport?: number, airportElevOver5KFts?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEta !== undefined) { this.towerNotOperationalAtEta = towerNotOperationalAtEta; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n if (stoppingDistanceOver80p !== undefined) { this.stoppingDistanceOver80p = stoppingDistanceOver80p; }\n if (runwayBreakingLessGood !== undefined) { this.runwayBreakingLessGood = runwayBreakingLessGood; }\n if (approachWoVerticalGuide !== undefined) { this.approachWoVerticalGuide = approachWoVerticalGuide; }\n if (circlingApproach !== undefined) { this.circlingApproach = circlingApproach; }\n if (noPublishedApproaches !== undefined) { this.noPublishedApproaches = noPublishedApproaches; }\n if (noAlternateAirport !== undefined) { this.noAlternateAirport = noAlternateAirport; }\n if (airportElevOver5KFts !== undefined) { this.airportElevOver5KFts = airportElevOver5KFts; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { Address } from '.';\nimport { LeadStatusCode } from '.';\n\n\n\n// Lead entity is a lead in the CRM system\nexport class Lead extends BaseEntityEx {\n \n // First name \n public firstName: string;\n \n // Last name \n public lastName: string;\n \n // Account description \n public description: string;\n \n // Office / Landline phone \n public phone: string;\n \n // Office / Landline fax \n public fax: string;\n \n // Mobile phone \n public mobile: string;\n \n // Email address \n public email: string;\n \n // Primary address \n public primaryAddress: Address;\n \n // Lead source \n public leadSource: string;\n \n // Lead source description \n public leadSourceDescription: string;\n \n // Campaign Id \n public campaignId: string;\n \n // Lead status: UNDEFINED | NEW | INPROCESS | ASSIGNED | ... \n public status: LeadStatusCode;\n \n // Referred by \n public referredBy: string;\n \n // Notes \n public notes: string;\n \n // Assigned to user \n public assignedTo: string;\n \n // \n public price: number;\n \n // \n public commission: number;\n \n // \n public totalCost: number;\n \n // \n public commissionPaid: boolean;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLeadColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"firstName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fax\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"primaryAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSource\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSourceDescription\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"LeadStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"referredBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"assignedTo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"price\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"commission\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"commissionPaid\", \"boolean\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { UserTypeCode } from '.';\nimport { UserStatusCode } from '.';\n\n\n\n// TokenData model represents user in account which is encrypted with the JWT token\nexport class TokenData {\n \n // Authenticated subject ID (can be user, or service account) \n public subjectId: string;\n \n // Subject type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n public subjectType: UserTypeCode;\n \n // User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n public status: UserStatusCode;\n \n // Token expiration [Epoch milliseconds Timestamp] \n public expiresIn: number;\n \n constructor(subjectId?: string, subjectType?: UserTypeCode, status?: UserStatusCode, expiresIn?: number) { \n if (subjectId !== undefined) { this.subjectId = subjectId; }\n if (subjectType !== undefined) { this.subjectType = subjectType; }\n if (status !== undefined) { this.status = status; }\n if (expiresIn !== undefined) { this.expiresIn = expiresIn; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Engine model represents engine metrics\nexport class Engine {\n \n // Engine total time [hours] \n public totalTime: number;\n \n // Overhaul time frequency [hours] \n public overhaulFrequency: number;\n \n // Overhaul next due [hours] \n public overhaulNextDue: number;\n \n // Time remaining till the next Overhaul [hours] \n public hoursToOverhaul: number;\n \n // Last airframe Overhaul [hours] \n public lastAirframeOverhaul: number;\n \n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// TripRisks group of trip risk values\nexport class TripRisks {\n \n // Trip - Twilight operation \n public twilightOperation: number;\n \n // Trip - nighttime operation \n public nightTimeOperation: number;\n \n // Trip - Repositioning flight (no passengers or cargo) \n public repositioningFlight: number;\n \n // Pop-up trip (less than 4 hours notice) \n public popupTripLess4HrsNotice: number;\n \n // International trip \n public internationalTrip: number;\n \n constructor(twilightOperation?: number, nightTimeOperation?: number, repositioningFlight?: number, popupTripLess4HrsNotice?: number, internationalTrip?: number) { \n if (twilightOperation !== undefined) { this.twilightOperation = twilightOperation; }\n if (nightTimeOperation !== undefined) { this.nightTimeOperation = nightTimeOperation; }\n if (repositioningFlight !== undefined) { this.repositioningFlight = repositioningFlight; }\n if (popupTripLess4HrsNotice !== undefined) { this.popupTripLess4HrsNotice = popupTripLess4HrsNotice; }\n if (internationalTrip !== undefined) { this.internationalTrip = internationalTrip; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// LeadAction entity is a followup action record\nexport class LeadAction extends BaseEntityEx {\n \n // Lead ID \n public leadId: string;\n \n // When followup action was reported [Epoch milliseconds] \n public reportedOn: number;\n \n // Who did the followup action \n public reportedBy: string;\n \n // Action description \n public description: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLeadActionColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"leadId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"reportedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reportedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// LogBookRecord entity is a pilot's log book record\nexport class LogBookRecord extends BaseEntityEx {\n \n // Account ID \n public accountId: string;\n \n // Contact ID \n public contactId: string;\n \n // When the flight started [Epoch milliseconds] (1a) \n public date: number;\n \n // Airplane type (model, variant) \n public airplaneType: string;\n \n // Airplane registration number (tail number) \n public airplaneReg: string;\n \n // Takeoff field \n public takeoffField: string;\n \n // Landing field on the way \n public viaField: string;\n \n // Landing field \n public landingField: string;\n \n // Departure time [Epoch milliseconds] \n public departure: number;\n \n // Arrival time [Epoch milliseconds] \n public arrival: number;\n \n // Single Engine Pilot-In-Command \n public singleEnginePic: number;\n \n // Single Engine Second-In-Command \n public singleEngineSic: number;\n \n // Multi Engine Pilot-In-Command \n public multiEnginePic: number;\n \n // Multi Engine Second-In-Command \n public multiEngineSic: number;\n \n // Hours in daytime \n public dayTime: number;\n \n // Hours in nighttime \n public nightTime: number;\n \n // Instruments flight time \n public ifrTime: number;\n \n // Simulator time \n public simulator: number;\n \n // Remarks \n public remarks: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLogBookRecordColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"date\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneReg\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoffField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"viaField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landingField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"arrival\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"singleEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"singleEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"dayTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"ifrTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"simulator\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"remarks\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { OnBoard } from '.';\nimport { TOLData } from '.';\nimport { ReFuel } from '.';\nimport { Lesson } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { FlightTypeCode } from '.';\nimport { FlightPurposeCode } from '.';\n\n\n\n// PreFlightData model represents pre-flight information\nexport class PreFlightData extends BaseEntityEx {\n \n // Flight name \n public name: string;\n \n // Flight description \n public description: string;\n \n // Flight number \n public flightNumber: number;\n \n // Flight number as string \n public flightString: string;\n \n // Flight takeoff time (same as Takeoff.Planned) \n public flightTime: number;\n \n // Flight destination \n public destination: string;\n \n // Airplane ID \n public airplaneId: string;\n \n // Captain / Instructor contact ID - replace OnBoard \n public captain: string;\n \n // First Officer / Student contact ID - replace OnBoard \n public firstOfficer: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Crew and Passengers on board \n public onBoard: OnBoard;\n \n // Flight attending time [YYYY-MM-DD HH:mm] \n public attendingTime: string;\n \n // Flight boarding time [YYYY-MM-DD HH:mm] \n public boardingTime: string;\n \n // Takeoff data \n public takeoff: TOLData;\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Flight has competency certification \n public hasCompetency: boolean;\n \n // Flight has a flight plan \n public hasFlightPlan: boolean;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Fuel status before and after flight \n public fuelStatus: ReFuel;\n \n // Oil status before and after flight \n public oilStatus: ReFuel;\n \n // Flight lesson attributes \n public lesson: Lesson;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetPreFlightDataColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"onBoard\", \"OnBoard\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasCompetency\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hasFlightPlan\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"oilStatus\", \"ReFuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// DocumentRevision entity represents a document revision in the system\nexport class DocumentRevision {\n \n // Document revision Id \n public id: string;\n \n // Document revision file name \n public name: string;\n \n // Document revision \n public revision: string;\n \n // Document revision URL \n public url: string;\n \n // Document revision creator \n public createdBy: string;\n \n // Document revision creation time [epoch time milliseconds] \n public createdOn: number;\n \n // Document revision MIME type \n public mimeType: string;\n \n constructor(id?: string, name?: string, revision?: string, url?: string, createdBy?: string, createdOn?: number, mimeType?: string) { \n if (id !== undefined) { this.id = id; }\n if (name !== undefined) { this.name = name; }\n if (revision !== undefined) { this.revision = revision; }\n if (url !== undefined) { this.url = url; }\n if (createdBy !== undefined) { this.createdBy = createdBy; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (mimeType !== undefined) { this.mimeType = mimeType; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { Lookup } from '.';\nimport { BaseEntity } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// LookupGroup entity is a group of lookup entries\nexport class LookupGroup extends BaseEntity {\n \n // Group \n public group: string;\n \n // Item type \n public value: Lookup[];\n \n \n\n \n\n}\n\n\nexport function GetLookupGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"Lookup\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { MessageTypeCode } from '.';\nimport { PriorityCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// SystemMessage entity is a system message notification that all pilots must read and confirm\nexport class SystemMessage extends BaseEntityEx {\n \n // Message subject \n public subject: string;\n \n // Message description \n public description: string;\n \n // Message type \n public type: MessageTypeCode;\n \n // Message priority \n public priority: PriorityCode;\n \n // Contact groups to send the message \n public groups: string[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetSystemMessageColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// Address model represents an address\nexport class Address {\n \n // Street address \n public street: string;\n \n // City \n public city: string;\n \n // State (if applicable) \n public state: string;\n \n // Local zip code (postal cod) \n public zipCode: string;\n \n // Country name \n public country: string;\n \n constructor(street?: string, city?: string, state?: string, zipCode?: string, country?: string) { \n if (street !== undefined) { this.street = street; }\n if (city !== undefined) { this.city = city; }\n if (state !== undefined) { this.state = state; }\n if (zipCode !== undefined) { this.zipCode = zipCode; }\n if (country !== undefined) { this.country = country; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// AnyKeyValue model used as a string key-value pair\nexport class AnyKeyValue {\n \n // Tuple key \n public key: string;\n \n // Tuple value \n public value: any;\n \n constructor(key?: string, value?: any) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { TimeFrame } from '.';\nimport { FlightTypeCode } from '.';\nimport { FlightStatusCode } from '.';\nimport { BillingStatusCode } from '.';\nimport { FlightPurposeCode } from '.';\n\n\n\n// FlightsFilter list of fields to filter flights\nexport class FlightsFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by time frame \n public period: TimeFrame;\n \n // Filter by account ID \n public accountId: string;\n \n // Filter by Contact ID (captain or first officer) \n public contactId: string;\n \n // Filter by airplane ID \n public airplaneId: string;\n \n // Filter by type(s) \n public type: FlightTypeCode[];\n \n // Filter by status(s) \n public status: FlightStatusCode[];\n \n // Filter by billing status \n public billing: BillingStatusCode[];\n \n // Filter by purpose of flight \n public purpose: FlightPurposeCode[];\n \n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[]) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (billing !== undefined) { this.billing = billing; }\n if (purpose !== undefined) { this.purpose = purpose; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { FlightPurposeCode } from '.';\nimport { FlightTypeCode } from '.';\n\n\n\n// PreFlightInfo data structure to be used by the pre-flight form\nexport class PreFlightInfo {\n \n // Flight number as string \n public flightId: string;\n \n // Flight number \n public flightNumber: number;\n \n // Airplane Name \n public airplane: string;\n \n // Total hours left to inspection \n public hoursToInspection: number;\n \n // Takeoff Planned time \n public takeoffPlannedTime: number;\n \n // Takeoff actual time \n public takeoffActualTime: number;\n \n // Takeoff field \n public takeoffField: string;\n \n // Landing field \n public landingField: string;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // In case of OTHER, Purpose of the flight \n public purposeOt: string;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Flight destination \n public destination: string;\n \n // Secondary call sign \n public secondaryCallSign: string;\n \n // Captain / Instructor name \n public captain: string;\n \n // First Officer name \n public firstOfficer: string;\n \n // Estimated fuel on board (GALLONS) \n public estimatedFuelOnBoard: number;\n \n // Estimated time on the air (minutes) \n public estimatedEndurance: number;\n \n // Actual fuel on board (GALLONS) \n public actualFuelOnBoard: number;\n \n // Refuel before flight (GALLONS) \n public refuelBeforeFlight: number;\n \n // Actual oil level (QUARTZ) \n public actualOilOnBoard: number;\n \n // Refilled oil before flight (QUARTZ) \n public refillOilBeforeFlight: number;\n \n // Passengers names \n public passengers: string[];\n \n // Crew members (name:role) \n public crew: string[];\n \n // Weight and Balance configuration \n public wbConfig: string;\n \n // Weight and Balance manual specification \n public wbManual: string;\n \n // Lesson subject by the syllabus - lesson_subject \n public lessonSubject: string;\n \n // First Officer / Student flight counter - student_flights_count \n public lessonFlightCounter: number;\n \n // Pre Flight notes \n public preFlightNotes: string;\n \n // Flight operation notes \n public operationNotes: string;\n \n // Flight has competency certification \n public hasCompetency: boolean;\n \n // Flight has a flight plan \n public hasFlightPlan: boolean;\n \n // This form was already reported \n public reportedBy: string;\n \n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, landingField?: string, purpose?: FlightPurposeCode, purposeOt?: string, type?: FlightTypeCode, destination?: string, secondaryCallSign?: string, captain?: string, firstOfficer?: string, estimatedFuelOnBoard?: number, estimatedEndurance?: number, actualFuelOnBoard?: number, refuelBeforeFlight?: number, actualOilOnBoard?: number, refillOilBeforeFlight?: number, passengers?: string[], crew?: string[], wBConfig?: string, wBManual?: string, lessonSubject?: string, lessonFlightCounter?: number, preFlightNotes?: string, operationNotes?: string, hasCompetency?: boolean, hasFlightPlan?: boolean, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (purposeOt !== undefined) { this.purposeOt = purposeOt; }\n if (type !== undefined) { this.type = type; }\n if (destination !== undefined) { this.destination = destination; }\n if (secondaryCallSign !== undefined) { this.secondaryCallSign = secondaryCallSign; }\n if (captain !== undefined) { this.captain = captain; }\n if (firstOfficer !== undefined) { this.firstOfficer = firstOfficer; }\n if (estimatedFuelOnBoard !== undefined) { this.estimatedFuelOnBoard = estimatedFuelOnBoard; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (actualFuelOnBoard !== undefined) { this.actualFuelOnBoard = actualFuelOnBoard; }\n if (refuelBeforeFlight !== undefined) { this.refuelBeforeFlight = refuelBeforeFlight; }\n if (actualOilOnBoard !== undefined) { this.actualOilOnBoard = actualOilOnBoard; }\n if (refillOilBeforeFlight !== undefined) { this.refillOilBeforeFlight = refillOilBeforeFlight; }\n if (passengers !== undefined) { this.passengers = passengers; }\n if (crew !== undefined) { this.crew = crew; }\n if (wBConfig !== undefined) { this.wbConfig = wBConfig; }\n if (wBManual !== undefined) { this.wbManual = wBManual; }\n if (lessonSubject !== undefined) { this.lessonSubject = lessonSubject; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (preFlightNotes !== undefined) { this.preFlightNotes = preFlightNotes; }\n if (operationNotes !== undefined) { this.operationNotes = operationNotes; }\n if (hasCompetency !== undefined) { this.hasCompetency = hasCompetency; }\n if (hasFlightPlan !== undefined) { this.hasFlightPlan = hasFlightPlan; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Magneto model represents magneto metrics\nexport class Magneto {\n \n // Inspection frequency [hours] \n public inspectionFrequency: number;\n \n // Last Inspection [hours] \n public lastInspectionHours: number;\n \n // Next Inspection [hours] \n public nextInspectionHours: number;\n \n // Remaining hours to the next inspection \n public remainingHours: number;\n \n constructor(inspectionFrequency?: number, lastInspectionHours?: number, nextInspectionHours?: number, remainingHours?: number) { \n if (inspectionFrequency !== undefined) { this.inspectionFrequency = inspectionFrequency; }\n if (lastInspectionHours !== undefined) { this.lastInspectionHours = lastInspectionHours; }\n if (nextInspectionHours !== undefined) { this.nextInspectionHours = nextInspectionHours; }\n if (remainingHours !== undefined) { this.remainingHours = remainingHours; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// OnBoard includes all members on board\nexport class OnBoard {\n \n // Captain / Instructor contact Id \n public captain: string;\n \n // First Officer / Student contact Id \n public firstOfficer: string;\n \n // Passengers names \n public passengers: string[];\n \n // Crew members (name:role) \n public crew: string[];\n \n constructor(captain?: string, firstOfficer?: string, passengers?: string[], crew?: string[]) { \n if (captain !== undefined) { this.captain = captain; }\n if (firstOfficer !== undefined) { this.firstOfficer = firstOfficer; }\n if (passengers !== undefined) { this.passengers = passengers; }\n if (crew !== undefined) { this.crew = crew; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { UserTypeCode } from '.';\nimport { UserRoleFlag } from '.';\nimport { UserStatusCode } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// User represents a human / system operator that has access to the system, and can perform operations\n// User authentication is done by an external identity provider\nexport class User extends BaseEntityEx {\n \n // User name \n public name: string;\n \n // User email \n public email: string;\n \n // User mobile phone number (for notification and validation) \n public mobile: string;\n \n // User type: UNDEFINED | SYSADMIN | SUPPORT | USER \n public type: UserTypeCode;\n \n // User roles flags \n public roles: UserRoleFlag;\n \n // User permissions groups \n public groups: string[];\n \n // User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n public status: UserStatusCode;\n \n // User last successful sign in timestamp [epoch time milliseconds] \n public lastSignIn: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetUserColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"roles\", \"UserRoleFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"UserStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// StringKeyValue model used as a string key-value pair\nexport class StringKeyValue {\n \n // Tuple key \n public key: string;\n \n // Tuple value \n public value: string;\n \n constructor(key?: string, value?: string) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Propeller model represents propeller metrics\nexport class Propeller {\n \n // Propeller total time [hours] \n public totalTime: number;\n \n // Overhaul time frequency [hours] \n public overhaulFrequency: number;\n \n // Overhaul next due [hours] \n public overhaulNextDue: number;\n \n // Time remaining till the next Overhaul [hours] \n public hoursToOverhaul: number;\n \n // Last airframe Overhaul [hours] \n public lastAirframeOverhaul: number;\n \n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { AccountStatusCode } from '.';\nimport { Address } from '.';\nimport { ValidationFlag } from '.';\nimport { FlightCategoryCode } from '.';\n\n\n\n// Contact entity is a billing account in the system\nexport class Contact extends BaseEntityEx {\n \n // Related billing account ID \n public accountId: string;\n \n // Contact name \n public name: string;\n \n // Contact english name \n public enName: string;\n \n // Contact description \n public description: string;\n \n // Title in the contact \n public title: string;\n \n // Contact birthday \n public birthDay: number;\n \n // Contact status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPEND \n public status: AccountStatusCode;\n \n // Office / Landline phone \n public phone: string;\n \n // Mobile phone \n public mobile: string;\n \n // Email address \n public email: string;\n \n // Primary address \n public primaryAddress: Address;\n \n // Total single engine hours \n public singleEngineHours: number;\n \n // Total dual engine hours \n public dualEngineHours: number;\n \n // Total flight hours \n public totalFlightHours: number;\n \n // Contact groups \n public groups: string[];\n \n // ID number \n public idNumber: string;\n \n // Start to fly on [epoch time milliseconds] \n public startToFlyDate: number;\n \n // Authorized to fly by user at time \n public authorizedToFlyBy: string;\n \n // Authorized photographer by user at timeValidations \n public authorizedPhotographyBy: string;\n \n // Pilot license number \n public pilotLicense: string;\n \n // Pilot license type \n public licenseTypes: string[];\n \n // Pilot license group \n public licenseGroup: string;\n \n // Medical certificate class \n public medicalCertClass: string;\n \n // Enum flags - list of certifications and validations \n public validations: ValidationFlag;\n \n // Flag indicating if this contact is a pilot \n public isPilot: boolean;\n \n // Flight instructor Id \n public instructor: string;\n \n // Flight Instruction Plan \n public instructionPlan: FlightCategoryCode;\n \n // Last time the user signed to the system \n public lastSignIn: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetContactColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"title\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"birthDay\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"primaryAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"singleEngineHours\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"dualEngineHours\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalFlightHours\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"idNumber\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"startToFlyDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedToFlyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedPhotographyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotLicense\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"licenseTypes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"licenseGroup\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"medicalCertClass\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validations\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPilot\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructor\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructionPlan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { DocumentRevision } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Document entity represents a document in the system\nexport class Document extends BaseEntityEx {\n \n // Document name \n public name: string;\n \n // Document description \n public description: string;\n \n // Entity linked to the document (in the format of: [type]:[id]) \n public linkedEntity: string;\n \n // Document creator \n public createdBy: string;\n \n // Document active from [epoch time milliseconds] \n public activeFrom: number;\n \n // Document active until [epoch time milliseconds] \n public activeUntil: number;\n \n // Document category \n public category: string;\n \n // Document Revisions \n public revisions: DocumentRevision[];\n \n // Active (current) revision \n public activeRevision: string;\n \n // Active revision URL \n public activeUrl: string;\n \n // Active revision MIME type \n public activeMimeType: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetDocumentColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"linkedEntity\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeFrom\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"activeUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"category\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"revisions\", \"DocumentRevision\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeRevision\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeMimeType\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { Permission } from '.';\nimport { StringKeyValue } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Group represents a group of users to share permissions\nexport class Group extends BaseEntityEx {\n \n // Group name \n public name: string;\n \n // Group email \n public email: string;\n \n // List of permissions \n public permissions: Permission[];\n \n // List of group members (id->name pairs) - not persistent \n public members: StringKeyValue[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"permissions\", \"Permission\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"members\", \"StringKeyValue\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Lookup entity is a key-value string lookup (used as a configurable, open enum)\n// Id of the lookup is in the format of [key]@[domain]\nexport class Lookup extends BaseEntityEx {\n \n // Lookup domain \n public domain: string;\n \n // Group \n public group: string;\n \n // Action that was performed \n public key: string;\n \n // Item string value \n public value: string;\n \n // Item numeric value (for ordering) \n public counter: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetLookupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"domain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"key\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"counter\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { BookingTypeFlag } from '.';\nimport { BookingStatusCode } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// Booking entity is a flight booking request to secure an airplane for specific time slot\nexport class Booking extends BaseEntityEx {\n \n // Booking name (datetime - accountName) \n public name: string;\n \n // Account ID \n public accountId: string;\n \n // Contact ID - it would be the PIC unless it is flight lesson which in this case it would be SIC \n public contactId: string;\n \n // Instructor ID - it should be the instructor as PIC in case of flight lesson \n public instructorId: string;\n \n // Captain (PIC) - for flight lesson, it should be the instructor \n public captain: string;\n \n // First Officer (SIC) - for flight lesson, it should be the instructor \n public firstOfficer: string;\n \n // The user who requested the booking \n public requestedBy: string;\n \n // Additional notes provided by the user \n public requestedNotes: string;\n \n // Type of booking - to be replaced by Flight purpose \n public type: BookingTypeFlag;\n \n // Flag to indicate if this booking includes pattern slot (only in case of flight lesson) \n public isPatterns: boolean;\n \n // Airplane ID (when the booking is approved) \n public airplaneId: string;\n \n // When to ask for the airplane [Epoch milliseconds] \n public placementOn: number;\n \n // When to return the airplane [Epoch milliseconds] \n public placementTo: number;\n \n // Status of booking: PENDING | ASSIGNED | CANCELLED | REJECTED ... \n public status: BookingStatusCode;\n \n // Booking comments provided by the staff \n public comments: string;\n \n // Flight destination \n public destination: string;\n \n // Flight ID related to this booking request \n public flightId: string;\n \n // Slot ID related to this booking request (for patterns request only) \n public slotId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructorId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPatterns\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"BookingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"comments\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"slotId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// BookingSlot entity is a slot for booking a flight\nexport class BookingSlot extends BaseEntityEx {\n \n // Slot start time \n public from: number;\n \n // Slot end time \n public to: number;\n \n // Slot is open for reservation \n public isOpen: boolean;\n \n // Slot is available \n public isFree: boolean;\n \n // Account ID (who took the slot) \n public accountId: string;\n \n // Contact ID (who took the slot) \n public contactId: string;\n \n // Booking ID (Booking reference) \n public bookingId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingSlotColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"from\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"to\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"isOpen\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFree\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BookingSlot } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// BookingSlots entity is a collection of slots per day\nexport class BookingSlots extends BaseEntityEx {\n \n // Slots day \n public day: number;\n \n // List of slots in this period \n public slots: BookingSlot[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingSlotsColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"day\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"slots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { BookingSlot } from '.';\n\n\n\n// BookingSlotsSet entity is a collection of slots per month to add or to remove\nexport class BookingSlotsSet extends BaseEntityEx {\n \n // Slots set year \n public year: number;\n \n // Slots set month (1..12) \n public month: number;\n \n // List of slots to add \n public addSlots: BookingSlot[];\n \n // List of slots to remove \n public delSlots: BookingSlot[];\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetBookingSlotsSetColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"year\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"month\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"addSlots\", \"BookingSlot\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"delSlots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { TransactionTypeCode } from '.';\nimport { CurrencyCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Credit entity is an accounting action\nexport class Credit extends BaseEntityEx {\n \n // Credit name \n public name: string;\n \n // Credit description \n public description: string;\n \n // Credit transaction type: FLIGHT | BONUS | PURCHASE | REFUND ... \n public type: TransactionTypeCode;\n \n // Billing units - Hobbs \n public units: number;\n \n // Price per Unit - \n public unitPrice: number;\n \n // Total before VAT \n public beforeVat: number;\n \n // Amount \n public amount: number;\n \n // Base rate factor (ignore if 0) \n public baseRate: number;\n \n // Currency \n public currency: CurrencyCode;\n \n // Linked to account \n public accountId: string;\n \n // Linked to flight \n public flightId: string;\n \n // User ID who updated this entry (can be \"system\") \n public updatedBy: string;\n \n // Time of the transaction [Epoch milliseconds Timestamp] \n public transactionOn: number;\n \n // Reference of the transaction \n public reference: string;\n \n // Linked document ID \n public documentId: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetCreditColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"TransactionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"units\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"unitPrice\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"beforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"amount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"updatedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"transactionOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reference\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\nimport { ConfirmStatusCode } from '.';\nimport { MessageTypeCode } from '.';\nimport { PriorityCode } from '.';\n\n\n\n// MessageConfirm entity is a system message confirmation by users\nexport class MessageConfirm extends BaseEntityEx {\n \n // System Message ID \n public messageId: string;\n \n // Linked contact ID \n public contactId: string;\n \n // Contact reply status \n public replyStatus: ConfirmStatusCode;\n \n // Time of reply sent by the contact [epoch time milliseconds] \n public replyOn: number;\n \n // Read and sign form link \n public replyUrl: string;\n \n // Message subject [Calculated field, not stored] \n public subject: string;\n \n // Message description [Calculated field, not stored] \n public description: string;\n \n // Message type [Calculated field, not stored] \n public type: MessageTypeCode;\n \n // Message priority [Calculated field, not stored] \n public priority: PriorityCode;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetMessageConfirmColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"messageId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyStatus\", \"ConfirmStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"replyUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { FlightCategoryCode } from '.';\nimport { InstructionTypeCode } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// Syllabus entity is instruction plan topics\nexport class Syllabus extends BaseEntityEx {\n \n // Syllabus plan (Flight category) \n public plan: FlightCategoryCode;\n \n // Topic instruction type (FLIGHT | CLASS | SIMULATOR) \n public type: InstructionTypeCode;\n \n // Topic sequence number \n public seq: string;\n \n // Topic index number \n public num: number;\n \n // Topic name \n public name: string;\n \n // Topic duration (in minutes) \n public duration: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetSyllabusColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"InstructionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"seq\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"num\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"duration\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { AirplaneStatusCode } from '.';\n\n\n\n// AirplanesFilter list of fields to filter airplanes\nexport class AirplanesFilter {\n \n // Filter by free text search (using * wildcard) \n public search: string;\n \n // Filter by status(s) \n public status: AirplaneStatusCode[];\n \n // Filter by active flag \n public isActive: boolean;\n \n constructor(search?: string, status?: AirplaneStatusCode[], isActive?: boolean) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isActive !== undefined) { this.isActive = isActive; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Location model represents WGS-84 location\nexport class Location {\n \n // WGS-84 longitude in decimal degrees \n public lon: number;\n \n // WGS-84 latitude in decimal degrees \n public lat: number;\n \n // Barometric altitude in meters \n public alt: number;\n \n constructor(lon?: number, lat?: number, alt?: number) { \n if (lon !== undefined) { this.lon = lon; }\n if (lat !== undefined) { this.lat = lat; }\n if (alt !== undefined) { this.alt = alt; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { CampaignTypeCode } from '.';\nimport { CampaignStatusCode } from '.';\nimport { CurrencyCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Campaign entity represents a marketing campaign in the system\nexport class Campaign extends BaseEntityEx {\n \n // Campaign name \n public name: string;\n \n // Campaign type: UNDEFINED | WEB | MAIL | TELE \n public type: CampaignTypeCode;\n \n // Campaign status: UNDEFINED | PLANNED | ACTIVE | COMPLETED \n public status: CampaignStatusCode;\n \n // Campaign content \n public content: string;\n \n // Campaign start date \n public startDate: number;\n \n // Campaign end date \n public endDate: number;\n \n // Campaign budget \n public budget: number;\n \n // Base rate \n public baseRate: number;\n \n // Refer URL \n public referUrl: string;\n \n // Actual campaign cost \n public expectedCost: number;\n \n // Actual campaign cost \n public actualCost: number;\n \n // Currency code \n public currency: CurrencyCode;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetCampaignColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"CampaignTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"CampaignStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"content\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"startDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"endDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"budget\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"referUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"expectedCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"actualCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// WeatherRisks group of weather risk values\nexport class WeatherRisks {\n \n // No weather reporting at destination \n public noWeatherReporting: number;\n \n // Thunderstorms at departure and/or destination \n public thunderstormsExpected: number;\n \n // Heavy rain at departure and/or destination \n public heavyRainExpected: number;\n \n // Frozen precipitation at departure and/or destination \n public frozenPrecipitation: number;\n \n // Ceiling / visibility at destination less than 500 ft. / 2 nm \n public ceilingVisibilityLess500Fts: number;\n \n // Cold weather operation \n public coldWeatherOperation: number;\n \n // Icing (moderate-severe) \n public moderateSeverIcing: number;\n \n // Surface winds greater than 30 knots \n public surfaceWindsOver30Knts: number;\n \n // Crosswinds greater than 15 knots \n public crosswindsOver15Knots: number;\n \n // Severe turbulence expected \n public severeTurbulenceExpected: number;\n \n constructor(noWeatherReporting?: number, thunderstormsExpected?: number, heavyRainExpected?: number, frozenPrecipitation?: number, ceilingVisibilityLess500Fts?: number, coldWeatherOperation?: number, moderateSeverIcing?: number, surfaceWindsOver30Knots?: number, crosswindsOver15Knots?: number, severeTurbulenceExpected?: number) { \n if (noWeatherReporting !== undefined) { this.noWeatherReporting = noWeatherReporting; }\n if (thunderstormsExpected !== undefined) { this.thunderstormsExpected = thunderstormsExpected; }\n if (heavyRainExpected !== undefined) { this.heavyRainExpected = heavyRainExpected; }\n if (frozenPrecipitation !== undefined) { this.frozenPrecipitation = frozenPrecipitation; }\n if (ceilingVisibilityLess500Fts !== undefined) { this.ceilingVisibilityLess500Fts = ceilingVisibilityLess500Fts; }\n if (coldWeatherOperation !== undefined) { this.coldWeatherOperation = coldWeatherOperation; }\n if (moderateSeverIcing !== undefined) { this.moderateSeverIcing = moderateSeverIcing; }\n if (surfaceWindsOver30Knots !== undefined) { this.surfaceWindsOver30Knts = surfaceWindsOver30Knots; }\n if (crosswindsOver15Knots !== undefined) { this.crosswindsOver15Knots = crosswindsOver15Knots; }\n if (severeTurbulenceExpected !== undefined) { this.severeTurbulenceExpected = severeTurbulenceExpected; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ColumnDef } from '.';\nimport { BaseEntityEx } from '.';\n\n\n\n// SystemConfig is a global System Configuration variable\nexport class SystemConfig extends BaseEntityEx {\n \n // String value \n public strVal: string;\n \n // Int value \n public intVal: number;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetSystemConfigColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"strVal\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"intVal\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\nimport { FlightPurposeCode } from '.';\nimport { FlightTypeCode } from '.';\nimport { AssessmentCode } from '.';\n\n\n\n// PostFlightInfo data structure to be used by the post-flight form\nexport class PostFlightInfo {\n \n // Flight number as string \n public flightId: string;\n \n // Flight number \n public flightNumber: number;\n \n // Airplane Name \n public airplane: string;\n \n // Total hours left to inspection \n public hoursToInspection: number;\n \n // Purpose of the flight \n public purpose: FlightPurposeCode;\n \n // Flight type: PRIVATE | COMMERCIAL ... \n public type: FlightTypeCode;\n \n // Takeoff Planned time \n public takeoffPlannedTime: number;\n \n // Takeoff actual time \n public takeoffActualTime: number;\n \n // Takeoff field \n public takeoffField: string;\n \n // Takeoff hobbs \n public takeoffHobbs: number;\n \n // Takeoff tach \n public takeoffTach: number;\n \n // Landing Planned time \n public landingPlannedTime: number;\n \n // Landing actual time \n public landingActualTime: number;\n \n // Landing field \n public landingField: string;\n \n // Landing hobbs \n public landingHobbs: number;\n \n // Landing tach \n public landingTach: number;\n \n // Captain / Instructor name \n public captain: string;\n \n // First Officer name \n public firstOfficer: string;\n \n // Flight destination \n public destination: string;\n \n // Pilot's total single engine hours all over \n public singleEngineHours: number;\n \n // Pilot's total multi-engine hours all over \n public multiEngineHours: number;\n \n // Pilot's total flight hours in last 30 days - Must be filled in the first flight performed this month \n public flightHoursLastMonth: number;\n \n // Refuel before flight (GALLONS) \n public refuelBeforeFlight: number;\n \n // Refuel after flight (GALLONS) \n public refuelAfterFlight: number;\n \n // Refilled oil before flight (QUARTZ) \n public refilledOilBeforeFlight: number;\n \n // Refilled oil after flight (QUARTZ) \n public refillOilAfterFlight: number;\n \n // Lesson number - lesson_number \n public lessonNumber: number;\n \n // Lesson subject by the syllabus - lesson_subject \n public lessonSubject: string;\n \n // First Officer / Student flight counter - student_flights_count \n public lessonFlightCounter: number;\n \n // Instructor assessment (score) enum - lesson_score \n public assessment: AssessmentCode;\n \n // Total instructed flight time - instructed_flight_time_c \n public instructedFlightTime: number;\n \n // Total Instrument flight time - net_instruments_flight_time_c \n public instrumentsFlightTime: number;\n \n // Total student Solo flight time - student_solo_flight_time \n public soloFlightTime: number;\n \n // Pilot / Instructor comments after flight \n public lessonComments: string;\n \n // Flight description - post flight notes \n public description: string;\n \n // This form was already reported \n public reportedBy: string;\n \n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, purpose?: FlightPurposeCode, type?: FlightTypeCode, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, takeoffHobbs?: number, takeoffTach?: number, landingPlannedTime?: number, landingActualTime?: number, landingField?: string, landingHobbs?: number, landingTach?: number, captain?: string, firstOfficer?: string, destination?: string, singleEngineHours?: number, multiEngineHours?: number, flightHoursLastMonth?: number, refuelBeforeFlight?: number, refuelAfterFlight?: number, refillOilBeforeFlight?: number, refillOilAfterFlight?: number, lessonNumber?: number, lessonSubject?: string, lessonFlightCounter?: number, lessonAssessment?: AssessmentCode, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number, lessonComments?: string, description?: string, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (type !== undefined) { this.type = type; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (takeoffHobbs !== undefined) { this.takeoffHobbs = takeoffHobbs; }\n if (takeoffTach !== undefined) { this.takeoffTach = takeoffTach; }\n if (landingPlannedTime !== undefined) { this.landingPlannedTime = landingPlannedTime; }\n if (landingActualTime !== undefined) { this.landingActualTime = landingActualTime; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (landingHobbs !== undefined) { this.landingHobbs = landingHobbs; }\n if (landingTach !== undefined) { this.landingTach = landingTach; }\n if (captain !== undefined) { this.captain = captain; }\n if (firstOfficer !== undefined) { this.firstOfficer = firstOfficer; }\n if (destination !== undefined) { this.destination = destination; }\n if (singleEngineHours !== undefined) { this.singleEngineHours = singleEngineHours; }\n if (multiEngineHours !== undefined) { this.multiEngineHours = multiEngineHours; }\n if (flightHoursLastMonth !== undefined) { this.flightHoursLastMonth = flightHoursLastMonth; }\n if (refuelBeforeFlight !== undefined) { this.refuelBeforeFlight = refuelBeforeFlight; }\n if (refuelAfterFlight !== undefined) { this.refuelAfterFlight = refuelAfterFlight; }\n if (refillOilBeforeFlight !== undefined) { this.refilledOilBeforeFlight = refillOilBeforeFlight; }\n if (refillOilAfterFlight !== undefined) { this.refillOilAfterFlight = refillOilAfterFlight; }\n if (lessonNumber !== undefined) { this.lessonNumber = lessonNumber; }\n if (lessonSubject !== undefined) { this.lessonSubject = lessonSubject; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (lessonAssessment !== undefined) { this.assessment = lessonAssessment; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n if (lessonComments !== undefined) { this.lessonComments = lessonComments; }\n if (description !== undefined) { this.description = description; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n\n\n\n// Fuel model represents fuel metrics\nexport class Fuel {\n \n // Fuel tank size [Liters] \n public tankSize: number;\n \n // Fuel consumption \n public consumption: number;\n \n // Fuel cost \n public cost: number;\n \n // Estimated fuel in tank \n public estimatedFuelInTank: number;\n \n // Estimated endurance \n public estimatedEndurance: number;\n \n // Last updated on \n public lastUpdatedOn: number;\n \n // Last updated by flight number \n public lastUpdatedByFlight: number;\n \n constructor(tankSize?: number, consumption?: number, cost?: number, estimatedFuelInTank?: number, estimatedEndurance?: number, lastUpdatedOn?: number, lastUpdatedByFlight?: number) { \n if (tankSize !== undefined) { this.tankSize = tankSize; }\n if (consumption !== undefined) { this.consumption = consumption; }\n if (cost !== undefined) { this.cost = cost; }\n if (estimatedFuelInTank !== undefined) { this.estimatedFuelInTank = estimatedFuelInTank; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (lastUpdatedOn !== undefined) { this.lastUpdatedOn = lastUpdatedOn; }\n if (lastUpdatedByFlight !== undefined) { this.lastUpdatedByFlight = lastUpdatedByFlight; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\nimport { ValidationFlag } from '.';\nimport { StatusCode } from '.';\nimport { BaseEntityEx } from '.';\nimport { ColumnDef } from '.';\n\n\n\n// Certificate entity is a contact certificate required for active pilot\nexport class Certificate extends BaseEntityEx {\n \n // Certificate name \n public name: string;\n \n // Type for certificate (based on Validation flag) \n public type: ValidationFlag;\n \n // Certificate description \n public description: string;\n \n // Linked contact ID \n public contactId: string;\n \n // Linked document ID \n public documentId: string;\n \n // Certificate is valid until the timestamp [epoch time milliseconds] \n public validUntil: number;\n \n // Certificate workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n public status: StatusCode;\n \n // Time of notification sent to contact [epoch time milliseconds] \n public notifyAt: number;\n \n // Notification subject \n public subject: string;\n \n // Notification message \n public message: string;\n \n \n\n \n\tget(field: string) : any {\n\t\tif (!this.props) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet val = this.props.get(field);\n\t\treturn String(val);\n\t}\n \n\n}\n\n\nexport function GetCertificateColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n\n\n\n","\n\n\n\n// CrewDutyDayRisks group of crew duty risk values\nexport class CrewDutyDayRisks {\n \n // Crew duty day greater than 12 hours \n public crewDutyDayOver12Hrs: number;\n \n // Flight time greater than 8 hours during the duty day \n public flightTimeOver8Hrs: number;\n \n // Crew rest period less than 10 hours prior to the duty day \n public crewRestLess10Hrs: number;\n \n constructor(crewDutyDayOver12Hrs?: number, flightTimeOver8Hrs?: number, crewRestLess10Hrs?: number) { \n if (crewDutyDayOver12Hrs !== undefined) { this.crewDutyDayOver12Hrs = crewDutyDayOver12Hrs; }\n if (flightTimeOver8Hrs !== undefined) { this.flightTimeOver8Hrs = flightTimeOver8Hrs; }\n if (crewRestLess10Hrs !== undefined) { this.crewRestLess10Hrs = crewRestLess10Hrs; }\n }\n\n\n \n\n}\n\n\n\n\n\n\n\n","\n// BaseRestResponse is a common structure for all response types\nexport class BaseRestResponse {\n\n // Error code (0 for success)\n public code: number = 0;\n\n // Error message\n public error: string = '';\n}","import { BaseRestResponse } from './BaseRestResponse'\n\n// ActionResponse message is returned for any action on entity with no return data (e.d. delete)\nexport class ActionResponse extends BaseRestResponse {\n\n // Entity key\n public key: string = '';\n\n // Additional data\n public data: string = '';\n}\n\n\n","\n// Entities is a primitive/complex type array expressed as an Entity\nexport class Entities<T> {\n // Entities list\n public values: T[] = [];\n}\n","import { BaseRestResponse } from './BaseRestResponse'\n\n// EntitiesResponse message is returned for any action returning multiple entities\nexport class EntityResponse<T> extends BaseRestResponse {\n\n // Current page (Bulk) number\n public page: number = 0;\n\n // Size of page (items in bulk)\n public size: number = 0;\n\n // Total number of pages\n public pages: number = 0;\n\n // Total number of items in the query\n public total: number = 0;\n\n // List of entities\n public entity: T;\n}\n","import { BaseRestResponse } from './BaseRestResponse'\n\n// EntitiesResponse message is returned for any action returning multiple entities\nexport class EntitiesResponse<T> extends BaseRestResponse {\n\n // Current page (Bulk) number\n public page: number = 0;\n\n // Size of page (items in bulk)\n public size: number = 0;\n\n // Total number of pages\n public pages: number = 0;\n\n // Total number of items in the query\n public total: number = 0;\n\n // List of entities\n public list: T[] = [];\n\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\n\nconst httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache, no-store',\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, X-API-KEY, X-ACCESS-TOKEN, X-TIMEZONE, accept, origin, Cache-Control, X-Requested-With, Authorization, Content-Disposition, Content-Filename',\n 'Access-Control-Exposed-Headers': 'X-API-KEY, X-ACCESS-TOKEN, X-TIMEZONE, Content-Disposition, Content-Filename',\n })\n};\n\n\n// Utility class for all REST services with common functions\n@Injectable()\nexport class RestUtil {\n\n // Constructor with injected authentication service\n constructor(private http: HttpClient) { }\n\n // Upload is HTTP POST action but the body is File object\n upload<T>(file: File, url: string, ...params: string[]) {\n\n const resourceUrl = this.buildUrl(url, ...params);\n\n const formData: FormData = new FormData();\n formData.append('fileKey', file, file.name);\n\n const req = new HttpRequest('POST', resourceUrl, formData, {\n reportProgress: false,\n responseType: 'json',\n });\n return this.http.request<T>(req);\n //return this.http.request(req);\n }\n\n // Download is HTTP GET action but the content is blob\n download(fileName: string, url: string, ...params: string[]) {\n const resourceUrl = this.buildUrl(url, ...params);\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = this.getMimeType(downloadLink);\n\n return this.http.get(resourceUrl, {\n responseType: 'blob',\n reportProgress: true,\n observe: 'events',\n headers: new HttpHeaders({ 'Content-Type': contentType })\n });\n }\n\n // Download2 is an alternative option to download\n download2(fileName: string, url: string, ...params: string[]) {\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n let contentType = this.getMimeType(fileName);\n\n const link = document.createElement('a');\n link.href = this.buildUrl(url, ...params);\n link.download = downloadLink;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n }\n\n // HTTP GET action\n get<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.get<T>(resourceUrl, httpOptions)\n }\n\n // HTTP POST action\n post<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.post<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PUT action\n put<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.put<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PATCH action\n patch<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.patch<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP DELETE action\n delete<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.delete<T>(resourceUrl, httpOptions)\n }\n\n // Construct URL with parameters\n private buildUrl(url: string, ...params: string[]) {\n return (params === null) ? url : (params.length === 0) ? url : `${url}${params && params.length > 0 ? '?'+params.join('&') : ''}`;\n }\n\n // Return MIME type based on file extension\n private getMimeType(fileName: string): string {\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = 'application/json';\n if (fileName.toLowerCase().endsWith('jpg') || fileName.toLowerCase().endsWith('jpeg')) {\n contentType = 'image/jpeg';\n } else if (fileName.toLowerCase().endsWith('png')) {\n contentType = 'image/png';\n } else if (fileName.toLowerCase().endsWith('tif') || fileName.toLowerCase().endsWith('tiff')) {\n contentType = 'image/tiff';\n } else if (fileName.toLowerCase().endsWith('csv')) {\n contentType = 'text/csv';\n } else if (fileName.toLowerCase().endsWith('xml')) {\n contentType = 'text/xml';\n } else if (fileName.toLowerCase().endsWith('pdf')) {\n contentType = 'application/pdf';\n } else if (fileName.toLowerCase().endsWith('xlsx')) {\n contentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n }\n return contentType\n }\n}\n","\n// SimpleEntity message is a container for single entity\nexport class SimpleEntity<T> {\n // Entity\n public value: T;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class GooxConfig {\n api: string = '';\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Certificate } from '.';\n\n\n\n// CertificatesEndPoint Services for certificates actions \n@Injectable()\nexport class CertificatesEndPoint {\n\n // URL to web api\n private baseUrl = '/certificates';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty certificate template\n */\n new() {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new certificate\n */\n create(body?: Certificate) {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing certificate\n */\n update(body?: Certificate) {\n return this.rest.put<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete certificate and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single certificate by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Certificate>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find certificates by query\n */\n find(contactId?: string, search?: string, status?: [], valid?: boolean, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (valid != null) { params.push(`valid=${valid}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload certificate reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download certificate reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete certificate reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { LoginParams } from '.';\n\n\n\n// MyAuthEndPoint Services for contact simple authentication using SMS or Email \n@Injectable()\nexport class MyAuthEndPoint {\n\n // URL to web api\n private baseUrl = '/my/auth';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Authenticate contact\n */\n authenticate(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/authenticate`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n sendCode(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/send-code`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n verifyCode(code?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/verify-code/${code}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Maintenance } from '.';\n\n\n\n// MaintenancesEndPoint Services for maintenances actions \n@Injectable()\nexport class MaintenancesEndPoint {\n\n // URL to web api\n private baseUrl = '/maintenances';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty maintenance template\n */\n new() {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new maintenance\n */\n create(body?: Maintenance) {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing maintenance\n */\n update(body?: Maintenance) {\n return this.rest.put<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete maintenance and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single maintenance by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Maintenance>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find maintenances by query\n */\n find(search?: string, airplaneId?: string, action?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload maintenance reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download maintenances reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete maintenances reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Price } from '.';\n\n\n\n// PriceListEndPoint Services for price list \n@Injectable()\nexport class PriceListEndPoint {\n\n // URL to web api\n private baseUrl = '/price-list';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty price template\n */\n new() {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new price\n */\n create(body?: Price) {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Price\n */\n update(body?: Price) {\n return this.rest.put<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Price and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Price by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Price>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Prices by query\n */\n find(airplaneId?: string, purpose?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Price>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Document } from '.';\nimport { Maintenance } from '.';\nimport { Airplane } from '.';\nimport { StringKeyValue } from '.';\nimport { Flight } from '.';\n\n\n\n// AirplanesEndPoint Services for airplanes actions \n@Injectable()\nexport class AirplanesEndPoint {\n\n // URL to web api\n private baseUrl = '/airplanes';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * region Endpoint REST handlers ---------------------------------------------------------------------------------------\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new airplane\n */\n create(body?: Airplane) {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing airplane\n */\n update(body?: Airplane) {\n return this.rest.put<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete airplane and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single airplane by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Airplane>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find airplanes by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup airplanes ID->Name by filter\n */\n lookup(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Get minimal active airplanes data for hours statistics only\n */\n hours() {\n return this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}/hours`);\n }\n\n /**\n * Find airplane flights\n */\n findFlights(id?: string, search?: string, type?: [], status?: [], state?: [], purpose?: [], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find airplane documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find airplane maintenance log book\n */\n findMaintenance(id?: string, search?: string, status?: [], action?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}/${id}/maintenance`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Document } from '.';\n\n\n\n// DocumentsEndPoint Services for documents actions \n@Injectable()\nexport class DocumentsEndPoint {\n\n // URL to web api\n private baseUrl = '/documents';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty document template\n */\n new() {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new document\n */\n create(body?: Document) {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing document\n */\n update(body?: Document) {\n return this.rest.put<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete document and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single document by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find documents by query\n */\n find(search?: string, category?: string, linkedId?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (category != null) { params.push(`category=${category}`); }\n if (linkedId != null) { params.push(`linkedId=${linkedId}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get a single document by linked entity ID\n */\n linkedDocument(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/entity/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { AnyKeyValue } from '.';\nimport { TimeSeries } from '.';\nimport { Contact } from '.';\nimport { FlightTicket } from '.';\nimport { PreFlightInfo } from '.';\nimport { PostFlightInfo } from '.';\nimport { Flight } from '.';\nimport { FlightPlan } from '.';\n\n\n\n// FlightsEndPoint Services for flights actions \n@Injectable()\nexport class FlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/flights';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Get new and empty flight template\n */\n newFromBooking(id?: string) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new-from-booking/${id}`, '');\n }\n\n /**\n * Create new flight\n */\n launch(body?: Flight) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight\n */\n update(body?: Flight) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update a list of existing flights\n */\n bulkUpdate(body?: Entities<Flight>) {\n return this.rest.put<ActionResponse>(`${this.baseUrl}/bulk`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight with partial data\n */\n partialUpdate(id?: string, body?: AnyKeyValue) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}/partial/${id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flight and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flights by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: [], status?: [], billing?: [], purpose?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Download all flights by filter as XLSX document\n */\n downloadFlightsXlsx(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: [], status?: [], billing?: [], purpose?: [], sort?: string) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.download(`export`,`${this.baseUrl}/flights-download/xlsx`, ...params);\n }\n\n /**\n * Find flights count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: [], status?: [], billing?: [], purpose?: []) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get flight plans schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Find list of contacts (pilot / first officer) on this flight\n */\n findContacts(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}/${id}/contacts`, ...params);\n }\n\n /**\n * Find list of related flight tickets for this flight\n */\n findTickets(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}/${id}/tickets`, ...params);\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightSMS(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-sms`, '');\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightEmail(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-email`, '');\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Lead } from '.';\nimport { TimeSeries } from '.';\nimport { LeadAction } from '.';\n\n\n\n// LeadsEndPoint Services for leads actions \n@Injectable()\nexport class LeadsEndPoint {\n\n // URL to web api\n private baseUrl = '/leads';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty lead template\n */\n new() {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new lead\n */\n create(body?: Lead) {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead\n */\n update(body?: Lead) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lead by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lead>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find leads by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lead>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find lead count histogram over time\n */\n histogram(from?: number, to?: number, search?: string, status?: []) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Create new lead action\n */\n createAction(body?: LeadAction) {\n return this.rest.post<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead action\n */\n updateAction(body?: LeadAction) {\n return this.rest.put<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action\n */\n deleteAction(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/actions/${id}`);\n }\n\n /**\n * Get all lead actions\n */\n getActions(id?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LeadAction>>(`${this.baseUrl}/${id}/actions`, ...params);\n }\n\n /**\n * Insert or update lead action and return list of all actions\n */\n upsertAndGetActions(body?: LeadAction) {\n return this.rest.post<EntitiesResponse<LeadAction>>(`${this.baseUrl}/upsert_and_get_actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action and return list of all actions\n */\n deleteAndGetActions(id?: string) {\n return this.rest.delete<EntitiesResponse<LeadAction>>(`${this.baseUrl}/delete_and_get_actions/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Lookup } from '.';\nimport { LookupGroup } from '.';\n\n\n\n// LookupsEndPoint Services for lookups actions \n@Injectable()\nexport class LookupsEndPoint {\n\n // URL to web api\n private baseUrl = '/lookups';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new lookup\n */\n create(body?: Lookup) {\n return this.rest.post<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lookup\n */\n update(body?: Lookup) {\n return this.rest.put<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lookup and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lookup by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lookup>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find lookups by query\n */\n find(search?: string, domain?: string, group?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (domain != null) { params.push(`domain=${domain}`); }\n if (group != null) { params.push(`group=${group}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Group lookups by group\n */\n group(domain?: string) {\n const params = [];\t\t\n if (domain != null) { params.push(`domain=${domain}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LookupGroup>>(`${this.baseUrl}/group`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { SystemMessage } from '.';\nimport { MessageConfirm } from '.';\n\n\n\n// SystemMessagesEndPoint Services for systemMessages actions \n@Injectable()\nexport class SystemMessagesEndPoint {\n\n // URL to web api\n private baseUrl = '/system_messages';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty systemMessage template\n */\n new() {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new systemMessage\n */\n create(body?: SystemMessage) {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemMessage\n */\n update(body?: SystemMessage) {\n return this.rest.put<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemMessage and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemMessage by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemMessage>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemMessages by query\n */\n find(search?: string, type?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemMessage>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find message confirmations\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { StringKeyValue } from '.';\nimport { User } from '.';\n\n\n\n// UsersEndPoint Services for users actions \n@Injectable()\nexport class UsersEndPoint {\n\n // URL to web api\n private baseUrl = '/users';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty user template\n */\n new() {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new user\n */\n create(body?: User) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing user\n */\n update(body?: User) {\n return this.rest.put<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete user and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single user by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<User>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find users by query\n */\n find(search?: string, type?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<User>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, type?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup groups ID->Name\n */\n groupsLookup() {\n return this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/groups-lookup`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Flight } from '.';\nimport { Credit } from '.';\nimport { Account } from '.';\nimport { StringKeyValue } from '.';\nimport { Document } from '.';\n\n\n\n// AccountsEndPoint Services for user registration and login \n@Injectable()\nexport class AccountsEndPoint {\n\n // URL to web api\n private baseUrl = '/accounts';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new account\n */\n create(body?: Account) {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing account\n */\n update(body?: Account) {\n return this.rest.put<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete account and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single account by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Account>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find accounts by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Account>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup account ID->Name by filter\n */\n lookup(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Find account flights\n */\n findFlights(id?: string, search?: string, airplaneId?: string, type?: [], status?: [], state?: [], purpose?: [], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find account credits\n */\n findCredits(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}/${id}/credits`, ...params);\n }\n\n /**\n * Download account credit history as XLSX document\n */\n downloadCreditsXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/credits-download/xlsx`);\n }\n\n /**\n * Find related documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { FlightTicket } from '.';\n\n\n\n// FlightTicketsEndPoint Services for flightTickets actions \n@Injectable()\nexport class FlightTicketsEndPoint {\n\n // URL to web api\n private baseUrl = '/flight_tickets';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty flightTicket template\n */\n new() {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new flightTicket\n */\n create(body?: FlightTicket) {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing flightTicket\n */\n update(body?: FlightTicket) {\n return this.rest.put<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flightTicket and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flightTicket by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<FlightTicket>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flightTickets by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { StringKeyValue } from '.';\nimport { Campaign } from '.';\n\n\n\n// CampaignsEndPoint Services for campaigns actions \n@Injectable()\nexport class CampaignsEndPoint {\n\n // URL to web api\n private baseUrl = '/campaigns';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty Campaign template\n */\n new() {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new campaign\n */\n create(body?: Campaign) {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing campaign\n */\n update(body?: Campaign) {\n return this.rest.put<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete campaign and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single campaign by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Campaign>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find campaigns by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Campaign>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup campaigns ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Group } from '.';\nimport { StringKeyValue } from '.';\n\n\n\n// GroupsEndPoint Services for groups actions \n@Injectable()\nexport class GroupsEndPoint {\n\n // URL to web api\n private baseUrl = '/groups';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new group\n */\n create(body?: Group) {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing group\n */\n update(body?: Group) {\n return this.rest.put<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete group and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single group by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Group>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find groups by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Group>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { User } from '.';\nimport { LoginParams } from '.';\n\n\n\n// UserEndPoint Services for user registration and login \n@Injectable()\nexport class UserEndPoint {\n\n // URL to web api\n private baseUrl = '/user';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Authorize user, verify user exists in the system\n * The response includes access token valid for 20 minutes. The client side should renew the token before expiration using refresh-token method\n */\n authorize(body?: LoginParams) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/authorize`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Booking } from '.';\nimport { BookingTypeFlag } from '.';\nimport { BookingSlots } from '.';\n\n\n\n// MyBookingsEndPoint Services for current user bookings actions \n@Injectable()\nexport class MyBookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/bookings';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my bookings by query\n */\n find(search?: string, airplaneId?: string, from?: number, to?: number, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find my bookings by query\n */\n getBookingSlots(year?: number, month?: number, type?: BookingTypeFlag) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (type != null) { params.push(`type=${type}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlots>>(`${this.baseUrl}/booking-slots`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { FlightPlan } from '.';\nimport { PreFlightInfo } from '.';\nimport { PostFlightInfo } from '.';\nimport { Flight } from '.';\n\n\n\n// MyFlightsEndPoint Services for user flights actions \n@Injectable()\nexport class MyFlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/flights';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my flights by query\n */\n find(search?: string, type?: [], status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { BookingPlan } from '.';\nimport { Booking } from '.';\nimport { BookingStatusCode } from '.';\nimport { TimeSeries } from '.';\n\n\n\n// BookingsEndPoint Services for bookings actions \n@Injectable()\nexport class BookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/bookings';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Approve booking\n */\n updateStatus(id?: string, status?: BookingStatusCode) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}/status/${id}/${status}`, '');\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookings by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find bookings count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: []) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get bookings schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Find my bookings by query\n */\n myBookings(search?: string, airplaneId?: string, from?: number, to?: number, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/my`, ...params);\n }\n\n /**\n * Get bookings plan data for specific day\n */\n getBookingPlan(year?: number, month?: number, day?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/plan`, ...params);\n }\n\n /**\n * Launch flight from booking ID and returns new bookings plan data for specific day\n */\n launchFromBooking(id?: string) {\n return this.rest.post<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/launch-from-booking/${id}`, '');\n }\n\n /**\n * Launch flight from booking\n */\n launch(body?: Booking) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/launch`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Credit } from '.';\n\n\n\n// CreditsEndPoint Services for credits actions \n@Injectable()\nexport class CreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/credits';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty credit template\n */\n new() {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new credit\n */\n create(body?: Credit) {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing credit\n */\n update(body?: Credit) {\n return this.rest.put<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete credit and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find credits by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload credit reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download credit reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport {FlightCategoryCode, InstructionTypeCode, Syllabus} from '.';\n\n\n\n// SyllabusEndPoint Services for syllabus \n@Injectable()\nexport class SyllabusEndPoint {\n\n // URL to web api\n private baseUrl = '/syllabus';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty syllabus template\n */\n new() {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new syllabus\n */\n create(body?: Syllabus) {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Syllabus\n */\n update(body?: Syllabus) {\n return this.rest.put<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Syllabus and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Syllabus by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Syllabus>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Syllabus topics by query\n */\n find(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (plan != null) { params.push(`plan=${plan}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { SystemConfig } from '.';\n\n\n\n// SystemConfigsEndPoint Services for systemConfigs actions \n@Injectable()\nexport class SystemConfigsEndPoint {\n\n // URL to web api\n private baseUrl = '/system_configs';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new systemConfig\n */\n create(body?: SystemConfig) {\n return this.rest.post<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemConfig\n */\n update(body?: SystemConfig) {\n return this.rest.put<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemConfig and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemConfig by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemConfig>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemConfigs by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemConfig>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { BookingSlot } from '.';\nimport { BookingSlots } from '.';\nimport { BookingSlotsSet } from '.';\n\n\n\n// BookingSlotsEndPoint Services for bookingSlots actions \n@Injectable()\nexport class BookingSlotsEndPoint {\n\n // URL to web api\n private baseUrl = '/booking_slots';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty booking slot template\n */\n new() {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new bookingSlot\n */\n create(body?: BookingSlot) {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing bookingSlot\n */\n update(body?: BookingSlot) {\n return this.rest.put<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete bookingSlot and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single bookingSlot by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<BookingSlot>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookingSlots by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find Monthly slots (limit of 1000)\n */\n monthly(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/monthly`, ...params);\n }\n\n /**\n * Get all available monthly slots for patterns\n */\n monthlySlotOptions(year?: number, month?: number) {\n const params = [];\t\t\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlots>>(`${this.baseUrl}/monthly-slot-options`, ...params);\n }\n\n /**\n * Add or remove a bulk of monthly slots for patterns\n */\n setMonthlySlot(body?: BookingSlotsSet) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/monthly-slots`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Publish slots (make invisible slots to visible)\n */\n publish(id?: string[]) {\n const params = [];\t\t\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/publish`, '', ...params);\n }\n\n /**\n * UnPublish slots (make visible slots to invisible)\n */\n unPublish(id?: string[]) {\n const params = [];\t\t\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/unpublish`, '', ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Flight } from '.';\nimport { Document } from '.';\nimport { StringKeyValue } from '.';\nimport { Certificate } from '.';\nimport { MessageConfirm } from '.';\nimport { Contact } from '.';\n\n\n\n// ContactsEndPoint Services for contacts actions \n@Injectable()\nexport class ContactsEndPoint {\n\n // URL to web api\n private baseUrl = '/contacts';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty contact template\n */\n new() {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new contact\n */\n create(body?: Contact) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing contact\n */\n update(body?: Contact) {\n return this.rest.put<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete contact and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single contact by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Contact>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find contacts by query\n */\n find(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup contacts ID->Name by filter\n */\n lookup(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup only contacts that are active pilots ID->Name by filter\n */\n lookupPilots(search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup-pilots`, ...params);\n }\n\n /**\n * Find contact certificates by query\n */\n findCertificates(id?: string, search?: string, status?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}/${id}/certificates`, ...params);\n }\n\n /**\n * Find contact related flights by query\n */\n findFlights(id?: string, search?: string, type?: [], status?: [], state?: [], purpose?: [], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find message confirmations for this contact\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n /**\n * Find related documents for this contact\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(id?: string, sort?: string) {\n const params = [];\t\t\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/xlsx`);\n }\n\n /**\n * Download student sheet as CSV document\n */\n downloadStudentSheetCsv(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/csv`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\n\n\n\n// SystemEndPoint Services for general system queries \n@Injectable()\nexport class SystemEndPoint {\n\n // URL to web api\n private baseUrl = '/system';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Lookup returns entity name for entity id\n */\n lookup(entity?: string, id?: string) {\n return this.rest.get<ActionResponse>(`${this.baseUrl}/lookup/${entity}/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { Credit } from '.';\n\n\n\n// MyCreditsEndPoint Services for current user credits queries \n@Injectable()\nexport class MyCreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/credits';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my credits by query\n */\n find(sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { AuditLog } from '.';\nimport { TimeSeries } from '.';\n\n\n\n// AuditLogsEndPoint Services for auditLogs actions \n@Injectable()\nexport class AuditLogsEndPoint {\n\n // URL to web api\n private baseUrl = '/audit_logs';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Create new auditLog\n */\n create(body?: AuditLog) {\n return this.rest.post<EntityResponse<AuditLog>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get a single auditLog by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<AuditLog>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find auditLogs by query\n */\n find(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<AuditLog>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find auditLogs count histogram over time\n */\n histogram(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtil, EntityResponse, EntitiesResponse, ActionResponse, Entities, SimpleEntity } from '../utils';\nimport { GooxConfig } from '../config';\n\nimport { MessageConfirm } from '.';\n\n\n\n// MessageConfirmsEndPoint Services for messageConfirms actions \n@Injectable()\nexport class MessageConfirmsEndPoint {\n\n // URL to web api\n private baseUrl = '/message_confirms';\n\n // Class constructor\n constructor(@Inject('config') private config: GooxConfig, private rest: RestUtil) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n\n /**\n * Get new and empty messageConfirm template\n */\n new() {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new messageConfirm\n */\n create(body?: MessageConfirm) {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/{id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing messageConfirm\n */\n update(body?: MessageConfirm) {\n return this.rest.put<EntityResponse<MessageConfirm>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete messageConfirm and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single messageConfirm by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<MessageConfirm>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find messageConfirms by query\n */\n find(search?: string, messageId?: string, contactId?: string, type?: [], status?: [], priority?: [], sort?: string, page?: number, size?: number) {\n const params = [];\t\t\n if (search != null) { params.push(`search=${search}`); }\n if (messageId != null) { params.push(`messageId=${messageId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (priority != null) { params.push(`priority=${priority}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\n// Return a map of Enum values to enum strings\nexport function MapEnumValues() : Map<string, string> {\n\n let result: Map<string, string> = new Map<string, string>();\n \n\tresult.set(\"FilterFlag.0\", \"UNDEFINED\");\n\tresult.set(\"FilterFlag.1\", \"SEARCH\");\n\tresult.set(\"FilterFlag.2\", \"F2\");\n\tresult.set(\"FilterFlag.4\", \"F3\");\n\tresult.set(\"FilterFlag.8\", \"F4\");\n\tresult.set(\"FilterFlag.16\", \"F5\");\n\tresult.set(\"FilterFlag.32\", \"F6\");\n\tresult.set(\"FilterFlag.64\", \"F7\");\n\tresult.set(\"FilterFlag.128\", \"F8\");\n\tresult.set(\"FilterFlag.256\", \"F9\");\n\tresult.set(\"FilterFlag.512\", \"F10\");\n\tresult.set(\"FilterFlag.1024\", \"F11\");\n\tresult.set(\"FilterFlag.2048\", \"F12\");\n\tresult.set(\"FilterFlag.4096\", \"F13\");\n\tresult.set(\"FilterFlag.8192\", \"F14\");\n\tresult.set(\"FilterFlag.16384\", \"F15\");\n\tresult.set(\"FilterFlag.32768\", \"F16\");\n\tresult.set(\"FilterFlag.65536\", \"F17\");\n\tresult.set(\"FilterFlag.131072\", \"F18\");\n\tresult.set(\"FilterFlag.262144\", \"F19\");\n\tresult.set(\"FilterFlag.524288\", \"F20\");\n\tresult.set(\"FilterFlag.1048576\", \"F21\");\n\tresult.set(\"FilterFlag.2097152\", \"F22\");\n\tresult.set(\"FilterFlag.4194304\", \"F23\");\n\tresult.set(\"FilterFlag.8388608\", \"F24\");\n\tresult.set(\"FilterFlag.16777216\", \"F25\");\n\tresult.set(\"TransactionTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"TransactionTypeCode.1\", \"FLIGHT\");\n\tresult.set(\"TransactionTypeCode.2\", \"INSTRUCTION\");\n\tresult.set(\"TransactionTypeCode.3\", \"PURCHASE\");\n\tresult.set(\"TransactionTypeCode.4\", \"PAYMENT\");\n\tresult.set(\"TransactionTypeCode.5\", \"BONUS\");\n\tresult.set(\"TransactionTypeCode.6\", \"REFUND\");\n\tresult.set(\"ADSBCategoryCode.0\", \"UNDEFINED\");\n\tresult.set(\"ADSBCategoryCode.1\", \"NO_ADSB\");\n\tresult.set(\"ADSBCategoryCode.2\", \"LIGHT\");\n\tresult.set(\"ADSBCategoryCode.3\", \"SMALL\");\n\tresult.set(\"ADSBCategoryCode.4\", \"LARGE\");\n\tresult.set(\"ADSBCategoryCode.5\", \"HIGH_VORTEX\");\n\tresult.set(\"ADSBCategoryCode.6\", \"HEAVY\");\n\tresult.set(\"BillingStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"BillingStatusCode.1\", \"UNAPPROVED\");\n\tresult.set(\"BillingStatusCode.2\", \"APPROVED\");\n\tresult.set(\"BillingStatusCode.3\", \"CREATED_INVOICE\");\n\tresult.set(\"BillingStatusCode.4\", \"PENDING_INVOICE\");\n\tresult.set(\"BillingStatusCode.5\", \"MANUAL_INVOICE\");\n\tresult.set(\"BillingStatusCode.6\", \"CLOSED\");\n\tresult.set(\"BillingStatusCode.7\", \"CREDIT\");\n\tresult.set(\"BillingStatusCode.8\", \"CANCELLED\");\n\tresult.set(\"BillingStatusCode.9\", \"CANCELLED_BY_CLIENT\");\n\tresult.set(\"BillingStatusCode.10\", \"IRRELEVANT\");\n\tresult.set(\"FlightStateCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightStateCode.1\", \"PENDING\");\n\tresult.set(\"FlightStateCode.2\", \"ACTIVE\");\n\tresult.set(\"FlightStateCode.3\", \"COMPLETED\");\n\tresult.set(\"FlightStateCode.4\", \"CANCELLED\");\n\tresult.set(\"LeadStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"LeadStatusCode.1\", \"NEW\");\n\tresult.set(\"LeadStatusCode.2\", \"INPROCESS\");\n\tresult.set(\"LeadStatusCode.3\", \"ASSIGNED\");\n\tresult.set(\"LeadStatusCode.4\", \"CONVERTED\");\n\tresult.set(\"LeadStatusCode.5\", \"IRRELEVANT\");\n\tresult.set(\"LeadStatusCode.6\", \"REDIRECTED\");\n\tresult.set(\"LeadStatusCode.7\", \"FOLLOWUP\");\n\tresult.set(\"BookingTypeFlag.0\", \"UNDEFINED\");\n\tresult.set(\"BookingTypeFlag.1\", \"LESSON\");\n\tresult.set(\"BookingTypeFlag.2\", \"PATTERNS\");\n\tresult.set(\"BookingTypeFlag.3\", \"RENTAL\");\n\tresult.set(\"BookingTypeFlag.4\", \"INTRODUCTORY\");\n\tresult.set(\"BookingTypeFlag.5\", \"SIMULATOR\");\n\tresult.set(\"BookingTypeFlag.6\", \"PHOTO\");\n\tresult.set(\"BookingTypeFlag.7\", \"MISSION\");\n\tresult.set(\"BookingTypeFlag.8\", \"MAINTENANCE\");\n\tresult.set(\"PriorityCode.0\", \"UNDEFINED\");\n\tresult.set(\"PriorityCode.1\", \"NONE\");\n\tresult.set(\"PriorityCode.2\", \"LOW\");\n\tresult.set(\"PriorityCode.3\", \"MEDIUM\");\n\tresult.set(\"PriorityCode.4\", \"HIGH\");\n\tresult.set(\"TicketStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"TicketStatusCode.1\", \"PENDING\");\n\tresult.set(\"TicketStatusCode.2\", \"SENT\");\n\tresult.set(\"AirplaneValidationFlag.0\", \"UNDEFINED\");\n\tresult.set(\"AirplaneValidationFlag.1\", \"AIRWORTHINESS\");\n\tresult.set(\"AirplaneValidationFlag.2\", \"INSURANCE\");\n\tresult.set(\"AirplaneValidationFlag.4\", \"FLIGHT_MANUAL\");\n\tresult.set(\"AirplaneValidationFlag.8\", \"RADIO_STATION\");\n\tresult.set(\"AirplaneValidationFlag.16\", \"REGISTRATION_CERT\");\n\tresult.set(\"AirplaneValidationFlag.32\", \"FIRST_AID_KIT\");\n\tresult.set(\"AirplaneValidationFlag.64\", \"FIRE_EXTINGUISHER\");\n\tresult.set(\"AirplaneValidationFlag.128\", \"OPERATION_SPEC\");\n\tresult.set(\"AirplaneValidationFlag.256\", \"VALID_337_CAMERA\");\n\tresult.set(\"AirplaneValidationFlag.512\", \"VALID_337_EXHAUST\");\n\tresult.set(\"AirplaneValidationFlag.1024\", \"VALID_STC_CAMERA\");\n\tresult.set(\"AirplaneValidationFlag.2048\", \"VALID_STC_EXHAUST\");\n\tresult.set(\"AirplaneValidationFlag.4096\", \"FLIGHT_LOGBOOK\");\n\tresult.set(\"AirplaneValidationFlag.8192\", \"AIR_OPERATOR\");\n\tresult.set(\"AirplaneValidationFlag.16384\", \"AIRCRAFT_WEIGHT\");\n\tresult.set(\"AirplaneValidationFlag.32768\", \"PROPELLER_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.65536\", \"SINGLE_ENGINE_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.131072\", \"LEFT_ENGINE_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.262144\", \"RIGHT_ENGINE_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.524288\", \"LEFT_PROPELLER_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.1048576\", \"RIGHT_PROPELLER_OVERHAUL\");\n\tresult.set(\"AirplaneValidationFlag.2097152\", \"CVFR_ATS\");\n\tresult.set(\"AirplaneValidationFlag.4194304\", \"WEIGHT_BALANCE_FORM\");\n\tresult.set(\"AirplaneValidationFlag.8388608\", \"CHECK_LIST\");\n\tresult.set(\"AirplaneValidationFlag.16777216\", \"NOISE_CERT\");\n\tresult.set(\"FlightPurposeCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightPurposeCode.1\", \"INTRODUCTORY\");\n\tresult.set(\"FlightPurposeCode.2\", \"INSTRUCTION\");\n\tresult.set(\"FlightPurposeCode.3\", \"RENTAL\");\n\tresult.set(\"FlightPurposeCode.4\", \"PRIVATE\");\n\tresult.set(\"FlightPurposeCode.5\", \"VERTICAL_PHOTO\");\n\tresult.set(\"FlightPurposeCode.6\", \"DIAGONAL_PHOTO\");\n\tresult.set(\"FlightPurposeCode.7\", \"ROUND\");\n\tresult.set(\"FlightPurposeCode.8\", \"CAA_TEST\");\n\tresult.set(\"FlightPurposeCode.9\", \"TRANSFER\");\n\tresult.set(\"FlightPurposeCode.10\", \"AIR_TAXI\");\n\tresult.set(\"FlightPurposeCode.11\", \"ENGINE_RUNNING\");\n\tresult.set(\"FlightPurposeCode.12\", \"OTHER\");\n\tresult.set(\"ValidationFlag.0\", \"UNDEFINED\");\n\tresult.set(\"ValidationFlag.1\", \"MEDICAL_CERT\");\n\tresult.set(\"ValidationFlag.2\", \"PILOT_LICENSE\");\n\tresult.set(\"ValidationFlag.4\", \"SINGLE_ENG_CERT\");\n\tresult.set(\"ValidationFlag.8\", \"DUAL_ENG_CERT\");\n\tresult.set(\"ValidationFlag.16\", \"INST_666_CERT\");\n\tresult.set(\"ValidationFlag.32\", \"INST_REC_CERT\");\n\tresult.set(\"ValidationFlag.64\", \"DAYTIME_FLY\");\n\tresult.set(\"ValidationFlag.128\", \"NIGHTTIME_FLY\");\n\tresult.set(\"ValidationFlag.256\", \"NIGHT_CVFR_CUR\");\n\tresult.set(\"ValidationFlag.512\", \"ROUTE_EXAM\");\n\tresult.set(\"ValidationFlag.1024\", \"DI_CERT\");\n\tresult.set(\"ValidationFlag.2048\", \"INTERNATIONAL\");\n\tresult.set(\"ValidationFlag.4096\", \"ENGLISH_PROF\");\n\tresult.set(\"ValidationFlag.8192\", \"INSTRUCTOR_LICENSE\");\n\tresult.set(\"ValidationFlag.16384\", \"COMPANY_CHECK\");\n\tresult.set(\"ValidationFlag.32768\", \"COMPANY_EXAMIN\");\n\tresult.set(\"ValidationFlag.65536\", \"COMMERCIAL_172P\");\n\tresult.set(\"ValidationFlag.131072\", \"COMMERCIAL_172XP\");\n\tresult.set(\"ValidationFlag.262144\", \"COMMERCIAL_207\");\n\tresult.set(\"AirplaneStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"AirplaneStatusCode.1\", \"ACTIVE\");\n\tresult.set(\"AirplaneStatusCode.2\", \"MAINTENANCE\");\n\tresult.set(\"AirplaneStatusCode.3\", \"SUSPENDED\");\n\tresult.set(\"CampaignTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"CampaignTypeCode.1\", \"WEB\");\n\tresult.set(\"CampaignTypeCode.2\", \"EMAIL\");\n\tresult.set(\"CampaignTypeCode.3\", \"TELESALES\");\n\tresult.set(\"LicenseTypeFlag.0\", \"UNDEFINED\");\n\tresult.set(\"LicenseTypeFlag.1\", \"PILOT\");\n\tresult.set(\"LicenseTypeFlag.2\", \"STUDENT\");\n\tresult.set(\"LicenseTypeFlag.4\", \"PPL\");\n\tresult.set(\"LicenseTypeFlag.8\", \"CPL\");\n\tresult.set(\"LicenseTypeFlag.16\", \"CFI\");\n\tresult.set(\"LicenseTypeFlag.32\", \"IFR\");\n\tresult.set(\"LicenseTypeFlag.64\", \"C172P\");\n\tresult.set(\"LicenseTypeFlag.128\", \"C172XP\");\n\tresult.set(\"LicenseTypeFlag.256\", \"C207\");\n\tresult.set(\"LicenseTypeFlag.512\", \"PA31\");\n\tresult.set(\"MaintenanceActionCode.0\", \"UNDEFINED\");\n\tresult.set(\"MaintenanceActionCode.1\", \"NONE\");\n\tresult.set(\"MaintenanceActionCode.2\", \"INSPECTION\");\n\tresult.set(\"MaintenanceActionCode.3\", \"OVERHAUL\");\n\tresult.set(\"MaintenanceActionCode.4\", \"REISSUE\");\n\tresult.set(\"MaintenanceActionCode.5\", \"REPLACEMENT\");\n\tresult.set(\"MaintenanceActionCode.6\", \"WEIGHT\");\n\tresult.set(\"ModuleCode.0\", \"UNDEFINED\");\n\tresult.set(\"ModuleCode.1\", \"AUDIT_LOG\");\n\tresult.set(\"ModuleCode.2\", \"USERS\");\n\tresult.set(\"ModuleCode.3\", \"GROUPS\");\n\tresult.set(\"ModuleCode.4\", \"ACCOUNTS\");\n\tresult.set(\"ModuleCode.5\", \"CONTACTS\");\n\tresult.set(\"ModuleCode.6\", \"LEADS\");\n\tresult.set(\"ModuleCode.7\", \"CAMPAIGNS\");\n\tresult.set(\"ModuleCode.8\", \"CERTIFICATES\");\n\tresult.set(\"ModuleCode.9\", \"MESSAGES\");\n\tresult.set(\"ModuleCode.10\", \"FLIGHTS\");\n\tresult.set(\"ModuleCode.11\", \"FLIGHT_TICKETS\");\n\tresult.set(\"ModuleCode.12\", \"AIRPLANES\");\n\tresult.set(\"ModuleCode.13\", \"AIRWORTHINESS\");\n\tresult.set(\"FlightTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightTypeCode.1\", \"GENERAL\");\n\tresult.set(\"FlightTypeCode.2\", \"OTHER\");\n\tresult.set(\"FlightTypeCode.3\", \"PRIVATE\");\n\tresult.set(\"FlightTypeCode.4\", \"PRIVATE_IFR\");\n\tresult.set(\"FlightTypeCode.5\", \"COMMERCIAL\");\n\tresult.set(\"FlightTypeCode.6\", \"COMMERCIAL_IFR\");\n\tresult.set(\"FlightTypeCode.7\", \"INSTRUCTION\");\n\tresult.set(\"FlightTypeCode.8\", \"INSTRUCTION_CVFR\");\n\tresult.set(\"FlightTypeCode.9\", \"INSTRUCTION_IFR\");\n\tresult.set(\"FlightTypeCode.10\", \"INSTRUCTION_NAV\");\n\tresult.set(\"FlightTypeCode.11\", \"INSTRUCTION_NIGHT\");\n\tresult.set(\"PermissionFlag.0\", \"UNDEFINED\");\n\tresult.set(\"PermissionFlag.1\", \"READ\");\n\tresult.set(\"PermissionFlag.2\", \"CREATE\");\n\tresult.set(\"PermissionFlag.4\", \"UPDATE\");\n\tresult.set(\"PermissionFlag.8\", \"DELETE\");\n\tresult.set(\"PermissionFlag.16\", \"MANAGE\");\n\tresult.set(\"PermissionFlag.31\", \"ALL\");\n\tresult.set(\"UserStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"UserStatusCode.1\", \"PENDING\");\n\tresult.set(\"UserStatusCode.2\", \"ACTIVE\");\n\tresult.set(\"UserStatusCode.3\", \"BLOCKED\");\n\tresult.set(\"UserStatusCode.4\", \"SUSPENDED\");\n\tresult.set(\"AccountStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"AccountStatusCode.1\", \"ACTIVE\");\n\tresult.set(\"AccountStatusCode.2\", \"INACTIVE\");\n\tresult.set(\"AccountStatusCode.3\", \"BLOCKED\");\n\tresult.set(\"AccountStatusCode.4\", \"SUSPENDED\");\n\tresult.set(\"ConfirmStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"ConfirmStatusCode.1\", \"PENDING\");\n\tresult.set(\"ConfirmStatusCode.2\", \"APPROVED\");\n\tresult.set(\"ConfirmStatusCode.3\", \"REJECTED\");\n\tresult.set(\"ErrorCode.0\", \"UNDEFINED\");\n\tresult.set(\"ErrorCode.-1\", \"GENERAL_ERROR\");\n\tresult.set(\"ErrorCode.-2\", \"UNAUTHENTICATED\");\n\tresult.set(\"ErrorCode.-3\", \"UNAUTHORIZED\");\n\tresult.set(\"ErrorCode.-10\", \"NOT_FOUND\");\n\tresult.set(\"ErrorCode.-1001\", \"FLIGHT_PILOTS_ONLY\");\n\tresult.set(\"ErrorCode.-1002\", \"FLIGHT_PIC_ONLY\");\n\tresult.set(\"ErrorCode.-1010\", \"PREFLIGHT_ALREADY_REPORTED\");\n\tresult.set(\"ErrorCode.-1011\", \"POSTFLIGHT_ALREADY_REPORTED\");\n\tresult.set(\"FlightClassCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightClassCode.32\", \"PRIVATE\");\n\tresult.set(\"FlightClassCode.64\", \"COMMERCIAL\");\n\tresult.set(\"FlightClassCode.128\", \"INTRODUCTORY\");\n\tresult.set(\"FlightClassCode.256\", \"EXAM\");\n\tresult.set(\"FlightClassCode.512\", \"INSTRUCTION\");\n\tresult.set(\"FlightClassCode.1024\", \"MAINTENANCE\");\n\tresult.set(\"FlightClassCode.2048\", \"OTHER\");\n\tresult.set(\"FlightStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightStatusCode.1\", \"REGISTERED\");\n\tresult.set(\"FlightStatusCode.2\", \"ACTIVE\");\n\tresult.set(\"FlightStatusCode.3\", \"COMPLETED\");\n\tresult.set(\"FlightStatusCode.4\", \"CANCELLED\");\n\tresult.set(\"FlightStatusCode.5\", \"ABORTED\");\n\tresult.set(\"FlightStatusCode.6\", \"DELETE\");\n\tresult.set(\"PaymentMethodCode.0\", \"UNDEFINED\");\n\tresult.set(\"PaymentMethodCode.1\", \"NONE\");\n\tresult.set(\"PaymentMethodCode.2\", \"CREDIT_CLIENT\");\n\tresult.set(\"PaymentMethodCode.3\", \"CARD\");\n\tresult.set(\"PaymentMethodCode.4\", \"CHECK\");\n\tresult.set(\"PaymentMethodCode.5\", \"CASH\");\n\tresult.set(\"PaymentMethodCode.6\", \"BANK\");\n\tresult.set(\"UserRoleFlag.0\", \"UNDEFINED\");\n\tresult.set(\"UserRoleFlag.1\", \"STUDENT\");\n\tresult.set(\"UserRoleFlag.2\", \"PILOT\");\n\tresult.set(\"UserRoleFlag.4\", \"INSTRUCTOR\");\n\tresult.set(\"UserRoleFlag.8\", \"SALES\");\n\tresult.set(\"UserRoleFlag.16\", \"OPERATIONS\");\n\tresult.set(\"UserRoleFlag.32\", \"MAINTENANCE\");\n\tresult.set(\"UserRoleFlag.1024\", \"MANAGER\");\n\tresult.set(\"UserRoleFlag.2047\", \"ALL\");\n\tresult.set(\"UserTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"UserTypeCode.1\", \"SYSADMIN\");\n\tresult.set(\"UserTypeCode.2\", \"SUPPORT\");\n\tresult.set(\"UserTypeCode.3\", \"USER\");\n\tresult.set(\"UserTypeCode.4\", \"SERVICE\");\n\tresult.set(\"ADSBSourceFlag.0\", \"ADSB\");\n\tresult.set(\"ADSBSourceFlag.1\", \"ASTERIX\");\n\tresult.set(\"ADSBSourceFlag.2\", \"MLAT\");\n\tresult.set(\"ADSBSourceFlag.3\", \"FLARM\");\n\tresult.set(\"BookingStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"BookingStatusCode.1\", \"PENDING\");\n\tresult.set(\"BookingStatusCode.2\", \"APPROVED\");\n\tresult.set(\"BookingStatusCode.3\", \"REJECTED\");\n\tresult.set(\"BookingStatusCode.4\", \"CONFIRMED\");\n\tresult.set(\"BookingStatusCode.5\", \"CANCELLED\");\n\tresult.set(\"BookingStatusCode.6\", \"FLIGHT_LAUNCHED\");\n\tresult.set(\"BookingStatusCode.7\", \"FLIGHT_CANCELLED\");\n\tresult.set(\"BookingStatusCode.8\", \"FLIGHT_COMPLETED\");\n\tresult.set(\"BookingStatusCode.9\", \"FLIGHT_ABORTED\");\n\tresult.set(\"FlightCategoryCode.0\", \"UNDEFINED\");\n\tresult.set(\"FlightCategoryCode.65\", \"COMMERCIAL_PHOTO\");\n\tresult.set(\"FlightCategoryCode.66\", \"COMMERCIAL_TAXI\");\n\tresult.set(\"FlightCategoryCode.67\", \"COMMERCIAL_OTHER\");\n\tresult.set(\"FlightCategoryCode.257\", \"EXAM_ANN_PROFICIENCY\");\n\tresult.set(\"FlightCategoryCode.258\", \"EXAM_ANN_IFR\");\n\tresult.set(\"FlightCategoryCode.259\", \"EXAM_CAA_PPL\");\n\tresult.set(\"FlightCategoryCode.260\", \"EXAM_CAA_CPL\");\n\tresult.set(\"FlightCategoryCode.261\", \"EXAM_CAA_CFI\");\n\tresult.set(\"FlightCategoryCode.262\", \"EXAM_CAA_IFR\");\n\tresult.set(\"FlightCategoryCode.263\", \"EXAM_CAA_CONVERSION\");\n\tresult.set(\"FlightCategoryCode.513\", \"INSTRUCTION_PPL\");\n\tresult.set(\"FlightCategoryCode.514\", \"INSTRUCTION_CPL\");\n\tresult.set(\"FlightCategoryCode.515\", \"INSTRUCTION_CFI\");\n\tresult.set(\"FlightCategoryCode.516\", \"INSTRUCTION_IFR\");\n\tresult.set(\"FlightCategoryCode.517\", \"INSTRUCTION_UL_CONV\");\n\tresult.set(\"FlightCategoryCode.518\", \"INSTRUCTION_COPTER_CONV\");\n\tresult.set(\"FlightCategoryCode.519\", \"INSTRUCTION_CPL_5\");\n\tresult.set(\"FlightCategoryCode.520\", \"INSTRUCTION_IFR_5\");\n\tresult.set(\"FlightCategoryCode.521\", \"INSTRUCTION_CPL_10\");\n\tresult.set(\"FlightCategoryCode.522\", \"INSTRUCTION_IFR_10\");\n\tresult.set(\"FlightCategoryCode.523\", \"INSTRUCTION_CPL_15\");\n\tresult.set(\"FlightCategoryCode.524\", \"INSTRUCTION_IFR_15\");\n\tresult.set(\"FlightCategoryCode.525\", \"INSTRUCTION_CPL_20\");\n\tresult.set(\"FlightCategoryCode.526\", \"INSTRUCTION_IFR_20\");\n\tresult.set(\"FlightCategoryCode.527\", \"INSTRUCTION_PPL_25\");\n\tresult.set(\"FlightCategoryCode.2049\", \"MAINTENANCE_ENGINE_RUNNING\");\n\tresult.set(\"FlightCategoryCode.2050\", \"MAINTENANCE_TRANSFER\");\n\tresult.set(\"LessonTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"LessonTypeCode.1\", \"INSTRUCTION\");\n\tresult.set(\"LessonTypeCode.2\", \"INSTRUCTION_CVFR\");\n\tresult.set(\"LessonTypeCode.3\", \"INSTRUCTION_IFR\");\n\tresult.set(\"LessonTypeCode.4\", \"INSTRUCTION_NAV\");\n\tresult.set(\"LessonTypeCode.5\", \"INSTRUCTION_NIGHT\");\n\tresult.set(\"LessonTypeCode.6\", \"OTHER\");\n\tresult.set(\"MessageTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"MessageTypeCode.1\", \"INFO\");\n\tresult.set(\"MessageTypeCode.2\", \"MEMO\");\n\tresult.set(\"MessageTypeCode.3\", \"EXTERNAL_PROCEDURE\");\n\tresult.set(\"MessageTypeCode.4\", \"INTERNAL_PROCEDURE\");\n\tresult.set(\"MessageTypeCode.5\", \"INCIDENT\");\n\tresult.set(\"MessageTypeCode.6\", \"POLICY\");\n\tresult.set(\"MessageTypeCode.7\", \"REPAIR\");\n\tresult.set(\"StatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"StatusCode.1\", \"PENDING\");\n\tresult.set(\"StatusCode.2\", \"IN_PROCESS\");\n\tresult.set(\"StatusCode.3\", \"COMPLETED\");\n\tresult.set(\"StatusCode.4\", \"CANCELLED\");\n\tresult.set(\"StatusCode.5\", \"AUTO_CANCELLED\");\n\tresult.set(\"AssessmentCode.0\", \"UNDEFINED\");\n\tresult.set(\"AssessmentCode.1\", \"EXCELLENT\");\n\tresult.set(\"AssessmentCode.2\", \"SATISFACTORY\");\n\tresult.set(\"AssessmentCode.3\", \"BELOW_AVERAGE\");\n\tresult.set(\"AssessmentCode.4\", \"UNSATISFACTORY\");\n\tresult.set(\"AssessmentCode.5\", \"INCOMPLETE\");\n\tresult.set(\"AssessmentCode.6\", \"REPEAT\");\n\tresult.set(\"AssessmentCode.7\", \"DEMO\");\n\tresult.set(\"CampaignStatusCode.0\", \"UNDEFINED\");\n\tresult.set(\"CampaignStatusCode.1\", \"PLANNING\");\n\tresult.set(\"CampaignStatusCode.2\", \"ACTIVE\");\n\tresult.set(\"CampaignStatusCode.3\", \"COMPLETED\");\n\tresult.set(\"CampaignStatusCode.4\", \"SUSPENDED\");\n\tresult.set(\"CurrencyCode.0\", \"UNDEFINED\");\n\tresult.set(\"CurrencyCode.1\", \"ILS\");\n\tresult.set(\"CurrencyCode.2\", \"USD\");\n\tresult.set(\"CurrencyCode.3\", \"EUR\");\n\tresult.set(\"InstructionTypeCode.0\", \"UNDEFINED\");\n\tresult.set(\"InstructionTypeCode.1\", \"FLIGHT\");\n\tresult.set(\"InstructionTypeCode.2\", \"CLASS\");\n\tresult.set(\"InstructionTypeCode.3\", \"SIMULATOR\");\n\tresult.set(\"LessonSubjectCode.0\", \"UNDEFINED\");\n\tresult.set(\"LessonSubjectCode.1\", \"PPL_01\");\n\tresult.set(\"LessonSubjectCode.2\", \"PPL_02\");\n\tresult.set(\"LessonSubjectCode.3\", \"PPL_03\");\n\tresult.set(\"LessonSubjectCode.4\", \"PPL_04\");\n\tresult.set(\"LessonSubjectCode.5\", \"PPL_05\");\n\tresult.set(\"LessonSubjectCode.6\", \"PPL_06\");\n\tresult.set(\"LessonSubjectCode.7\", \"PPL_07\");\n\tresult.set(\"LessonSubjectCode.8\", \"PPL_08\");\n\tresult.set(\"LessonSubjectCode.9\", \"PPL_09\");\n\tresult.set(\"LessonSubjectCode.10\", \"PPL_10\");\n\tresult.set(\"LessonSubjectCode.11\", \"PPL_11\");\n\tresult.set(\"LessonSubjectCode.12\", \"PPL_12\");\n\tresult.set(\"LessonSubjectCode.13\", \"PPL_13\");\n\tresult.set(\"LessonSubjectCode.14\", \"PPL_14\");\n\tresult.set(\"LessonSubjectCode.15\", \"PPL_15\");\n\tresult.set(\"LessonSubjectCode.16\", \"PPL_16\");\n\tresult.set(\"LessonSubjectCode.17\", \"PPL_17\");\n\tresult.set(\"LessonSubjectCode.18\", \"PPL_18\");\n\tresult.set(\"LessonSubjectCode.19\", \"PPL_19\");\n\tresult.set(\"LessonSubjectCode.20\", \"PPL_20\");\n\tresult.set(\"LessonSubjectCode.21\", \"PPL_21\");\n\tresult.set(\"LessonSubjectCode.22\", \"PPL_22\");\n\tresult.set(\"LessonSubjectCode.23\", \"PPL_23\");\n\tresult.set(\"LessonSubjectCode.24\", \"PPL_24\");\n\tresult.set(\"LessonSubjectCode.25\", \"PPL_25\");\n\tresult.set(\"LessonSubjectCode.26\", \"PPL_26\");\n\tresult.set(\"LessonSubjectCode.27\", \"PPL_27\");\n\tresult.set(\"LessonSubjectCode.28\", \"PPL_28\");\n\tresult.set(\"LessonSubjectCode.29\", \"PPL_29\");\n\tresult.set(\"LessonSubjectCode.30\", \"PPL_30\");\n\tresult.set(\"LessonSubjectCode.31\", \"PPL_31\");\n\tresult.set(\"LessonSubjectCode.32\", \"PPL_32\");\n\tresult.set(\"LessonSubjectCode.33\", \"PPL_33\");\n\tresult.set(\"LessonSubjectCode.34\", \"PPL_34\");\n\tresult.set(\"LessonSubjectCode.35\", \"PPL_35\");\n\tresult.set(\"LessonSubjectCode.36\", \"PPL_36\");\n\tresult.set(\"LessonSubjectCode.37\", \"PPL_37\");\n\tresult.set(\"LessonSubjectCode.38\", \"PPL_38\");\n\tresult.set(\"LessonSubjectCode.39\", \"PPL_39\");\n\tresult.set(\"LessonSubjectCode.51\", \"PPL_AZM_01\");\n\tresult.set(\"LessonSubjectCode.52\", \"PPL_AZM_02\");\n\tresult.set(\"LessonSubjectCode.53\", \"PPL_AZM_03\");\n\tresult.set(\"LessonSubjectCode.54\", \"PPL_AZM_04\");\n\tresult.set(\"LessonSubjectCode.55\", \"PPL_AZM_05\");\n\tresult.set(\"LessonSubjectCode.56\", \"PPL_AZM_06\");\n\tresult.set(\"LessonSubjectCode.57\", \"PPL_AZM_07\");\n\tresult.set(\"LessonSubjectCode.58\", \"PPL_AZM_08\");\n\tresult.set(\"LessonSubjectCode.59\", \"PPL_AZM_09\");\n\tresult.set(\"LessonSubjectCode.60\", \"PPL_AZM_10\");\n\tresult.set(\"LessonSubjectCode.61\", \"PPL_AZM_11\");\n\tresult.set(\"LessonSubjectCode.62\", \"PPL_AZM_12\");\n\tresult.set(\"LessonSubjectCode.63\", \"PPL_AZM_13\");\n\tresult.set(\"LessonSubjectCode.64\", \"PPL_AZM_14\");\n\tresult.set(\"LessonSubjectCode.65\", \"PPL_AZM_15\");\n\tresult.set(\"LessonSubjectCode.66\", \"PPL_AZM_16\");\n\tresult.set(\"LessonSubjectCode.101\", \"CPL_01\");\n\tresult.set(\"LessonSubjectCode.102\", \"CPL_02\");\n\tresult.set(\"LessonSubjectCode.103\", \"CPL_03\");\n\tresult.set(\"LessonSubjectCode.104\", \"CPL_04\");\n\tresult.set(\"LessonSubjectCode.105\", \"CPL_05\");\n\tresult.set(\"LessonSubjectCode.106\", \"CPL_06\");\n\tresult.set(\"LessonSubjectCode.107\", \"CPL_07\");\n\tresult.set(\"LessonSubjectCode.108\", \"CPL_08\");\n\tresult.set(\"LessonSubjectCode.109\", \"CPL_09\");\n\tresult.set(\"LessonSubjectCode.110\", \"CPL_10\");\n\tresult.set(\"LessonSubjectCode.111\", \"CPL_11\");\n\tresult.set(\"LessonSubjectCode.112\", \"CPL_12\");\n\tresult.set(\"LessonSubjectCode.113\", \"CPL_13\");\n\tresult.set(\"LessonSubjectCode.201\", \"IFR_05_01\");\n\tresult.set(\"LessonSubjectCode.202\", \"IFR_05_02\");\n\tresult.set(\"LessonSubjectCode.203\", \"IFR_05_03\");\n\tresult.set(\"LessonSubjectCode.204\", \"IFR_05_04\");\n\tresult.set(\"LessonSubjectCode.205\", \"IFR_05_05\");\n\tresult.set(\"LessonSubjectCode.221\", \"IFR_20_01\");\n\tresult.set(\"LessonSubjectCode.222\", \"IFR_20_02\");\n\tresult.set(\"LessonSubjectCode.223\", \"IFR_20_03\");\n\tresult.set(\"LessonSubjectCode.224\", \"IFR_20_04\");\n\tresult.set(\"LessonSubjectCode.225\", \"IFR_20_05\");\n\tresult.set(\"LessonSubjectCode.226\", \"IFR_20_06\");\n\tresult.set(\"LessonSubjectCode.227\", \"IFR_20_07\");\n\tresult.set(\"LessonSubjectCode.228\", \"IFR_20_08\");\n\tresult.set(\"LessonSubjectCode.229\", \"IFR_20_09\");\n\tresult.set(\"LessonSubjectCode.230\", \"IFR_20_10\");\n\tresult.set(\"LessonSubjectCode.231\", \"IFR_20_11\");\n\tresult.set(\"LessonSubjectCode.232\", \"IFR_20_12\");\n\tresult.set(\"LessonSubjectCode.233\", \"IFR_20_13\");\n\tresult.set(\"LessonSubjectCode.234\", \"IFR_20_14\");\n\tresult.set(\"LessonSubjectCode.235\", \"IFR_20_15\");\n\tresult.set(\"LessonSubjectCode.236\", \"IFR_20_16\");\n\tresult.set(\"LessonSubjectCode.237\", \"IFR_20_17\");\n\tresult.set(\"LessonSubjectCode.238\", \"IFR_20_18\");\n \n\treturn result;\n}\n","\nimport { AuditLogsEndPoint } from '.';\nimport { MessageConfirmsEndPoint } from '.';\nimport { CertificatesEndPoint } from '.';\nimport { MyAuthEndPoint } from '.';\nimport { PriceListEndPoint } from '.';\nimport { AirplanesEndPoint } from '.';\nimport { DocumentsEndPoint } from '.';\nimport { FlightsEndPoint } from '.';\nimport { LeadsEndPoint } from '.';\nimport { MaintenancesEndPoint } from '.';\nimport { LookupsEndPoint } from '.';\nimport { SystemMessagesEndPoint } from '.';\nimport { UsersEndPoint } from '.';\nimport { AccountsEndPoint } from '.';\nimport { FlightTicketsEndPoint } from '.';\nimport { CampaignsEndPoint } from '.';\nimport { GroupsEndPoint } from '.';\nimport { UserEndPoint } from '.';\nimport { MyBookingsEndPoint } from '.';\nimport { BookingsEndPoint } from '.';\nimport { CreditsEndPoint } from '.';\nimport { SyllabusEndPoint } from '.';\nimport { SystemConfigsEndPoint } from '.';\nimport { MyFlightsEndPoint } from '.';\nimport { BookingSlotsEndPoint } from '.';\nimport { ContactsEndPoint } from '.';\nimport { SystemEndPoint } from '.';\nimport { MyCreditsEndPoint } from '.';\n\nexport const Services = [\n AuditLogsEndPoint,\n MessageConfirmsEndPoint,\n CertificatesEndPoint,\n MyAuthEndPoint,\n PriceListEndPoint,\n AirplanesEndPoint,\n DocumentsEndPoint,\n FlightsEndPoint,\n LeadsEndPoint,\n MaintenancesEndPoint,\n LookupsEndPoint,\n SystemMessagesEndPoint,\n UsersEndPoint,\n AccountsEndPoint,\n FlightTicketsEndPoint,\n CampaignsEndPoint,\n GroupsEndPoint,\n UserEndPoint,\n MyBookingsEndPoint,\n BookingsEndPoint,\n CreditsEndPoint,\n SyllabusEndPoint,\n SystemConfigsEndPoint,\n MyFlightsEndPoint,\n BookingSlotsEndPoint,\n ContactsEndPoint,\n SystemEndPoint,\n MyCreditsEndPoint,\n \n]\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Services } from './lib/services.export';\nimport { RestUtil } from './utils/rest-util';\nimport { GooxConfig } from './config';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule]\n})\nexport class NgxGooxLibModule {\n static forRoot(config: GooxConfig): ModuleWithProviders<NgxGooxLibModule> {\n return {\n ngModule: NgxGooxLibModule,\n providers: [\n { provide: 'config', useValue: config },\n RestUtil,\n ...Services\n ]\n };\n }\n}\n\n","/*\n * Public API Surface of ngx-goox-lib\n */\n\nexport * from './ngx-goox-lib.module';\nexport * from './lib';\nexport * from './utils';\nexport * from './config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RestUtil"],"mappings":"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QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,C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iB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;AAGjD,IAAA,OAAO,MAAM;AACjB;;ACvpBA;IACY;AAAZ,CAAA,UAAY,UAAU,EAAA;;AAGlB,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;;AAGd,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AAEtB,CAAC,EApBW,UAAU,KAAV,UAAU,GAoBrB,EAAA,CAAA,CAAA;AAED;SACgB,cAAc,GAAA;IAC7B,IAAI,MAAM,GAAiC,EAAE;AAG7C,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAEpF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;AAE1F,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAExF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAExF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;AAG/F,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,cAAc,GAAA;AAC1B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAsB;IAG7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAE7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAEzC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAE7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAE7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAGpD,IAAA,OAAO,MAAM;AACjB;;AC7DA;IACY;AAAZ,CAAA,UAAY,UAAU,EAAA;;AAGlB,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM;;AAGN,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM;;AAGN,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM;;AAGN,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,EAAA,CAAA,GAAA,IAAO;;AAGP,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,EAAA,CAAA,GAAA,IAAO;;AAGP,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,EAAA,CAAA,GAAA,IAAO;;AAGP,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAQ;;AAGR,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAQ;;AAGR,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,GAAA,CAAA,GAAA,KAAS;;AAGT,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAU;;AAGV,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAU;;AAGV,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAU;;AAGV,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAU;;AAGV,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAW;;AAGX,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAW;;AAGX,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAW;;AAGX,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,MAAA,CAAA,GAAA,KAAY;;AAGZ,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,MAAA,CAAA,GAAA,KAAY;;AAGZ,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,MAAA,CAAA,GAAA,KAAY;;AAGZ,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,OAAA,CAAA,GAAA,KAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,OAAA,CAAA,GAAA,KAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,OAAA,CAAA,GAAA,KAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,OAAA,CAAA,GAAA,KAAa;;AAGb,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,QAAA,CAAA,GAAA,KAAc;AAElB,CAAC,EAhFW,UAAU,KAAV,UAAU,GAgFrB,EAAA,CAAA,CAAA;AAED;SACgB,cAAc,GAAA;IAC7B,IAAI,MAAM,GAAiC,EAAE;AAG7C,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAElF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AAE1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAqB,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAGzE,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,cAAc,GAAA;AAC1B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAsB;IAG7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAE7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAEvC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAE/B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;AAG9B,IAAA,OAAO,MAAM;AACjB;;ACzMA;IACY;AAAZ,CAAA,UAAY,gBAAgB,EAAA;;AAGxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;;AAGT,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;;AAGT,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;;AAGT,IAAA,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;;AAGf,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AAEb,CAAC,EAvBW,gBAAgB,KAAhB,gBAAgB,GAuB3B,EAAA,CAAA,CAAA;AAED;SACgB,oBAAoB,GAAA;IACnC,IAAI,MAAM,GAAuC,EAAE;AAGnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;AAEtG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAElG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAElG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAElG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;AAE9G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAG/F,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,oBAAoB,GAAA;AAChC,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA4B;IAGnD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IAE3C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IAE3C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IAE3C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC;IAEvD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;AAGxC,IAAA,OAAO,MAAM;AACjB;;ACpEA;IACY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;;AAGzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;;AAGd,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;;AAGZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB;;AAGnB,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB;;AAGnB,IAAA,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;;AAGlB,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,iBAAA,CAAA,iBAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAuB;;AAGvB,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAe;AAEnB,CAAC,EAnCW,iBAAiB,KAAjB,iBAAiB,GAmC5B,EAAA,CAAA,CAAA;AAED;SACgB,qBAAqB,GAAA;IACpC,IAAI,MAAM,GAAwC,EAAE;AAGpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;AAE/G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;AAE3G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,eAAe,EAAE,mCAAmC,CAAC,CAAC;AAEzH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,eAAe,EAAE,mCAAmC,CAAC,CAAC;AAEzH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAC;AAEvH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAEvG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAEvG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;AAE7G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,mBAAmB,EAAE,uCAAuC,CAAC,CAAC;AAEjI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA4B,iBAAiB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;AAG5G,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,qBAAqB,GAAA;AACjC,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA6B;IAGpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAElD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAEhE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAEhE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAE9D,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IAExE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC;AAGnD,IAAA,OAAO,MAAM;AACjB;;AChGA;IACY;AAAZ,CAAA,UAAY,eAAe,EAAA;;AAGvB,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AAEjB,CAAC,EAjBW,eAAe,KAAf,eAAe,GAiB1B,EAAA,CAAA,CAAA;AAED;SACgB,mBAAmB,GAAA;IAClC,IAAI,MAAM,GAAsC,EAAE;AAGlD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;AAEnG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAEjG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;AAEvG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;AAGpG,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,mBAAmB,GAAA;AAC/B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA2B;IAGlD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;IAElD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;IAElD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;AAG/C,IAAA,OAAO,MAAM;AACjB;;ACtDA;IACY;AAAZ,CAAA,UAAY,cAAc,EAAA;;AAGtB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO;;AAGP,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;;AAGZ,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;;AAGd,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;;AAGd,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AAEhB,CAAC,EA1BW,cAAc,KAAd,cAAc,GA0BzB,EAAA,CAAA,CAAA;AAED;SACgB,kBAAkB,GAAA;IACjC,IAAI,MAAM,GAAqC,EAAE;AAGjD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAExF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAEpG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AAElG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAEpG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AAEtG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AAEtG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AAG/F,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,kBAAkB,GAAA;AAC9B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA0B;IAGjD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAEjD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC;IAErC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAEjD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAEjD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;AAG5C,IAAA,OAAO,MAAM;AACjB;;AC3EA;IACY;AAAZ,CAAA,UAAY,YAAY,EAAA;AAExB,CAAC,EAFW,YAAY,KAAZ,YAAY,GAEvB,EAAA,CAAA,CAAA;AAED;SACgB,gBAAgB,GAAA;IAC/B,IAAI,MAAM,GAAmC,EAAE;AAI5C,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,gBAAgB,GAAA;AAC5B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAwB;AAI5C,IAAA,OAAO,MAAM;AACjB;;ACrBA;IACY;AAAZ,CAAA,UAAY,mBAAmB,EAAA;;AAG3B,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;;AAGf,IAAA,mBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;;AAGZ,IAAA,mBAAA,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,mBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;;AAGT,IAAA,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AAEd,CAAC,EAvBW,mBAAmB,KAAnB,mBAAmB,GAuB9B,EAAA,CAAA,CAAA;AAED;SACgB,uBAAuB,GAAA;IACtC,IAAI,MAAM,GAA0C,EAAE;AAGtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA8B,mBAAmB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AAE7G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA8B,mBAAmB,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC;AAEvH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA8B,mBAAmB,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC;AAEjH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA8B,mBAAmB,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;AAE/G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA8B,mBAAmB,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;AAE3G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA8B,mBAAmB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AAG1G,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,uBAAuB,GAAA;AACnC,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA+B;IAGtD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAEhD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC;IAE1D,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAEpD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC;IAElD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAG7C,IAAA,OAAO,MAAM;AACjB;;ACpEA;IACY;AAAZ,CAAA,UAAY,eAAe,EAAA;;AAGvB,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;;AAGZ,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,eAAA,CAAA,eAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB;;AAGhB,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;;AAGT,IAAA,eAAA,CAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,eAAA,CAAA,eAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;AAEnB,CAAC,EA7BW,eAAe,KAAf,eAAe,GA6B1B,EAAA,CAAA,CAAA;AAED;SACgB,mBAAmB,GAAA;IAClC,IAAI,MAAM,GAAsC,EAAE;AAGlD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAEjG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;AAErG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAEjG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,YAAY,EAAE,8BAA8B,CAAC,CAAC;AAE7G,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;AAEvG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAE/F,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;AAEnG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;AAGxG,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,mBAAmB,GAAA;AAC/B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA2B;IAGlD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;IAElD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC;IAEhD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC;IAExD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;IAElD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;IAE1C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC;IAE9C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC;AAGnD,IAAA,OAAO,MAAM;AACjB;;AClFA;IACY;AAAZ,CAAA,UAAY,YAAY,EAAA;;AAGpB,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;;AAGR,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO;;AAGP,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;;AAGV,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AAEZ,CAAC,EAjBW,YAAY,KAAZ,YAAY,GAiBvB,EAAA,CAAA,CAAA;AAED;SACgB,gBAAgB,GAAA;IAC/B,IAAI,MAAM,GAAmC,EAAE;AAG/C,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAEpF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;AAElF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAExF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAGjF,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,gBAAgB,GAAA;AAC5B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAwB;IAG/C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAErC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;IAEnC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;IAEzC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;AAGlC,IAAA,OAAO,MAAM;AACjB;;ACtDA;IACY;AAAZ,CAAA,UAAY,gBAAgB,EAAA;;AAGxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;;AAGb,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AAEZ,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,GAW3B,EAAA,CAAA,CAAA;AAED;SACgB,oBAAoB,GAAA;IACnC,IAAI,MAAM,GAAuC,EAAE;AAGnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;AAEtG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAG7F,IAAA,OAAO,MAAM;AACjB;AAEA;SACgB,oBAAoB,GAAA;AAChC,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA4B;IAGnD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;IAE/C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;AAGtC,IAAA,OAAO,MAAM;AACjB;;ACvCA;MACa,SAAS,CAAA;IA4CjB,WAAY,CAAA,QAAiB,EAAE,QAAiB,EAAE,MAAe,EAAE,YAAqB,EAAE,WAAoB,EAAE,QAAmB,EAAE,QAAkB,EAAE,QAAiB,EAAE,KAAc,EAAE,QAAiB,EAAE,OAAkB,EAAE,SAAkB,EAAE,MAAe,EAAE,GAAa,EAAA;AAClR,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;;AACvD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAC7C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;;AAM9C;;AC1DD;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAoEzC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;AAC7E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;AACxE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,yBAAyB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGzD,IAAA,OAAO,MAAM;AACd;;ACtHA;MACa,aAAa,CAAA;IAoBrB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAE,SAAkB,EAAE,QAAiB,EAAE,WAAoB,EAAE,MAAgB,EAAA;AACpH,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAC7C,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;;AAMvD;;ACjCD;MACa,cAAc,CAAA;IAiBtB,WAAY,CAAA,kBAA2B,EAAE,wBAAiC,EAAE,iBAA0B,EAAE,SAAkB,EAAE,kBAA2B,EAAA;AACpJ,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;;AACtG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;;AAM3F;;AC1BD;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAgC7C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM;AACd;;AC/DA;MACa,cAAc,CAAA;IAoBtB,WAAY,CAAA,MAAe,EAAE,MAAkB,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,MAA4B,EAAA;AACvI,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAC5D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;;AAMvD;;AChCD;AACM,MAAO,KAAM,SAAQ,YAAY,CAAA;AAoBtC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,kBAAkB,GAAA;IAC9B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAG3D,IAAA,OAAO,MAAM;AACd;;AChDA;MACa,cAAc,CAAA;AAWtB,IAAA,WAAA,CAAY,MAAe,EAAE,MAAqB,EAAE,OAAiB,EAAA;AAClE,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;;AAM1D;;ACnBD;MACa,WAAW,CAAA;AAcnB,IAAA,WAAA,CAAY,MAAe,EAAE,IAAqB,EAAE,MAAyB,EAAE,UAAsB,EAAA;AAClG,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;;AAMnE;;ACpBD;AACM,MAAO,cAAe,SAAQ,YAAY,CAAA;AAgF/C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,2BAA2B,GAAA;IACvC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM;AACd;;ACpIA;AACM,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAoBhD,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,4BAA4B,GAAA;IACxC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGrD,IAAA,OAAO,MAAM;AACd;;AC/CA;MACa,cAAc,CAAA;IAQtB,WAAY,CAAA,MAAe,EAAE,MAA4B,EAAA;AACtD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;;AAMvD;;ACjBD;MACa,WAAW,CAAA;IAQnB,WAAY,CAAA,MAAe,EAAE,MAAyB,EAAA;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;;AAMvD;;ACfD;MACa,kBAAkB,CAAA;IAiB1B,WAAY,CAAA,MAAe,EAAE,UAAmB,EAAE,MAAgC,EAAE,MAAqB,EAAE,KAAiB,EAAA;AACzH,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAC5D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAMpD;;AC9BD;MACa,cAAc,CAAA;AAWtB,IAAA,WAAA,CAAY,MAAe,EAAE,IAA2B,EAAE,IAA4B,EAAA;AACnF,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;;AAMjD;;ACbD;AACA;AACM,MAAO,UAAW,SAAQ,YAAY,CAAA;AAgC3C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,uBAAuB,GAAA;IACnC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;AACrF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM;AACd;;ACxEA;MACa,cAAc,CAAA;AAuBtB,IAAA,WAAA,CAAY,MAAe,EAAE,MAAkB,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,QAAiB,EAAA;AACrI,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;;AAM7D;;ACnCD;MACa,kBAAkB,CAAA;IAiB1B,WAAY,CAAA,MAAe,EAAE,SAAkB,EAAE,MAAqB,EAAE,IAAuB,EAAE,KAAiB,EAAA;AAC/G,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAMpD;;AC9BD;MACa,aAAa,CAAA;IAoBrB,WAAY,CAAA,MAAe,EAAE,SAAkB,EAAE,QAAiB,EAAE,IAA4B,EAAE,MAAkB,EAAE,SAAkB,EAAA;AACrI,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;;AAMhE;;AC9BD;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AA+C5C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACxE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAGtE,IAAA,OAAO,MAAM;AACd;;ACpFA;AACA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AAmC9C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACzE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGzE,IAAA,OAAO,MAAM;AACd;;ACtEA;MACa,YAAY,CAAA;AAWpB,IAAA,WAAA,CAAY,mBAA4B,EAAE,kBAA2B,EAAE,qBAA8B,EAAA;AAClG,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;;AAMpG;;ACdD;AACM,MAAO,UAAW,SAAQ,YAAY,CAAA;AA0E3C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,uBAAuB,GAAA;IACnC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAGxD,IAAA,OAAO,MAAM;AACd;;ACzHA;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AAkD5C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGvD,IAAA,OAAO,MAAM;AACd;;AC1FA;MACa,WAAW,CAAA;AAWnB,IAAA,WAAA,CAAY,KAAc,EAAE,MAAe,EAAE,KAAc,EAAA;AACxD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAC7C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAMpD;;ACjBD;AACM,MAAO,OAAQ,SAAQ,YAAY,CAAA;AAkDxC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,oBAAoB,GAAA;IAChC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGzD,IAAA,OAAO,MAAM;AACd;;ACvFA;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AA6BzC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG3D,IAAA,OAAO,MAAM;AACd;;AC9CA;AACM,MAAO,MAAO,SAAQ,YAAY,CAAA;AA6HvC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,mBAAmB,GAAA;IAC/B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACxE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGhE,IAAA,OAAO,MAAM;AACd;;ACjMA;MACa,cAAc,CAAA;AA6BtB,IAAA,WAAA,CAAY,SAAkB,EAAE,mBAA8C,EAAE,WAA8B,EAAE,SAA0B,EAAE,WAA8B,EAAE,IAAgB,EAAE,OAAsB,EAAE,KAAoB,EAAE,UAAuB,EAAA;AAChQ,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAC7C,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;;AAMnE;;ACrDD;MACa,WAAW,CAAA;IAQnB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAA;AACrC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAMpD;;ACjBD;MACa,MAAM,CAAA;AAWd,IAAA,WAAA,CAAY,YAAqB,EAAE,aAAsB,EAAE,WAAoB,EAAA;AAC5E,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;;AAMtE;;ACjBD;MACa,MAAM,CAAA;IAsCd,WAAY,CAAA,MAAe,EAAE,IAAqB,EAAE,eAAoC,EAAE,OAAgB,EAAE,OAAgB,EAAE,aAAiC,EAAE,UAA2B,EAAE,QAAiB,EAAE,aAAsB,EAAE,oBAA6B,EAAE,qBAA8B,EAAE,cAAuB,EAAA;AAC5T,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;AAC3E,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAC5D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;AAC7F,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;;AAM/E;;AC5DD;MACa,OAAO,CAAA;AAgCf,IAAA,WAAA,CAAY,cAAgC,EAAE,WAAoB,EAAE,kBAA2B,EAAE,cAAuB,EAAE,aAAsB,EAAE,kBAA2B,EAAE,YAAqB,EAAE,kBAA2B,EAAE,mBAA4B,EAAE,yBAAkC,EAAA;AAChS,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AACxE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AACxE,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,yBAAyB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,yBAAyB,GAAG,yBAAyB;;;AAMhH;;AClDD;MACa,UAAU,CAAA;AAuBlB,IAAA,WAAA,CAAY,oBAA8B,EAAE,kBAA4B,EAAE,kBAA2B,EAAE,WAAoB,EAAE,QAAiB,EAAE,iBAA2B,EAAE,eAAwB,EAAA;AAClM,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;;AAMlF;;ACnCD;MACa,UAAU,CAAA;IAQlB,WAAY,CAAA,MAAmB,EAAE,WAA4B,EAAA;AAC1D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;;AAMtE;;ACnBD;MACa,OAAO,CAAA;IAoBf,WAAY,CAAA,OAAgB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAAc,EAAE,QAAiB,EAAA;AACzG,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAC7C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;;AAM7D;;ACjCD;MACa,wBAAwB,CAAA;AAchC,IAAA,WAAA,CAAY,aAAsB,EAAE,gBAAyB,EAAE,gBAAyB,EAAE,mBAA4B,EAAA;AACnH,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAC9E,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAC9E,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;;AAM9F;;ACzBD;MACa,gBAAgB,CAAA;IAsCxB,WAAY,CAAA,kBAA2B,EAAE,wBAAiC,EAAE,iBAA0B,EAAE,SAAkB,EAAE,kBAA2B,EAAE,uBAAgC,EAAE,sBAA+B,EAAE,uBAAgC,EAAE,gBAAyB,EAAE,qBAA8B,EAAE,kBAA2B,EAAE,oBAA6B,EAAA;AAChX,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;;AACtG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB;;AACnG,QAAA,IAAI,sBAAsB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB;;AAChG,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB;;AACnG,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAC9E,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;AAC7F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;;AAMjG;;ACrDD;AACM,MAAO,IAAK,SAAQ,YAAY,CAAA;AA8DrC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,iBAAiB,GAAA;IAC7B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,uBAAuB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM;AACd;;ACxGA;MACa,SAAS,CAAA;AAcjB,IAAA,WAAA,CAAY,SAAkB,EAAE,WAA0B,EAAE,MAAuB,EAAE,SAAkB,EAAA;AACpG,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;;AAMhE;;AC3BD;MACa,MAAM,CAAA;IAiBd,WAAY,CAAA,SAAkB,EAAE,iBAA0B,EAAE,eAAwB,EAAE,eAAwB,EAAE,oBAA6B,EAAA;AAC1I,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;AAC3E,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;AAC3E,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;;AAMjG;;AC7BD;MACa,SAAS,CAAA;IAiBjB,WAAY,CAAA,iBAA0B,EAAE,kBAA2B,EAAE,mBAA4B,EAAE,uBAAgC,EAAE,iBAA0B,EAAA;AAC5J,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB;;AACnG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;;AAMxF;;AC3BD;AACM,MAAO,UAAW,SAAQ,YAAY,CAAA;AAiB3C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,uBAAuB,GAAA;IACnC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG3D,IAAA,OAAO,MAAM;AACd;;AC1CA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AA8D9C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGvD,IAAA,OAAO,MAAM;AACd;;AChGA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AAgF9C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM;AACd;;ACtIA;MACa,gBAAgB,CAAA;AAuBxB,IAAA,WAAA,CAAY,EAAW,EAAE,IAAa,EAAE,QAAiB,EAAE,GAAY,EAAE,SAAkB,EAAE,SAAkB,EAAE,QAAiB,EAAA;AAC/H,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE;;AACpC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;;AAM7D;;AClCD;AACM,MAAO,WAAY,SAAQ,UAAU,CAAA;AAY1C;SAGe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGrD,IAAA,OAAO,MAAM;AACd;;ACzBA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AAoB9C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM;AACd;;AClDA;MACa,OAAO,CAAA;IAiBf,WAAY,CAAA,MAAe,EAAE,IAAa,EAAE,KAAc,EAAE,OAAgB,EAAE,OAAgB,EAAA;AAC3F,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAC7C,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;;AAM1D;;AC7BD;MACa,WAAW,CAAA;IAQnB,WAAY,CAAA,GAAY,EAAE,KAAW,EAAA;AAClC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAMpD;;ACZD;MACa,aAAa,CAAA;AA6BrB,IAAA,WAAA,CAAY,MAAe,EAAE,MAAkB,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAuB,EAAE,MAA2B,EAAE,OAA6B,EAAE,OAA6B,EAAA;AAC7N,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAC5D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;;AAM1D;;AChDD;MACa,aAAa,CAAA;AAkGrB,IAAA,WAAA,CAAY,QAAiB,EAAE,YAAqB,EAAE,QAAiB,EAAE,iBAA0B,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,YAAqB,EAAE,YAAqB,EAAE,OAA2B,EAAE,SAAkB,EAAE,IAAqB,EAAE,WAAoB,EAAE,iBAA0B,EAAE,OAAgB,EAAE,YAAqB,EAAE,oBAA6B,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,kBAA2B,EAAE,gBAAyB,EAAE,qBAA8B,EAAE,UAAqB,EAAE,IAAe,EAAE,QAAiB,EAAE,QAAiB,EAAE,aAAsB,EAAE,mBAA4B,EAAE,cAAuB,EAAE,cAAuB,EAAE,aAAuB,EAAE,aAAuB,EAAE,UAAmB,EAAA;AACvxB,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAC9E,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;AAC7F,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAC5D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AACxE,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AACxE,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;;AAMnE;;AC3ID;MACa,OAAO,CAAA;AAcf,IAAA,WAAA,CAAY,mBAA4B,EAAE,mBAA4B,EAAE,mBAA4B,EAAE,cAAuB,EAAA;AAC1H,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;;AAM/E;;ACzBD;MACa,OAAO,CAAA;AAcf,IAAA,WAAA,CAAY,OAAgB,EAAE,YAAqB,EAAE,UAAqB,EAAE,IAAe,EAAA;AACxF,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAC5D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;;AAMjD;;ACpBD;AACA;AACM,MAAO,IAAK,SAAQ,YAAY,CAAA;AA6BrC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,iBAAiB,GAAA;IAC7B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAGlE,IAAA,OAAO,MAAM;AACd;;AChEA;MACa,cAAc,CAAA;IAQtB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAA;AACrC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAMpD;;ACjBD;MACa,SAAS,CAAA;IAiBjB,WAAY,CAAA,SAAkB,EAAE,iBAA0B,EAAE,eAAwB,EAAE,eAAwB,EAAE,oBAA6B,EAAA;AAC1I,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AACzD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;AAC3E,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;AAC3E,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;;AAMjG;;ACvBD;AACM,MAAO,OAAQ,SAAQ,YAAY,CAAA;AAyFxC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,oBAAoB,GAAA;IAChC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC3E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAGlE,IAAA,OAAO,MAAM;AACd;;AC7IA;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAsCzC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM;AACd;;ACrEA;AACM,MAAO,KAAM,SAAQ,YAAY,CAAA;AAiBtC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,kBAAkB,GAAA;IAC9B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM;AACd;;AC5CA;AACA;AACM,MAAO,MAAO,SAAQ,YAAY,CAAA;AAoBvC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,mBAAmB,GAAA;IAC/B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGvD,IAAA,OAAO,MAAM;AACd;;AC7CA;AACM,MAAO,OAAQ,SAAQ,YAAY,CAAA;AA2DxC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,oBAAoB,GAAA;IAChC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM;AACd;;ACpGA;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AA0B5C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGzD,IAAA,OAAO,MAAM;AACd;;ACrDA;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAW7C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AAG1D,IAAA,OAAO,MAAM;AACd;;AClCA;AACM,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAiBhD,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,4BAA4B,GAAA;IACxC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AAG7D,IAAA,OAAO,MAAM;AACd;;ACzCA;AACM,MAAO,MAAO,SAAQ,YAAY,CAAA;AAkDvC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,mBAAmB,GAAA;IAC/B,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG1D,IAAA,OAAO,MAAM;AACd;;ACrFA;AACM,MAAO,cAAe,SAAQ,YAAY,CAAA;AAgC/C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,2BAA2B,GAAA;IACvC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM;AACd;;AC/DA;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAuBzC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGxD,IAAA,OAAO,MAAM;AACd;;ACrDA;MACa,eAAe,CAAA;AAWvB,IAAA,WAAA,CAAY,MAAe,EAAE,MAA6B,EAAE,QAAkB,EAAA;AAC3E,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAChD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;;AAM7D;;ACtBD;MACa,QAAQ,CAAA;AAWhB,IAAA,WAAA,CAAY,GAAY,EAAE,GAAY,EAAE,GAAY,EAAA;AACjD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AACvC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;;AAM9C;;AChBD;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAyCzC,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM;AACd;;AC/EA;MACa,YAAY,CAAA;AAgCpB,IAAA,WAAA,CAAY,kBAA2B,EAAE,qBAA8B,EAAE,iBAA0B,EAAE,mBAA4B,EAAE,2BAAoC,EAAE,oBAA6B,EAAE,kBAA2B,EAAE,uBAAgC,EAAE,qBAA8B,EAAE,wBAAiC,EAAA;AACrU,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;AAC7F,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,2BAA2B,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,2BAA2B,GAAG,2BAA2B;;AAC/G,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,sBAAsB,GAAG,uBAAuB;;AAClG,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;AAC7F,QAAA,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;;;AAM7G;;AC/CD;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAW7C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM;AACd;;ACjCA;MACa,cAAc,CAAA;AA8GtB,IAAA,WAAA,CAAY,QAAiB,EAAE,YAAqB,EAAE,QAAiB,EAAE,iBAA0B,EAAE,OAA2B,EAAE,IAAqB,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,YAAqB,EAAE,YAAqB,EAAE,WAAoB,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,YAAqB,EAAE,YAAqB,EAAE,WAAoB,EAAE,OAAgB,EAAE,YAAqB,EAAE,WAAoB,EAAE,iBAA0B,EAAE,gBAAyB,EAAE,oBAA6B,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,qBAA8B,EAAE,oBAA6B,EAAE,YAAqB,EAAE,aAAsB,EAAE,mBAA4B,EAAE,gBAAiC,EAAE,oBAA6B,EAAE,qBAA8B,EAAE,cAAuB,EAAE,cAAuB,EAAE,WAAoB,EAAE,UAAmB,EAAA;AACv6B,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AACnD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;AAC9E,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AACjF,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,qBAAqB;;AAC/F,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAClE,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB;;AACxE,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;;AAC7F,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AACxE,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AACxE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;;AAMnE;;AC5JD;MACa,IAAI,CAAA;AAuBZ,IAAA,WAAA,CAAY,QAAiB,EAAE,WAAoB,EAAE,IAAa,EAAE,mBAA4B,EAAE,kBAA2B,EAAE,aAAsB,EAAE,mBAA4B,EAAA;AAChL,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AACtD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAC/D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAC1C,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;AACvF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AACrE,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;;;AAM9F;;ACjCD;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AAmC5C,IAAA,GAAG,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,EAAE;;QAEV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAInB;SAGe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAGvD,IAAA,OAAO,MAAM;AACd;;ACtEA;MACa,gBAAgB,CAAA;AAWxB,IAAA,WAAA,CAAY,oBAA6B,EAAE,kBAA2B,EAAE,iBAA0B,EAAA;AAC/F,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AACpF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;;AAMxF;;ACxBD;MACa,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;;QAGW,IAAI,CAAA,IAAA,GAAW,CAAC;;QAGhB,IAAK,CAAA,KAAA,GAAW,EAAE;;AAC5B;;ACPD;AACM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;AAApD,IAAA,WAAA,GAAA;;;QAGW,IAAG,CAAA,GAAA,GAAW,EAAE;;QAGhB,IAAI,CAAA,IAAA,GAAW,EAAE;;AAC3B;;ACTD;MACa,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;;QAEW,IAAM,CAAA,MAAA,GAAQ,EAAE;;AAC1B;;ACHD;AACM,MAAO,cAAkB,SAAQ,gBAAgB,CAAA;AAAvD,IAAA,WAAA,GAAA;;;QAGW,IAAI,CAAA,IAAA,GAAW,CAAC;;QAGhB,IAAI,CAAA,IAAA,GAAW,CAAC;;QAGhB,IAAK,CAAA,KAAA,GAAW,CAAC;;QAGjB,IAAK,CAAA,KAAA,GAAW,CAAC;;AAI3B;;ACjBD;AACM,MAAO,gBAAoB,SAAQ,gBAAgB,CAAA;AAAzD,IAAA,WAAA,GAAA;;;QAGW,IAAI,CAAA,IAAA,GAAW,CAAC;;QAGhB,IAAI,CAAA,IAAA,GAAW,CAAC;;QAGhB,IAAK,CAAA,KAAA,GAAW,CAAC;;QAGjB,IAAK,CAAA,KAAA,GAAW,CAAC;;QAGjB,IAAI,CAAA,IAAA,GAAQ,EAAE;;AAExB;;AChBD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,QAAA,cAAc,EAAG,kBAAkB;AACnC,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,6BAA6B,EAAE,GAAG;AAClC,QAAA,8BAA8B,EAAE,2MAA2M;AAC3O,QAAA,gCAAgC,EAAE,8EAA8E;KACjH;CACF;AAGD;MAEa,QAAQ,CAAA;;AAGnB,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI;;;AAGxB,IAAA,MAAM,CAAI,IAAU,EAAE,GAAW,EAAE,GAAG,MAAgB,EAAA;QAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AAEjD,QAAA,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE;QACzC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE;AACzD,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,YAAY,EAAE,MAAM;AACrB,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAI,GAAG,CAAC;;;;AAKlC,IAAA,QAAQ,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,MAAgB,EAAA;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QAEjD,IAAI,YAAY,GAAG,QAAQ;;AAG3B,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;YACjB,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACtB,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACvC,oBAAA,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;;;AAG3B,SAAC,CAAC;;QAGF,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;AAChC,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE;AACzD,SAAA,CAAC;;;AAIJ,IAAA,SAAS,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,MAAgB,EAAA;QAE1D,IAAI,YAAY,GAAG,QAAQ;;AAG3B,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;YACjB,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACtB,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACvC,oBAAA,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;;;AAG3B,SAAC,CAAC;QAEF,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QAE5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,YAAY;AAC5B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;;AAKjC,IAAA,GAAG,CAAI,GAAW,EAAE,GAAG,MAAgB,EAAA;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,WAAW,EAAE,WAAW,CAAC;;;AAInD,IAAA,IAAI,CAAI,GAAW,EAAE,IAAa,EAAE,GAAG,MAAgB,EAAA;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC;;;AAI1D,IAAA,GAAG,CAAI,GAAW,EAAE,IAAa,EAAE,GAAG,MAAgB,EAAA;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC;;;AAIzD,IAAA,KAAK,CAAI,GAAW,EAAE,IAAa,EAAE,GAAG,MAAgB,EAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC;;;AAI3D,IAAA,MAAM,CAAI,GAAW,EAAE,GAAG,MAAgB,EAAA;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,WAAW,EAAE,WAAW,CAAC;;;AAI9C,IAAA,QAAQ,CAAC,GAAW,EAAE,GAAG,MAAgB,EAAA;QAC/C,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA,EAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAE;;;AAI3H,IAAA,WAAW,CAAC,QAAgB,EAAA;;QAElC,IAAI,WAAW,GAAG,kBAAkB;QACpC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACrF,WAAW,GAAG,YAAY;;aACrB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,WAAW;;aACpB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5F,WAAW,GAAG,YAAY;;aACrB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,UAAU;;aACnB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,UAAU;;aACnB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,iBAAiB;;aAC1B,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,WAAW,GAAG,mEAAmE;;AAEnF,QAAA,OAAO,WAAW;;+GAhIT,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAR,QAAQ,EAAA,CAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB;;;ACfD;MACa,YAAY,CAAA;AAGxB;;MCFY,UAAU,CAAA;AADvB,IAAA,WAAA,GAAA;QAEI,IAAG,CAAA,GAAA,GAAW,EAAE;AACnB;+GAFY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAV,UAAU,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;;ACOD;MAEa,oBAAoB,CAAA;;IAM/B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,eAAe;AAI/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG/E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG/H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG9H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,IAAI,CAAC,SAAkB,EAAE,MAAe,EAAE,MAAW,EAAE,KAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjH,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGjF;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE;;AAGvC;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC;;AAGtE;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC;;AAhFjE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAMX,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,oBAAoB,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,cAAc,CAAA;;IAMzB,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,UAAU;AAI1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,YAAY,CAAC,IAAkB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAe,aAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG/H;;AAEG;AACH,IAAA,QAAQ,CAAC,IAAkB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG5H;;AAEG;AACH,IAAA,UAAU,CAAC,IAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAA,CAAE,EAAE,EAAE,CAAC;;AA7BvE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,oBAAoB,CAAA;;IAM/B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,eAAe;AAI/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG/E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG/H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG9H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,UAAmB,EAAE,MAAW,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9G,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGjF;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE;;AAGvC;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC;;AAGtE;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC;;AAhFjE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAMX,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,oBAAoB,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,aAAa;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGzE;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGzH;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGxH;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGtE;;AAEG;IACH,IAAI,CAAC,UAAmB,EAAE,OAAY,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAzDhE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACJ9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,YAAY;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;;AAGG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG5H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGzE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG9E;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG3F;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,CAAC;;AAG3E;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAS,EAAE,MAAW,EAAE,KAAU,EAAE,OAAY,EAAE,IAAa,EAAE,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjK,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC;;AAG1F;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,UAAA,CAAY,EAAE,GAAG,MAAM,CAAC;;AAG9F;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAE,MAAe,EAAE,MAAW,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjH,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,YAAA,CAAc,EAAE,GAAG,MAAM,CAAC;;AA9HxF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACZ9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,YAAY;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG5H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGzE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,QAAiB,EAAE,QAAiB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrG,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG9E;;AAEG;AACH,IAAA,cAAc,CAAC,EAAW,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE,CAAC;;AAjErE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACD9B;MAEa,eAAe,CAAA;;IAM1B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,UAAU;AAI1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG1E;;AAEG;AACH,IAAA,cAAc,CAAC,EAAW,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,qBAAqB,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC;;AAG7F;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGzH;;AAEG;AACH,IAAA,UAAU,CAAC,IAAuB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAO,KAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGtH;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,IAAkB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGvI;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGvE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,IAAS,EAAE,MAAW,EAAE,OAAY,EAAE,OAAY,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5M,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG5E;;AAEG;IACH,mBAAmB,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,IAAS,EAAE,MAAW,EAAE,OAAY,EAAE,OAAY,EAAE,IAAa,EAAA;QAC7L,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,sBAAA,CAAwB,EAAE,GAAG,MAAM,CAAC;;AAGtF;;AAEG;AACH,IAAA,SAAS,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,IAAS,EAAE,MAAW,EAAE,OAAY,EAAE,OAAY,EAAA;QACpK,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGhG;;AAEG;IACH,KAAK,CAAC,IAAa,EAAE,EAAW,EAAA;QAC9B,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AAE3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGtF;;AAEG;IACH,QAAQ,CAAC,IAAa,EAAE,KAAc,EAAA;QACpC,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAW,SAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGzF;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC;;AAG5F;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACnF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC;;AAGhG;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,EAAE,CAAC;;AAG7E;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,WAAA,CAAa,EAAE,EAAE,CAAC;;AAG/E;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,YAAA,EAAe,EAAE,CAAA,CAAE,CAAC;;AAGzF;;AAEG;AACH,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAa,WAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG7H;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,aAAA,EAAgB,EAAE,CAAA,CAAE,CAAC;;AAG3F;;AAEG;AACH,IAAA,aAAa,CAAC,IAAqB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAc,YAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAvNnH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMN,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACb9B;MAEa,aAAa,CAAA;;IAMxB,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,QAAQ;AAIxB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGxE;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGxH;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGvH;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGrE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG1E;;AAEG;AACH,IAAA,SAAS,CAAC,IAAa,EAAE,EAAW,EAAE,MAAe,EAAE,MAAW,EAAA;QAChE,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGhG;;AAEG;AACH,IAAA,YAAY,CAAC,IAAiB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGtI;;AAEG;AACH,IAAA,YAAY,CAAC,IAAiB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGrI;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,CAAC;;AAG1E;;AAEG;AACH,IAAA,UAAU,CAAC,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC;;AAG9F;;AAEG;AACH,IAAA,mBAAmB,CAAC,IAAiB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAyB,uBAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGvJ;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,wBAAA,EAA2B,EAAE,CAAA,CAAE,CAAC;;AArH5F,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAMJ,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAOc,MAAM;2BAAC,QAAQ;;;ACT9B;MAEa,eAAe,CAAA;;IAM1B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,UAAU;AAI1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGzH;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGvE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAe,EAAE,KAAc,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAChG,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG5E;;AAEG;AACH,IAAA,KAAK,CAAC,MAAe,EAAA;QACnB,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AA7D5E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMN,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,sBAAsB,CAAA;;IAMjC,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,kBAAkB;AAIlC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGjF;;AAEG;AACH,IAAA,MAAM,CAAC,IAAoB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGjI;;AAEG;AACH,IAAA,MAAM,CAAC,IAAoB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGhI;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG9E;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAAS,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC1E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGnF;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC;;AAtExF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAMb,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,aAAa,CAAA;;IAMxB,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,QAAQ;AAIxB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGxE;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGxH;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGvH;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGrE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAAS,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACvF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG1E;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,IAAS,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACzF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG3F;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,CAAC;;AAhF9E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAMJ,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAOc,MAAM;2BAAC,QAAQ;;;ACL9B;MAEa,gBAAgB,CAAA;;IAM3B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,WAAW;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG3E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGxE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG7E;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG3F;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,UAAmB,EAAE,IAAS,EAAE,MAAW,EAAE,KAAU,EAAE,OAAY,EAAE,IAAa,EAAE,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACtL,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC;;AAG1F;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACnF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC;;AAG1F;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,sBAAA,CAAwB,CAAC;;AAGnF;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,UAAA,CAAY,EAAE,GAAG,MAAM,CAAC;;AA5HnF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACZ9B;MAEa,qBAAqB,CAAA;;IAMhC,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,iBAAiB;AAIjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGhF;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGhI;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG/H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG7E;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAzDvE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAMZ,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,qBAAqB,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;0BAOc,MAAM;2BAAC,QAAQ;;;ACP9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,YAAY;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG5H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGzE;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG9E;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AArEhF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,cAAc,CAAA;;IAMzB,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,SAAS;AAIzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGzE;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGzH;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGxH;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGtE;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG3E;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AArEhF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,YAAY,CAAA;;IAMvB,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,OAAO;AAIvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;;AAGG;AACH,IAAA,SAAS,CAAC,IAAkB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAhBvH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAMH,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;0BAOc,MAAM;2BAAC,QAAQ;;;ACP9B;MAEa,kBAAkB,CAAA;;IAM7B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,cAAc;AAI9B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGxE;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC7H,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG7E;;AAEG;AACH,IAAA,eAAe,CAAC,IAAa,EAAE,KAAc,EAAE,IAAsB,EAAA;QACnE,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAjErF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAMT,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACP9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,aAAa;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGvE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAAS,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACvF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG5E;;AAEG;IACH,KAAK,CAAC,IAAa,EAAE,EAAW,EAAA;QAC9B,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AAE3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGtF;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,YAAA,EAAe,EAAE,CAAA,CAAE,CAAC;;AAGzF;;AAEG;AACH,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAa,WAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG7H;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,aAAA,EAAgB,EAAE,CAAA,CAAE,CAAC;;AAG3F;;AAEG;AACH,IAAA,aAAa,CAAC,IAAqB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAc,YAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AArEnH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,gBAAgB,CAAA;;IAM3B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,WAAW;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG3E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAA0B,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,GAAG,IAAI,CAAC,OAAO,CAAA,QAAA,EAAW,EAAE,CAAI,CAAA,EAAA,MAAM,EAAE,EAAE,EAAE,CAAC;;AAG7F;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGxE;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrK,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG7E;;AAEG;AACH,IAAA,SAAS,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAAW,EAAA;QAC7H,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGhG;;AAEG;IACH,QAAQ,CAAC,IAAa,EAAE,KAAc,EAAA;QACpC,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAW,SAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGtF;;AAEG;AACH,IAAA,UAAU,CAAC,MAAe,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACnI,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC;;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAK,GAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGhF;;AAEG;AACH,IAAA,cAAc,CAAC,IAAa,EAAE,KAAc,EAAE,GAAY,EAAA;QACxD,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAA,CAAE,CAAC;;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAO,KAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGtF;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAW,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,wBAAwB,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC;;AAGvG;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AA3I9G,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACX9B;MAEa,eAAe,CAAA;;IAM1B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,UAAU;AAI1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG1E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGzH;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGvE;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG5E;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE;;AAGvC;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC;;AAGtE;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC;;AA7EjE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMN,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,gBAAgB,CAAA;;IAM3B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,WAAW;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG5H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGzE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAA2B,EAAE,IAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC1H,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AA1DnE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACR9B;MAEa,qBAAqB,CAAA;;IAMhC,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,iBAAiB;AAIjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGhI;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG/H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG7E;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAjDvE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAMZ,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,qBAAqB,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;0BAOc,MAAM;2BAAC,QAAQ;;;ACN9B;MAEa,oBAAoB,CAAA;;IAM/B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,gBAAgB;AAIhC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG/E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG/H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG9H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG5E;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGjF;;AAEG;IACH,OAAO,CAAC,IAAa,EAAE,KAAc,EAAA;QACnC,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGzF;;AAEG;IACH,kBAAkB,CAAC,IAAa,EAAE,KAAc,EAAA;QAC9C,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAuB,qBAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGvG;;AAEG;AACH,IAAA,cAAc,CAAC,IAAsB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGhI;;AAEG;AACH,IAAA,OAAO,CAAC,EAAa,EAAA;QACnB,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AAE3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,UAAU,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;;AAG/E;;AAEG;AACH,IAAA,SAAS,CAAC,EAAa,EAAA;QACrB,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AAE3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,YAAY,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;;AAzGtE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAMX,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,oBAAoB,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;0BAOc,MAAM;2BAAC,QAAQ;;;ACL9B;MAEa,gBAAgB,CAAA;;IAM3B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,WAAW;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAG3E;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG3H;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG1H;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGxE;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG7E;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9E,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG3F;;AAEG;IACH,YAAY,CAAC,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AAGlG;;AAEG;IACH,gBAAgB,CAAC,EAAW,EAAE,MAAe,EAAE,MAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrG,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,aAAA,CAAe,EAAE,GAAG,MAAM,CAAC;;AAGpG;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAS,EAAE,MAAW,EAAE,KAAU,EAAE,OAAY,EAAE,IAAa,EAAE,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjK,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC;;AAClD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC;;AAG1F;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC;;AAGnG;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrF,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,UAAA,CAAY,EAAE,GAAG,MAAM,CAAC;;AAG9F;;AAEG;IACH,eAAe,CAAC,EAAW,EAAE,IAAa,EAAA;QACxC,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,cAAA,CAAgB,EAAE,GAAG,MAAM,CAAC;;AAGhG;;AAEG;AACH,IAAA,wBAAwB,CAAC,EAAW,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,mBAAA,CAAqB,CAAC;;AAGhF;;AAEG;AACH,IAAA,uBAAuB,CAAC,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,kBAAA,CAAoB,CAAC;;AAxKpE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACd9B;MAEa,cAAc,CAAA;;IAMzB,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,SAAS;AAIzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,WAAW,MAAM,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAfrE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACP9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,aAAa;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGvE;;AAEG;AACH,IAAA,IAAI,CAAC,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9C,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AA3BjE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACP9B;MAEa,iBAAiB,CAAA;;IAM5B,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,aAAa;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAG5H;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGzE;;AAEG;IACH,IAAI,CAAC,IAAa,EAAE,EAAW,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpL,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AAG9E;;AAEG;IACH,SAAS,CAAC,IAAa,EAAE,EAAW,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACzL,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;;AACzC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC;;AA9DrF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOc,MAAM;2BAAC,QAAQ;;;ACT9B;MAEa,uBAAuB,CAAA;;IAMlC,WAAsC,CAAA,MAAkB,EAAU,IAAc,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM;QAAsB,IAAI,CAAA,IAAA,GAAJ,IAAI;;QAH9D,IAAO,CAAA,OAAA,GAAG,mBAAmB;AAInC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;;AAI/C;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC;;AAGlF;;AAEG;AACH,IAAA,MAAM,CAAC,IAAqB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAO,KAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGvI;;AAEG;AACH,IAAA,MAAM,CAAC,IAAqB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;AAGjI;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAGlE;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;;AAG/E;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,IAAS,EAAE,MAAW,EAAE,QAAa,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9I,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC;;AAC9D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC;;AACrD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC;;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC;;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC;;AA7DzE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAMd,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHANjB,uBAAuB,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;0BAOc,MAAM;2BAAC,QAAQ;;;AChB9B;SACgB,aAAa,GAAA;AAEzB,IAAA,IAAI,MAAM,GAAwB,IAAI,GAAG,EAAkB;AAE9D,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC;AACjC,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC;AACjC,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC;AACjC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC;AAClC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC;AAClC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,aAAa,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,SAAS,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;AACxD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,aAAa,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,WAAW,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,eAAe,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,WAAW,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,eAAe,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,eAAe,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;AAC5D,IAAA,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,eAAe,CAAC;AACxD,IAAA,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;AAC5D,IAAA,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,gBAAgB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;AAC5D,IAAA,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,mBAAmB,CAAC;AAC7D,IAAA,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,kBAAkB,CAAC;AAC7D,IAAA,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,mBAAmB,CAAC;AAC9D,IAAA,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,gBAAgB,CAAC;AAC3D,IAAA,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,cAAc,CAAC;AACzD,IAAA,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,iBAAiB,CAAC;AAC7D,IAAA,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,oBAAoB,CAAC;AAChE,IAAA,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,wBAAwB,CAAC;AACpE,IAAA,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;AACnE,IAAA,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,uBAAuB,CAAC;AACpE,IAAA,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,yBAAyB,CAAC;AACtE,IAAA,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,0BAA0B,CAAC;AACxE,IAAA,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,UAAU,CAAC;AACxD,IAAA,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,qBAAqB,CAAC;AACnE,IAAA,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,YAAY,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,YAAY,CAAC;AAC3D,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,aAAa,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAU,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,aAAa,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;AACrD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AACrD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,YAAY,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,UAAU,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,SAAS,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,aAAa,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;AAC3D,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;AAC5D,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,aAAa,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC;AAC1C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC;AACpC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;AACrD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;AACrD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;AACtD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;AAC5D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,CAAC;AACpD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,qBAAqB,CAAC;AAC3D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACvD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,qBAAqB,CAAC;AAC3D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;AAC/D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;AACzD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;AACzD,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AAC1D,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;AACnE,IAAA,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;AAC7D,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AAClD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;AACnD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AACrD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AACrD,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACxC,IAAA,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC;AACtC,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAU,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC;AAC/C,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACnC,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5C,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC;AAEhD,IAAA,OAAO,MAAM;AACd;;AC5ZO,MAAM,QAAQ,GAAG;IACpB,iBAAiB;IACjB,uBAAuB;IACvB,oBAAoB;IACpB,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,aAAa;IACb,oBAAoB;IACpB,eAAe;IACf,sBAAsB;IACtB,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,iBAAiB;IACjB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;CAEpB;;MClDY,gBAAgB,CAAA;IAC3B,OAAO,OAAO,CAAC,MAAkB,EAAA;QAC/B,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACvC,QAAQ;AACR,gBAAA,GAAG;AACJ;SACF;;+GATQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAhB,gBAAgB,EAAA,OAAA,EAAA,CAFjB,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;gHAE7B,gBAAgB,EAAA,OAAA,EAAA,CAFjB,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;;4FAE7B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB;AACzC,iBAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
|