### DO NOT EDIT THIS FILE
### This file is auto-generated by the Dyad command-line compiler.
### If you edit this code it is likely to get overwritten.
### Instead, update the Dyad source code and regenerate this file


import Moshi as __Ext__Moshi

@doc Markdown.doc"""
   HL20Aero(; name, DLG, CBAR_ft, BSPAN_ft, Cm_bias, CMQ0, CMQ1, CMQ2, CMQ3, CNP0, CNP1, CNP2, CNP3, CNR0, CNR1, CNR2, CNR3, CLP0, CLP1, CLP2, CLP3, CLR0, CLR1, CLR2, CLR3)

HL-20 aerodynamic model. TM-4302 coefficient buildup via registered symbolic functions.

## Parameters:

| Name         | Description                         | Units  |   Default value |
| ------------ | ----------------------------------- | ------ | --------------- |
| `DLG`         |                          | --  |   0.0 |
| `CBAR_ft`         |                          | --  |   28.24 |
| `BSPAN_ft`         |                          | --  |   13.89 |
| `Cm_bias`         |                          | --  |   0.006449 |
| `CMQ0`         |                          | --  |   -0.22364 |
| `CMQ1`         |                          | --  |   0.020457 |
| `CMQ2`         |                          | --  |   -0.0016741 |
| `CMQ3`         |                          | --  |   0.000031618 |
| `CNP0`         |                          | --  |   0.40031 |
| `CNP1`         |                          | --  |   -0.015518 |
| `CNP2`         |                          | --  |   -0.00012143 |
| `CNP3`         |                          | --  |   0.000018240 |
| `CNR0`         |                          | --  |   -0.79533 |
| `CNR1`         |                          | --  |   -0.012647 |
| `CNR2`         |                          | --  |   0.00032696 |
| `CNR3`         |                          | --  |   -0.0000065929 |
| `CLP0`         |                          | --  |   -0.55242 |
| `CLP1`         |                          | --  |   0.014478 |
| `CLP2`         |                          | --  |   -0.0011545 |
| `CLP3`         |                          | --  |   0.000017706 |
| `CLR0`         |                          | --  |   0.44685 |
| `CLR1`         |                          | --  |   0.067411 |
| `CLR2`         |                          | --  |   -0.0051866 |
| `CLR3`         |                          | --  |   0.00012659 |

## Connectors

 * `alpha_deg` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `beta_deg` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `mach` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `vrw_fps` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `hob` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `pb` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `qb` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `rb` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DBFUL` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DBFUR` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DBFLL` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DBFLR` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DWFL` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DWFR` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `DRUD` - This connector represents a real signal as an input to a component ([`RealInput`](@ref))
 * `CX` - This connector represents a real signal as an output from a component ([`RealOutput`](@ref))
 * `CY` - This connector represents a real signal as an output from a component ([`RealOutput`](@ref))
 * `CZ` - This connector represents a real signal as an output from a component ([`RealOutput`](@ref))
 * `Cl` - This connector represents a real signal as an output from a component ([`RealOutput`](@ref))
 * `Cm` - This connector represents a real signal as an output from a component ([`RealOutput`](@ref))
 * `Cn` - This connector represents a real signal as an output from a component ([`RealOutput`](@ref))

## Variables

| Name         | Description                         | Units  | 
| ------------ | ----------------------------------- | ------ |
| `alpha_r`         |                          | --  |
| `cos_alpha`         |                          | --  |
| `sin_alpha`         |                          | --  |
| `abs_drud`         |                          | --  |
| `damp_b2v`         |                          | --  |
| `damp_c2v`         |                          | --  |
| `CL_base`         |                          | --  |
| `CL_bfl`         |                          | --  |
| `CL_bfu`         |                          | --  |
| `CL_wf`         |                          | --  |
| `CL_rud`         |                          | --  |
| `CL_total`         |                          | --  |
| `CD_base`         |                          | --  |
| `CD_bfl`         |                          | --  |
| `CD_bfu`         |                          | --  |
| `CD_wf`         |                          | --  |
| `CD_rud`         |                          | --  |
| `CD_total`         |                          | --  |
| `CM_base`         |                          | --  |
| `CM_bfl`         |                          | --  |
| `CM_bfu`         |                          | --  |
| `CM_wf`         |                          | --  |
| `CM_rud`         |                          | --  |
| `CM_damp`         |                          | --  |
| `CM_total`         |                          | --  |
| `CY_base`         |                          | --  |
| `CY_bfl`         |                          | --  |
| `CY_bfu`         |                          | --  |
| `CY_wf`         |                          | --  |
| `CY_rud`         |                          | --  |
| `CY_total`         |                          | --  |
| `CN_base`         |                          | --  |
| `CN_bfl`         |                          | --  |
| `CN_bfu`         |                          | --  |
| `CN_wf`         |                          | --  |
| `CN_rud`         |                          | --  |
| `CN_damp`         |                          | --  |
| `CN_total`         |                          | --  |
| `CR_base`         |                          | --  |
| `CR_bfl`         |                          | --  |
| `CR_bfu`         |                          | --  |
| `CR_wf`         |                          | --  |
| `CR_rud`         |                          | --  |
| `CR_damp`         |                          | --  |
| `CR_total`         |                          | --  |
"""
@component function HL20Aero(; name = nothing, DLG=Float64(0.0), CBAR_ft=28.24, BSPAN_ft=13.89, Cm_bias=0.006449, CMQ0=-0.22364, CMQ1=0.020457, CMQ2=-0.0016741, CMQ3=0.000031618, CNP0=0.40031, CNP1=-0.015518, CNP2=-0.00012143, CNP3=0.00001824, CNR0=-0.79533, CNR1=-0.012647, CNR2=0.00032696, CNR3=-0.0000065929, CLP0=-0.55242, CLP1=0.014478, CLP2=-0.0011545, CLP3=0.000017706, CLR0=0.44685, CLR1=0.067411, CLR2=-0.0051866, CLR3=0.00012659, kwargs...)
  isnothing(name) && throw(ArgumentError("""
    The `name` keyword must be provided. Please consider using the `@named` macro,
    like so:
  
    @named model = HL20Aero()
  """))

  __overrides = __build_overrides(kwargs)
  __params = Symbolics.SymbolicT[]
  __vars = Symbolics.SymbolicT[]
  __systems = System[]
  __guesses = Dict{Symbolics.SymbolicT, Symbolics.SymbolicT}()
  __initial_conditions = Dict{Symbolics.SymbolicT, Symbolics.SymbolicT}()
  __initialization_eqs = Equation[]
  __eqs = Equation[]
  __bindings = Dict{Symbolics.SymbolicT, Symbolics.SymbolicT}()

  ### Structural Parameters (functions)

  ### Structural Parameters (Final)

  ### Path Parameters (functions)

  ### Path Parameters (non-final)

  ### Final Parameters (declarations)
  append!(__params, @parameters (iCL0A::Int), [misc = "final"])
  append!(__params, @parameters (iCD0A::Int), [misc = "final"])
  append!(__params, @parameters (iCM0A::Int), [misc = "final"])
  append!(__params, @parameters (iCY0A::Int), [misc = "final"])
  append!(__params, @parameters (iCN0A::Int), [misc = "final"])
  append!(__params, @parameters (iCR0A::Int), [misc = "final"])
  append!(__params, @parameters (iCLGE::Int), [misc = "final"])
  append!(__params, @parameters (iCDGE::Int), [misc = "final"])
  append!(__params, @parameters (iCMGE::Int), [misc = "final"])
  append!(__params, @parameters (iCYGE::Int), [misc = "final"])
  append!(__params, @parameters (iCNGE::Int), [misc = "final"])
  append!(__params, @parameters (iCRGE::Int), [misc = "final"])
  append!(__params, @parameters (iCLLG::Int), [misc = "final"])
  append!(__params, @parameters (iCDLG::Int), [misc = "final"])
  append!(__params, @parameters (iCMLG::Int), [misc = "final"])
  append!(__params, @parameters (iCYLG::Int), [misc = "final"])
  append!(__params, @parameters (iCNLG::Int), [misc = "final"])
  append!(__params, @parameters (iCRLG::Int), [misc = "final"])
  append!(__params, @parameters (iCLBFLL::Int), [misc = "final"])
  append!(__params, @parameters (iCDBFLL::Int), [misc = "final"])
  append!(__params, @parameters (iCMBFLL::Int), [misc = "final"])
  append!(__params, @parameters (iCYBFLL::Int), [misc = "final"])
  append!(__params, @parameters (iCNBFLL::Int), [misc = "final"])
  append!(__params, @parameters (iCRBFLL::Int), [misc = "final"])
  append!(__params, @parameters (iCLBFLR::Int), [misc = "final"])
  append!(__params, @parameters (iCDBFLR::Int), [misc = "final"])
  append!(__params, @parameters (iCMBFLR::Int), [misc = "final"])
  append!(__params, @parameters (iCYBFLR::Int), [misc = "final"])
  append!(__params, @parameters (iCNBFLR::Int), [misc = "final"])
  append!(__params, @parameters (iCRBFLR::Int), [misc = "final"])
  append!(__params, @parameters (iCLBFUL::Int), [misc = "final"])
  append!(__params, @parameters (iCDBFUL::Int), [misc = "final"])
  append!(__params, @parameters (iCMBFUL::Int), [misc = "final"])
  append!(__params, @parameters (iCYBFUL::Int), [misc = "final"])
  append!(__params, @parameters (iCNBFUL::Int), [misc = "final"])
  append!(__params, @parameters (iCRBFUL::Int), [misc = "final"])
  append!(__params, @parameters (iCLBFUR::Int), [misc = "final"])
  append!(__params, @parameters (iCDBFUR::Int), [misc = "final"])
  append!(__params, @parameters (iCMBFUR::Int), [misc = "final"])
  append!(__params, @parameters (iCYBFUR::Int), [misc = "final"])
  append!(__params, @parameters (iCNBFUR::Int), [misc = "final"])
  append!(__params, @parameters (iCRBFUR::Int), [misc = "final"])
  append!(__params, @parameters (iCLWFL::Int), [misc = "final"])
  append!(__params, @parameters (iCDWFL::Int), [misc = "final"])
  append!(__params, @parameters (iCMWFL::Int), [misc = "final"])
  append!(__params, @parameters (iCYWFL::Int), [misc = "final"])
  append!(__params, @parameters (iCNWFL::Int), [misc = "final"])
  append!(__params, @parameters (iCRWFL::Int), [misc = "final"])
  append!(__params, @parameters (iCLWFR::Int), [misc = "final"])
  append!(__params, @parameters (iCDWFR::Int), [misc = "final"])
  append!(__params, @parameters (iCMWFR::Int), [misc = "final"])
  append!(__params, @parameters (iCYWFR::Int), [misc = "final"])
  append!(__params, @parameters (iCNWFR::Int), [misc = "final"])
  append!(__params, @parameters (iCRWFR::Int), [misc = "final"])
  append!(__params, @parameters (iCLRUD::Int), [misc = "final"])
  append!(__params, @parameters (iCDRUD::Int), [misc = "final"])
  append!(__params, @parameters (iCMRUD::Int), [misc = "final"])
  append!(__params, @parameters (iCYRUD::Int), [misc = "final"])
  append!(__params, @parameters (iCNRUD::Int), [misc = "final"])
  append!(__params, @parameters (iCRRUD::Int), [misc = "final"])

  ### Deferred assignment (default values that depend on final parameters)

  ### Symbolic Parameters
  __local__DLG = DLG
  append!(__params, @parameters (DLG::Real))
  __initial_conditions[DLG] = __local__DLG
  __local__CBAR_ft = CBAR_ft
  append!(__params, @parameters (CBAR_ft::Real))
  __initial_conditions[CBAR_ft] = __local__CBAR_ft
  __local__BSPAN_ft = BSPAN_ft
  append!(__params, @parameters (BSPAN_ft::Real))
  __initial_conditions[BSPAN_ft] = __local__BSPAN_ft
  __local__Cm_bias = Cm_bias
  append!(__params, @parameters (Cm_bias::Real))
  __initial_conditions[Cm_bias] = __local__Cm_bias
  __local__CMQ0 = CMQ0
  append!(__params, @parameters (CMQ0::Real))
  __initial_conditions[CMQ0] = __local__CMQ0
  __local__CMQ1 = CMQ1
  append!(__params, @parameters (CMQ1::Real))
  __initial_conditions[CMQ1] = __local__CMQ1
  __local__CMQ2 = CMQ2
  append!(__params, @parameters (CMQ2::Real))
  __initial_conditions[CMQ2] = __local__CMQ2
  __local__CMQ3 = CMQ3
  append!(__params, @parameters (CMQ3::Real))
  __initial_conditions[CMQ3] = __local__CMQ3
  __local__CNP0 = CNP0
  append!(__params, @parameters (CNP0::Real))
  __initial_conditions[CNP0] = __local__CNP0
  __local__CNP1 = CNP1
  append!(__params, @parameters (CNP1::Real))
  __initial_conditions[CNP1] = __local__CNP1
  __local__CNP2 = CNP2
  append!(__params, @parameters (CNP2::Real))
  __initial_conditions[CNP2] = __local__CNP2
  __local__CNP3 = CNP3
  append!(__params, @parameters (CNP3::Real))
  __initial_conditions[CNP3] = __local__CNP3
  __local__CNR0 = CNR0
  append!(__params, @parameters (CNR0::Real))
  __initial_conditions[CNR0] = __local__CNR0
  __local__CNR1 = CNR1
  append!(__params, @parameters (CNR1::Real))
  __initial_conditions[CNR1] = __local__CNR1
  __local__CNR2 = CNR2
  append!(__params, @parameters (CNR2::Real))
  __initial_conditions[CNR2] = __local__CNR2
  __local__CNR3 = CNR3
  append!(__params, @parameters (CNR3::Real))
  __initial_conditions[CNR3] = __local__CNR3
  __local__CLP0 = CLP0
  append!(__params, @parameters (CLP0::Real))
  __initial_conditions[CLP0] = __local__CLP0
  __local__CLP1 = CLP1
  append!(__params, @parameters (CLP1::Real))
  __initial_conditions[CLP1] = __local__CLP1
  __local__CLP2 = CLP2
  append!(__params, @parameters (CLP2::Real))
  __initial_conditions[CLP2] = __local__CLP2
  __local__CLP3 = CLP3
  append!(__params, @parameters (CLP3::Real))
  __initial_conditions[CLP3] = __local__CLP3
  __local__CLR0 = CLR0
  append!(__params, @parameters (CLR0::Real))
  __initial_conditions[CLR0] = __local__CLR0
  __local__CLR1 = CLR1
  append!(__params, @parameters (CLR1::Real))
  __initial_conditions[CLR1] = __local__CLR1
  __local__CLR2 = CLR2
  append!(__params, @parameters (CLR2::Real))
  __initial_conditions[CLR2] = __local__CLR2
  __local__CLR3 = CLR3
  append!(__params, @parameters (CLR3::Real))
  __initial_conditions[CLR3] = __local__CLR3

  ### Final Parameters (assignments)
  __bindings[iCL0A] = ChallengeComponent.idx1d("CL0A")
  __bindings[iCD0A] = ChallengeComponent.idx1d("CD0A")
  __bindings[iCM0A] = ChallengeComponent.idx1d("CM0A")
  __bindings[iCY0A] = ChallengeComponent.idx1d("CY0A")
  __bindings[iCN0A] = ChallengeComponent.idx1d("CN0A")
  __bindings[iCR0A] = ChallengeComponent.idx1d("CR0A")
  __bindings[iCLGE] = ChallengeComponent.idx1d("CLGE")
  __bindings[iCDGE] = ChallengeComponent.idx1d("CDGE")
  __bindings[iCMGE] = ChallengeComponent.idx1d("CMGE")
  __bindings[iCYGE] = ChallengeComponent.idx1d("CYGE")
  __bindings[iCNGE] = ChallengeComponent.idx1d("CNGE")
  __bindings[iCRGE] = ChallengeComponent.idx1d("CRGE")
  __bindings[iCLLG] = ChallengeComponent.idx1d("CLLG")
  __bindings[iCDLG] = ChallengeComponent.idx1d("CDLG")
  __bindings[iCMLG] = ChallengeComponent.idx1d("CMLG")
  __bindings[iCYLG] = ChallengeComponent.idx1d("CYLG")
  __bindings[iCNLG] = ChallengeComponent.idx1d("CNLG")
  __bindings[iCRLG] = ChallengeComponent.idx1d("CRLG")
  __bindings[iCLBFLL] = ChallengeComponent.grp2dr("CLBFLL")
  __bindings[iCDBFLL] = ChallengeComponent.grp2dr("CDBFLL")
  __bindings[iCMBFLL] = ChallengeComponent.grp2dr("CMBFLL")
  __bindings[iCYBFLL] = ChallengeComponent.grp2dr("CYBFLL")
  __bindings[iCNBFLL] = ChallengeComponent.grp2dr("CNBFLL")
  __bindings[iCRBFLL] = ChallengeComponent.grp2dr("CRBFLL")
  __bindings[iCLBFLR] = ChallengeComponent.grp2dr("CLBFLR")
  __bindings[iCDBFLR] = ChallengeComponent.grp2dr("CDBFLR")
  __bindings[iCMBFLR] = ChallengeComponent.grp2dr("CMBFLR")
  __bindings[iCYBFLR] = ChallengeComponent.grp2dr("CYBFLR")
  __bindings[iCNBFLR] = ChallengeComponent.grp2dr("CNBFLR")
  __bindings[iCRBFLR] = ChallengeComponent.grp2dr("CRBFLR")
  __bindings[iCLBFUL] = ChallengeComponent.grp2dr("CLBFUL")
  __bindings[iCDBFUL] = ChallengeComponent.grp2dr("CDBFUL")
  __bindings[iCMBFUL] = ChallengeComponent.grp2dr("CMBFUL")
  __bindings[iCYBFUL] = ChallengeComponent.grp2dr("CYBFUL")
  __bindings[iCNBFUL] = ChallengeComponent.grp2dr("CNBFUL")
  __bindings[iCRBFUL] = ChallengeComponent.grp2dr("CRBFUL")
  __bindings[iCLBFUR] = ChallengeComponent.grp2dr("CLBFUR")
  __bindings[iCDBFUR] = ChallengeComponent.grp2dr("CDBFUR")
  __bindings[iCMBFUR] = ChallengeComponent.grp2dr("CMBFUR")
  __bindings[iCYBFUR] = ChallengeComponent.grp2dr("CYBFUR")
  __bindings[iCNBFUR] = ChallengeComponent.grp2dr("CNBFUR")
  __bindings[iCRBFUR] = ChallengeComponent.grp2dr("CRBFUR")
  __bindings[iCLWFL] = ChallengeComponent.grp2dr("CLWFL")
  __bindings[iCDWFL] = ChallengeComponent.grp2dr("CDWFL")
  __bindings[iCMWFL] = ChallengeComponent.grp2dr("CMWFL")
  __bindings[iCYWFL] = ChallengeComponent.grp2dr("CYWFL")
  __bindings[iCNWFL] = ChallengeComponent.grp2dr("CNWFL")
  __bindings[iCRWFL] = ChallengeComponent.grp2dr("CRWFL")
  __bindings[iCLWFR] = ChallengeComponent.grp2dr("CLWFR")
  __bindings[iCDWFR] = ChallengeComponent.grp2dr("CDWFR")
  __bindings[iCMWFR] = ChallengeComponent.grp2dr("CMWFR")
  __bindings[iCYWFR] = ChallengeComponent.grp2dr("CYWFR")
  __bindings[iCNWFR] = ChallengeComponent.grp2dr("CNWFR")
  __bindings[iCRWFR] = ChallengeComponent.grp2dr("CRWFR")
  __bindings[iCLRUD] = ChallengeComponent.grp2de("CLRUD")
  __bindings[iCDRUD] = ChallengeComponent.grp2de("CDRUD")
  __bindings[iCMRUD] = ChallengeComponent.grp2de("CMRUD")
  __bindings[iCYRUD] = ChallengeComponent.grp2de("CYRUD")
  __bindings[iCNRUD] = ChallengeComponent.grp2de("CNRUD")
  __bindings[iCRRUD] = ChallengeComponent.grp2de("CRRUD")

  ### Final Path Parameters
  append!(__vars, @variables (alpha_deg(t)::Real), [input = true])
  append!(__vars, @variables (beta_deg(t)::Real), [input = true])
  append!(__vars, @variables (mach(t)::Real), [input = true])
  append!(__vars, @variables (vrw_fps(t)::Real), [input = true])
  append!(__vars, @variables (hob(t)::Real), [input = true])
  append!(__vars, @variables (pb(t)::Real), [input = true])
  append!(__vars, @variables (qb(t)::Real), [input = true])
  append!(__vars, @variables (rb(t)::Real), [input = true])
  append!(__vars, @variables (DBFUL(t)::Real), [input = true])
  append!(__vars, @variables (DBFUR(t)::Real), [input = true])
  append!(__vars, @variables (DBFLL(t)::Real), [input = true])
  append!(__vars, @variables (DBFLR(t)::Real), [input = true])
  append!(__vars, @variables (DWFL(t)::Real), [input = true])
  append!(__vars, @variables (DWFR(t)::Real), [input = true])
  append!(__vars, @variables (DRUD(t)::Real), [input = true])
  append!(__vars, @variables (CX(t)::Real), [output = true])
  append!(__vars, @variables (CY(t)::Real), [output = true])
  append!(__vars, @variables (CZ(t)::Real), [output = true])
  append!(__vars, @variables (Cl(t)::Real), [output = true])
  append!(__vars, @variables (Cm(t)::Real), [output = true])
  append!(__vars, @variables (Cn(t)::Real), [output = true])

  ### Variables (declarations)
  append!(__vars, @variables (alpha_r(t)::Real))
  append!(__vars, @variables (cos_alpha(t)::Real))
  append!(__vars, @variables (sin_alpha(t)::Real))
  append!(__vars, @variables (abs_drud(t)::Real))
  append!(__vars, @variables (damp_b2v(t)::Real))
  append!(__vars, @variables (damp_c2v(t)::Real))
  append!(__vars, @variables (CL_base(t)::Real))
  append!(__vars, @variables (CL_bfl(t)::Real))
  append!(__vars, @variables (CL_bfu(t)::Real))
  append!(__vars, @variables (CL_wf(t)::Real))
  append!(__vars, @variables (CL_rud(t)::Real))
  append!(__vars, @variables (CL_total(t)::Real))
  append!(__vars, @variables (CD_base(t)::Real))
  append!(__vars, @variables (CD_bfl(t)::Real))
  append!(__vars, @variables (CD_bfu(t)::Real))
  append!(__vars, @variables (CD_wf(t)::Real))
  append!(__vars, @variables (CD_rud(t)::Real))
  append!(__vars, @variables (CD_total(t)::Real))
  append!(__vars, @variables (CM_base(t)::Real))
  append!(__vars, @variables (CM_bfl(t)::Real))
  append!(__vars, @variables (CM_bfu(t)::Real))
  append!(__vars, @variables (CM_wf(t)::Real))
  append!(__vars, @variables (CM_rud(t)::Real))
  append!(__vars, @variables (CM_damp(t)::Real))
  append!(__vars, @variables (CM_total(t)::Real))
  append!(__vars, @variables (CY_base(t)::Real))
  append!(__vars, @variables (CY_bfl(t)::Real))
  append!(__vars, @variables (CY_bfu(t)::Real))
  append!(__vars, @variables (CY_wf(t)::Real))
  append!(__vars, @variables (CY_rud(t)::Real))
  append!(__vars, @variables (CY_total(t)::Real))
  append!(__vars, @variables (CN_base(t)::Real))
  append!(__vars, @variables (CN_bfl(t)::Real))
  append!(__vars, @variables (CN_bfu(t)::Real))
  append!(__vars, @variables (CN_wf(t)::Real))
  append!(__vars, @variables (CN_rud(t)::Real))
  append!(__vars, @variables (CN_damp(t)::Real))
  append!(__vars, @variables (CN_total(t)::Real))
  append!(__vars, @variables (CR_base(t)::Real))
  append!(__vars, @variables (CR_bfl(t)::Real))
  append!(__vars, @variables (CR_bfu(t)::Real))
  append!(__vars, @variables (CR_wf(t)::Real))
  append!(__vars, @variables (CR_rud(t)::Real))
  append!(__vars, @variables (CR_damp(t)::Real))
  append!(__vars, @variables (CR_total(t)::Real))

  ### Variables (assignments)
  __ovr_alpha_r = pop!(__overrides, "alpha_r", nothing); isnothing(__ovr_alpha_r) || push!(__eqs, alpha_r ~ __ovr_alpha_r)
  __ovr_alpha_r__initial = pop!(__overrides, "alpha_r__initial", nothing); isnothing(__ovr_alpha_r__initial) || (__initial_conditions[alpha_r] = __ovr_alpha_r__initial)
  __ovr_cos_alpha = pop!(__overrides, "cos_alpha", nothing); isnothing(__ovr_cos_alpha) || push!(__eqs, cos_alpha ~ __ovr_cos_alpha)
  __ovr_cos_alpha__initial = pop!(__overrides, "cos_alpha__initial", nothing); isnothing(__ovr_cos_alpha__initial) || (__initial_conditions[cos_alpha] = __ovr_cos_alpha__initial)
  __ovr_sin_alpha = pop!(__overrides, "sin_alpha", nothing); isnothing(__ovr_sin_alpha) || push!(__eqs, sin_alpha ~ __ovr_sin_alpha)
  __ovr_sin_alpha__initial = pop!(__overrides, "sin_alpha__initial", nothing); isnothing(__ovr_sin_alpha__initial) || (__initial_conditions[sin_alpha] = __ovr_sin_alpha__initial)
  __ovr_abs_drud = pop!(__overrides, "abs_drud", nothing); isnothing(__ovr_abs_drud) || push!(__eqs, abs_drud ~ __ovr_abs_drud)
  __ovr_abs_drud__initial = pop!(__overrides, "abs_drud__initial", nothing); isnothing(__ovr_abs_drud__initial) || (__initial_conditions[abs_drud] = __ovr_abs_drud__initial)
  __ovr_damp_b2v = pop!(__overrides, "damp_b2v", nothing); isnothing(__ovr_damp_b2v) || push!(__eqs, damp_b2v ~ __ovr_damp_b2v)
  __ovr_damp_b2v__initial = pop!(__overrides, "damp_b2v__initial", nothing); isnothing(__ovr_damp_b2v__initial) || (__initial_conditions[damp_b2v] = __ovr_damp_b2v__initial)
  __ovr_damp_c2v = pop!(__overrides, "damp_c2v", nothing); isnothing(__ovr_damp_c2v) || push!(__eqs, damp_c2v ~ __ovr_damp_c2v)
  __ovr_damp_c2v__initial = pop!(__overrides, "damp_c2v__initial", nothing); isnothing(__ovr_damp_c2v__initial) || (__initial_conditions[damp_c2v] = __ovr_damp_c2v__initial)
  __ovr_CL_base = pop!(__overrides, "CL_base", nothing); isnothing(__ovr_CL_base) || push!(__eqs, CL_base ~ __ovr_CL_base)
  __ovr_CL_base__initial = pop!(__overrides, "CL_base__initial", nothing); isnothing(__ovr_CL_base__initial) || (__initial_conditions[CL_base] = __ovr_CL_base__initial)
  __ovr_CL_bfl = pop!(__overrides, "CL_bfl", nothing); isnothing(__ovr_CL_bfl) || push!(__eqs, CL_bfl ~ __ovr_CL_bfl)
  __ovr_CL_bfl__initial = pop!(__overrides, "CL_bfl__initial", nothing); isnothing(__ovr_CL_bfl__initial) || (__initial_conditions[CL_bfl] = __ovr_CL_bfl__initial)
  __ovr_CL_bfu = pop!(__overrides, "CL_bfu", nothing); isnothing(__ovr_CL_bfu) || push!(__eqs, CL_bfu ~ __ovr_CL_bfu)
  __ovr_CL_bfu__initial = pop!(__overrides, "CL_bfu__initial", nothing); isnothing(__ovr_CL_bfu__initial) || (__initial_conditions[CL_bfu] = __ovr_CL_bfu__initial)
  __ovr_CL_wf = pop!(__overrides, "CL_wf", nothing); isnothing(__ovr_CL_wf) || push!(__eqs, CL_wf ~ __ovr_CL_wf)
  __ovr_CL_wf__initial = pop!(__overrides, "CL_wf__initial", nothing); isnothing(__ovr_CL_wf__initial) || (__initial_conditions[CL_wf] = __ovr_CL_wf__initial)
  __ovr_CL_rud = pop!(__overrides, "CL_rud", nothing); isnothing(__ovr_CL_rud) || push!(__eqs, CL_rud ~ __ovr_CL_rud)
  __ovr_CL_rud__initial = pop!(__overrides, "CL_rud__initial", nothing); isnothing(__ovr_CL_rud__initial) || (__initial_conditions[CL_rud] = __ovr_CL_rud__initial)
  __ovr_CL_total = pop!(__overrides, "CL_total", nothing); isnothing(__ovr_CL_total) || push!(__eqs, CL_total ~ __ovr_CL_total)
  __ovr_CL_total__initial = pop!(__overrides, "CL_total__initial", nothing); isnothing(__ovr_CL_total__initial) || (__initial_conditions[CL_total] = __ovr_CL_total__initial)
  __ovr_CD_base = pop!(__overrides, "CD_base", nothing); isnothing(__ovr_CD_base) || push!(__eqs, CD_base ~ __ovr_CD_base)
  __ovr_CD_base__initial = pop!(__overrides, "CD_base__initial", nothing); isnothing(__ovr_CD_base__initial) || (__initial_conditions[CD_base] = __ovr_CD_base__initial)
  __ovr_CD_bfl = pop!(__overrides, "CD_bfl", nothing); isnothing(__ovr_CD_bfl) || push!(__eqs, CD_bfl ~ __ovr_CD_bfl)
  __ovr_CD_bfl__initial = pop!(__overrides, "CD_bfl__initial", nothing); isnothing(__ovr_CD_bfl__initial) || (__initial_conditions[CD_bfl] = __ovr_CD_bfl__initial)
  __ovr_CD_bfu = pop!(__overrides, "CD_bfu", nothing); isnothing(__ovr_CD_bfu) || push!(__eqs, CD_bfu ~ __ovr_CD_bfu)
  __ovr_CD_bfu__initial = pop!(__overrides, "CD_bfu__initial", nothing); isnothing(__ovr_CD_bfu__initial) || (__initial_conditions[CD_bfu] = __ovr_CD_bfu__initial)
  __ovr_CD_wf = pop!(__overrides, "CD_wf", nothing); isnothing(__ovr_CD_wf) || push!(__eqs, CD_wf ~ __ovr_CD_wf)
  __ovr_CD_wf__initial = pop!(__overrides, "CD_wf__initial", nothing); isnothing(__ovr_CD_wf__initial) || (__initial_conditions[CD_wf] = __ovr_CD_wf__initial)
  __ovr_CD_rud = pop!(__overrides, "CD_rud", nothing); isnothing(__ovr_CD_rud) || push!(__eqs, CD_rud ~ __ovr_CD_rud)
  __ovr_CD_rud__initial = pop!(__overrides, "CD_rud__initial", nothing); isnothing(__ovr_CD_rud__initial) || (__initial_conditions[CD_rud] = __ovr_CD_rud__initial)
  __ovr_CD_total = pop!(__overrides, "CD_total", nothing); isnothing(__ovr_CD_total) || push!(__eqs, CD_total ~ __ovr_CD_total)
  __ovr_CD_total__initial = pop!(__overrides, "CD_total__initial", nothing); isnothing(__ovr_CD_total__initial) || (__initial_conditions[CD_total] = __ovr_CD_total__initial)
  __ovr_CM_base = pop!(__overrides, "CM_base", nothing); isnothing(__ovr_CM_base) || push!(__eqs, CM_base ~ __ovr_CM_base)
  __ovr_CM_base__initial = pop!(__overrides, "CM_base__initial", nothing); isnothing(__ovr_CM_base__initial) || (__initial_conditions[CM_base] = __ovr_CM_base__initial)
  __ovr_CM_bfl = pop!(__overrides, "CM_bfl", nothing); isnothing(__ovr_CM_bfl) || push!(__eqs, CM_bfl ~ __ovr_CM_bfl)
  __ovr_CM_bfl__initial = pop!(__overrides, "CM_bfl__initial", nothing); isnothing(__ovr_CM_bfl__initial) || (__initial_conditions[CM_bfl] = __ovr_CM_bfl__initial)
  __ovr_CM_bfu = pop!(__overrides, "CM_bfu", nothing); isnothing(__ovr_CM_bfu) || push!(__eqs, CM_bfu ~ __ovr_CM_bfu)
  __ovr_CM_bfu__initial = pop!(__overrides, "CM_bfu__initial", nothing); isnothing(__ovr_CM_bfu__initial) || (__initial_conditions[CM_bfu] = __ovr_CM_bfu__initial)
  __ovr_CM_wf = pop!(__overrides, "CM_wf", nothing); isnothing(__ovr_CM_wf) || push!(__eqs, CM_wf ~ __ovr_CM_wf)
  __ovr_CM_wf__initial = pop!(__overrides, "CM_wf__initial", nothing); isnothing(__ovr_CM_wf__initial) || (__initial_conditions[CM_wf] = __ovr_CM_wf__initial)
  __ovr_CM_rud = pop!(__overrides, "CM_rud", nothing); isnothing(__ovr_CM_rud) || push!(__eqs, CM_rud ~ __ovr_CM_rud)
  __ovr_CM_rud__initial = pop!(__overrides, "CM_rud__initial", nothing); isnothing(__ovr_CM_rud__initial) || (__initial_conditions[CM_rud] = __ovr_CM_rud__initial)
  __ovr_CM_damp = pop!(__overrides, "CM_damp", nothing); isnothing(__ovr_CM_damp) || push!(__eqs, CM_damp ~ __ovr_CM_damp)
  __ovr_CM_damp__initial = pop!(__overrides, "CM_damp__initial", nothing); isnothing(__ovr_CM_damp__initial) || (__initial_conditions[CM_damp] = __ovr_CM_damp__initial)
  __ovr_CM_total = pop!(__overrides, "CM_total", nothing); isnothing(__ovr_CM_total) || push!(__eqs, CM_total ~ __ovr_CM_total)
  __ovr_CM_total__initial = pop!(__overrides, "CM_total__initial", nothing); isnothing(__ovr_CM_total__initial) || (__initial_conditions[CM_total] = __ovr_CM_total__initial)
  __ovr_CY_base = pop!(__overrides, "CY_base", nothing); isnothing(__ovr_CY_base) || push!(__eqs, CY_base ~ __ovr_CY_base)
  __ovr_CY_base__initial = pop!(__overrides, "CY_base__initial", nothing); isnothing(__ovr_CY_base__initial) || (__initial_conditions[CY_base] = __ovr_CY_base__initial)
  __ovr_CY_bfl = pop!(__overrides, "CY_bfl", nothing); isnothing(__ovr_CY_bfl) || push!(__eqs, CY_bfl ~ __ovr_CY_bfl)
  __ovr_CY_bfl__initial = pop!(__overrides, "CY_bfl__initial", nothing); isnothing(__ovr_CY_bfl__initial) || (__initial_conditions[CY_bfl] = __ovr_CY_bfl__initial)
  __ovr_CY_bfu = pop!(__overrides, "CY_bfu", nothing); isnothing(__ovr_CY_bfu) || push!(__eqs, CY_bfu ~ __ovr_CY_bfu)
  __ovr_CY_bfu__initial = pop!(__overrides, "CY_bfu__initial", nothing); isnothing(__ovr_CY_bfu__initial) || (__initial_conditions[CY_bfu] = __ovr_CY_bfu__initial)
  __ovr_CY_wf = pop!(__overrides, "CY_wf", nothing); isnothing(__ovr_CY_wf) || push!(__eqs, CY_wf ~ __ovr_CY_wf)
  __ovr_CY_wf__initial = pop!(__overrides, "CY_wf__initial", nothing); isnothing(__ovr_CY_wf__initial) || (__initial_conditions[CY_wf] = __ovr_CY_wf__initial)
  __ovr_CY_rud = pop!(__overrides, "CY_rud", nothing); isnothing(__ovr_CY_rud) || push!(__eqs, CY_rud ~ __ovr_CY_rud)
  __ovr_CY_rud__initial = pop!(__overrides, "CY_rud__initial", nothing); isnothing(__ovr_CY_rud__initial) || (__initial_conditions[CY_rud] = __ovr_CY_rud__initial)
  __ovr_CY_total = pop!(__overrides, "CY_total", nothing); isnothing(__ovr_CY_total) || push!(__eqs, CY_total ~ __ovr_CY_total)
  __ovr_CY_total__initial = pop!(__overrides, "CY_total__initial", nothing); isnothing(__ovr_CY_total__initial) || (__initial_conditions[CY_total] = __ovr_CY_total__initial)
  __ovr_CN_base = pop!(__overrides, "CN_base", nothing); isnothing(__ovr_CN_base) || push!(__eqs, CN_base ~ __ovr_CN_base)
  __ovr_CN_base__initial = pop!(__overrides, "CN_base__initial", nothing); isnothing(__ovr_CN_base__initial) || (__initial_conditions[CN_base] = __ovr_CN_base__initial)
  __ovr_CN_bfl = pop!(__overrides, "CN_bfl", nothing); isnothing(__ovr_CN_bfl) || push!(__eqs, CN_bfl ~ __ovr_CN_bfl)
  __ovr_CN_bfl__initial = pop!(__overrides, "CN_bfl__initial", nothing); isnothing(__ovr_CN_bfl__initial) || (__initial_conditions[CN_bfl] = __ovr_CN_bfl__initial)
  __ovr_CN_bfu = pop!(__overrides, "CN_bfu", nothing); isnothing(__ovr_CN_bfu) || push!(__eqs, CN_bfu ~ __ovr_CN_bfu)
  __ovr_CN_bfu__initial = pop!(__overrides, "CN_bfu__initial", nothing); isnothing(__ovr_CN_bfu__initial) || (__initial_conditions[CN_bfu] = __ovr_CN_bfu__initial)
  __ovr_CN_wf = pop!(__overrides, "CN_wf", nothing); isnothing(__ovr_CN_wf) || push!(__eqs, CN_wf ~ __ovr_CN_wf)
  __ovr_CN_wf__initial = pop!(__overrides, "CN_wf__initial", nothing); isnothing(__ovr_CN_wf__initial) || (__initial_conditions[CN_wf] = __ovr_CN_wf__initial)
  __ovr_CN_rud = pop!(__overrides, "CN_rud", nothing); isnothing(__ovr_CN_rud) || push!(__eqs, CN_rud ~ __ovr_CN_rud)
  __ovr_CN_rud__initial = pop!(__overrides, "CN_rud__initial", nothing); isnothing(__ovr_CN_rud__initial) || (__initial_conditions[CN_rud] = __ovr_CN_rud__initial)
  __ovr_CN_damp = pop!(__overrides, "CN_damp", nothing); isnothing(__ovr_CN_damp) || push!(__eqs, CN_damp ~ __ovr_CN_damp)
  __ovr_CN_damp__initial = pop!(__overrides, "CN_damp__initial", nothing); isnothing(__ovr_CN_damp__initial) || (__initial_conditions[CN_damp] = __ovr_CN_damp__initial)
  __ovr_CN_total = pop!(__overrides, "CN_total", nothing); isnothing(__ovr_CN_total) || push!(__eqs, CN_total ~ __ovr_CN_total)
  __ovr_CN_total__initial = pop!(__overrides, "CN_total__initial", nothing); isnothing(__ovr_CN_total__initial) || (__initial_conditions[CN_total] = __ovr_CN_total__initial)
  __ovr_CR_base = pop!(__overrides, "CR_base", nothing); isnothing(__ovr_CR_base) || push!(__eqs, CR_base ~ __ovr_CR_base)
  __ovr_CR_base__initial = pop!(__overrides, "CR_base__initial", nothing); isnothing(__ovr_CR_base__initial) || (__initial_conditions[CR_base] = __ovr_CR_base__initial)
  __ovr_CR_bfl = pop!(__overrides, "CR_bfl", nothing); isnothing(__ovr_CR_bfl) || push!(__eqs, CR_bfl ~ __ovr_CR_bfl)
  __ovr_CR_bfl__initial = pop!(__overrides, "CR_bfl__initial", nothing); isnothing(__ovr_CR_bfl__initial) || (__initial_conditions[CR_bfl] = __ovr_CR_bfl__initial)
  __ovr_CR_bfu = pop!(__overrides, "CR_bfu", nothing); isnothing(__ovr_CR_bfu) || push!(__eqs, CR_bfu ~ __ovr_CR_bfu)
  __ovr_CR_bfu__initial = pop!(__overrides, "CR_bfu__initial", nothing); isnothing(__ovr_CR_bfu__initial) || (__initial_conditions[CR_bfu] = __ovr_CR_bfu__initial)
  __ovr_CR_wf = pop!(__overrides, "CR_wf", nothing); isnothing(__ovr_CR_wf) || push!(__eqs, CR_wf ~ __ovr_CR_wf)
  __ovr_CR_wf__initial = pop!(__overrides, "CR_wf__initial", nothing); isnothing(__ovr_CR_wf__initial) || (__initial_conditions[CR_wf] = __ovr_CR_wf__initial)
  __ovr_CR_rud = pop!(__overrides, "CR_rud", nothing); isnothing(__ovr_CR_rud) || push!(__eqs, CR_rud ~ __ovr_CR_rud)
  __ovr_CR_rud__initial = pop!(__overrides, "CR_rud__initial", nothing); isnothing(__ovr_CR_rud__initial) || (__initial_conditions[CR_rud] = __ovr_CR_rud__initial)
  __ovr_CR_damp = pop!(__overrides, "CR_damp", nothing); isnothing(__ovr_CR_damp) || push!(__eqs, CR_damp ~ __ovr_CR_damp)
  __ovr_CR_damp__initial = pop!(__overrides, "CR_damp__initial", nothing); isnothing(__ovr_CR_damp__initial) || (__initial_conditions[CR_damp] = __ovr_CR_damp__initial)
  __ovr_CR_total = pop!(__overrides, "CR_total", nothing); isnothing(__ovr_CR_total) || push!(__eqs, CR_total ~ __ovr_CR_total)
  __ovr_CR_total__initial = pop!(__overrides, "CR_total__initial", nothing); isnothing(__ovr_CR_total__initial) || (__initial_conditions[CR_total] = __ovr_CR_total__initial)

  ### Constants
  __constants = Any[]

  ### Components

  ### Check there are no unmatched overrides
  isempty(__overrides) || throw(ArgumentError("overides: [$(join(keys(__overrides), ", "))] don't match names found in model. These names may exist in the model but could have been conditionally excluded."))

  ### Guesses

  ### Initialization Equations

  ### Assertions
  __assertions = []

  ### Equations
  push!(__eqs, alpha_r ~ alpha_deg * 0.017453292519943295)
  push!(__eqs, cos_alpha ~ cos(alpha_r))
  push!(__eqs, sin_alpha ~ sin(alpha_r))
  push!(__eqs, abs_drud ~ abs(DRUD))
  push!(__eqs, damp_b2v ~ BSPAN_ft / (2.0 * (vrw_fps + 0.1)))
  push!(__eqs, damp_c2v ~ CBAR_ft / (2.0 * (vrw_fps + 0.1)))
  push!(__eqs, CL_base ~ ChallengeComponent.hl20_poly1d(iCL0A, alpha_deg, mach) + ChallengeComponent.hl20_poly1d(iCLGE, alpha_deg, hob) + ChallengeComponent.hl20_poly1d(iCLLG, alpha_deg, DLG))
  push!(__eqs, CL_bfl ~ ChallengeComponent.hl20_poly2dr(iCLBFLL, alpha_deg, DBFLL, mach) + ChallengeComponent.hl20_poly2dr(iCLBFLR, alpha_deg, DBFLR, mach))
  push!(__eqs, CL_bfu ~ ChallengeComponent.hl20_poly2dr(iCLBFUL, alpha_deg, DBFUL, mach) + ChallengeComponent.hl20_poly2dr(iCLBFUR, alpha_deg, DBFUR, mach))
  push!(__eqs, CL_wf ~ ChallengeComponent.hl20_poly2dr(iCLWFL, alpha_deg, DWFL, mach) + ChallengeComponent.hl20_poly2dr(iCLWFR, alpha_deg, DWFR, mach))
  push!(__eqs, CL_rud ~ ChallengeComponent.hl20_poly2de(iCLRUD, alpha_deg, abs_drud, mach))
  push!(__eqs, CL_total ~ CL_base + CL_bfl + CL_bfu + CL_wf + CL_rud)
  push!(__eqs, CD_base ~ ChallengeComponent.hl20_poly1d(iCD0A, alpha_deg, mach) + ChallengeComponent.hl20_poly1d(iCDGE, alpha_deg, hob) + ChallengeComponent.hl20_poly1d(iCDLG, alpha_deg, DLG))
  push!(__eqs, CD_bfl ~ ChallengeComponent.hl20_poly2dr(iCDBFLL, alpha_deg, DBFLL, mach) + ChallengeComponent.hl20_poly2dr(iCDBFLR, alpha_deg, DBFLR, mach))
  push!(__eqs, CD_bfu ~ ChallengeComponent.hl20_poly2dr(iCDBFUL, alpha_deg, DBFUL, mach) + ChallengeComponent.hl20_poly2dr(iCDBFUR, alpha_deg, DBFUR, mach))
  push!(__eqs, CD_wf ~ ChallengeComponent.hl20_poly2dr(iCDWFL, alpha_deg, DWFL, mach) + ChallengeComponent.hl20_poly2dr(iCDWFR, alpha_deg, DWFR, mach))
  push!(__eqs, CD_rud ~ ChallengeComponent.hl20_poly2de(iCDRUD, alpha_deg, abs_drud, mach))
  push!(__eqs, CD_total ~ CD_base + CD_bfl + CD_bfu + CD_wf + CD_rud)
  push!(__eqs, CM_base ~ ChallengeComponent.hl20_poly1d(iCM0A, alpha_deg, mach) + ChallengeComponent.hl20_poly1d(iCMGE, alpha_deg, hob) + ChallengeComponent.hl20_poly1d(iCMLG, alpha_deg, DLG))
  push!(__eqs, CM_bfl ~ ChallengeComponent.hl20_poly2dr(iCMBFLL, alpha_deg, DBFLL, mach) + ChallengeComponent.hl20_poly2dr(iCMBFLR, alpha_deg, DBFLR, mach))
  push!(__eqs, CM_bfu ~ ChallengeComponent.hl20_poly2dr(iCMBFUL, alpha_deg, DBFUL, mach) + ChallengeComponent.hl20_poly2dr(iCMBFUR, alpha_deg, DBFUR, mach))
  push!(__eqs, CM_wf ~ ChallengeComponent.hl20_poly2dr(iCMWFL, alpha_deg, DWFL, mach) + ChallengeComponent.hl20_poly2dr(iCMWFR, alpha_deg, DWFR, mach))
  push!(__eqs, CM_rud ~ ChallengeComponent.hl20_poly2de(iCMRUD, alpha_deg, abs_drud, mach))
  push!(__eqs, CM_damp ~ (CMQ0 + CMQ1 * alpha_deg + CMQ2 * alpha_deg ^ 2 + CMQ3 * alpha_deg ^ 3) * qb * damp_c2v)
  push!(__eqs, CM_total ~ CM_base + CM_bfl + CM_bfu + CM_wf + CM_rud + CM_damp + Cm_bias)
  push!(__eqs, CY_base ~ (ChallengeComponent.hl20_poly1d(iCY0A, alpha_deg, mach) + ChallengeComponent.hl20_poly1d(iCYGE, alpha_deg, hob) + ChallengeComponent.hl20_poly1d(iCYLG, alpha_deg, DLG)) * beta_deg)
  push!(__eqs, CY_bfl ~ ChallengeComponent.hl20_poly2dr(iCYBFLL, alpha_deg, DBFLL, mach) - ChallengeComponent.hl20_poly2dr(iCYBFLR, alpha_deg, DBFLR, mach))
  push!(__eqs, CY_bfu ~ ChallengeComponent.hl20_poly2dr(iCYBFUL, alpha_deg, DBFUL, mach) - ChallengeComponent.hl20_poly2dr(iCYBFUR, alpha_deg, DBFUR, mach))
  push!(__eqs, CY_wf ~ ChallengeComponent.hl20_poly2dr(iCYWFL, alpha_deg, DWFL, mach) - ChallengeComponent.hl20_poly2dr(iCYWFR, alpha_deg, DWFR, mach))
  push!(__eqs, CY_rud ~ ChallengeComponent.hl20_poly2de(iCYRUD, alpha_deg, abs_drud, mach))
  push!(__eqs, CY_total ~ CY_base + CY_bfl + CY_bfu + CY_wf + CY_rud)
  push!(__eqs, CN_base ~ (ChallengeComponent.hl20_poly1d(iCN0A, alpha_deg, mach) + ChallengeComponent.hl20_poly1d(iCNGE, alpha_deg, hob) + ChallengeComponent.hl20_poly1d(iCNLG, alpha_deg, DLG)) * beta_deg)
  push!(__eqs, CN_bfl ~ ChallengeComponent.hl20_poly2dr(iCNBFLL, alpha_deg, DBFLL, mach) - ChallengeComponent.hl20_poly2dr(iCNBFLR, alpha_deg, DBFLR, mach))
  push!(__eqs, CN_bfu ~ ChallengeComponent.hl20_poly2dr(iCNBFUL, alpha_deg, DBFUL, mach) - ChallengeComponent.hl20_poly2dr(iCNBFUR, alpha_deg, DBFUR, mach))
  push!(__eqs, CN_wf ~ ChallengeComponent.hl20_poly2dr(iCNWFL, alpha_deg, DWFL, mach) - ChallengeComponent.hl20_poly2dr(iCNWFR, alpha_deg, DWFR, mach))
  push!(__eqs, CN_rud ~ ChallengeComponent.hl20_poly2de(iCNRUD, alpha_deg, abs_drud, mach))
  push!(__eqs, CN_damp ~ (CNP0 + CNP1 * alpha_deg + CNP2 * alpha_deg ^ 2 + CNP3 * alpha_deg ^ 3) * pb * damp_b2v + (CNR0 + CNR1 * alpha_deg + CNR2 * alpha_deg ^ 2 + CNR3 * alpha_deg ^ 3) * rb * damp_b2v)
  push!(__eqs, CN_total ~ CN_base + CN_bfl + CN_bfu + CN_wf + CN_rud + CN_damp)
  push!(__eqs, CR_base ~ (ChallengeComponent.hl20_poly1d(iCR0A, alpha_deg, mach) + ChallengeComponent.hl20_poly1d(iCRGE, alpha_deg, hob) + ChallengeComponent.hl20_poly1d(iCRLG, alpha_deg, DLG)) * beta_deg)
  push!(__eqs, CR_bfl ~ ChallengeComponent.hl20_poly2dr(iCRBFLL, alpha_deg, DBFLL, mach) - ChallengeComponent.hl20_poly2dr(iCRBFLR, alpha_deg, DBFLR, mach))
  push!(__eqs, CR_bfu ~ ChallengeComponent.hl20_poly2dr(iCRBFUL, alpha_deg, DBFUL, mach) - ChallengeComponent.hl20_poly2dr(iCRBFUR, alpha_deg, DBFUR, mach))
  push!(__eqs, CR_wf ~ ChallengeComponent.hl20_poly2dr(iCRWFL, alpha_deg, DWFL, mach) - ChallengeComponent.hl20_poly2dr(iCRWFR, alpha_deg, DWFR, mach))
  push!(__eqs, CR_rud ~ ChallengeComponent.hl20_poly2de(iCRRUD, alpha_deg, abs_drud, mach))
  push!(__eqs, CR_damp ~ (CLP0 + CLP1 * alpha_deg + CLP2 * alpha_deg ^ 2 + CLP3 * alpha_deg ^ 3) * pb * damp_b2v + (CLR0 + CLR1 * alpha_deg + CLR2 * alpha_deg ^ 2 + CLR3 * alpha_deg ^ 3) * rb * damp_b2v)
  push!(__eqs, CR_total ~ CR_base + CR_bfl + CR_bfu + CR_wf + CR_rud + CR_damp)
  push!(__eqs, CX ~ CL_total * sin_alpha - CD_total * cos_alpha)
  push!(__eqs, CZ ~ -CL_total * cos_alpha - CD_total * sin_alpha)
  push!(__eqs, CY ~ CY_total)
  push!(__eqs, Cl ~ CR_total)
  push!(__eqs, Cm ~ CM_total)
  push!(__eqs, Cn ~ CN_total)

  # Return completely constructed System
  return System(__eqs, t, __vars, __params; systems=__systems, initial_conditions=__initial_conditions, guesses=__guesses, name, initialization_eqs=__initialization_eqs, bindings=__bindings, assertions=__assertions)
end
export HL20Aero
