+
    ,i,                     V    ^ RI Ht ^ RIt^ RIHu Hu Ht ^ RI	H
t ^ RIHt R tR tR# )    )warnN)_highs_options)OptimizeWarningc
                   V P                   p
VP                   pVRJ;'       d    \        P                  ! V4      ^ 8  pRRRR/p\        P                  ! 4       pWn        Wn        WP                  n        WP                  n        \        P                  P                  VP                  n
        Wn        Wnn        W~n        WNn        W^n        WP                  n        W.P                  n        W>P                  n        VP                   ^ 8  d,   V Uu. uF  p\        P&                  ! V4      NK  	  upVn        \        P*                  ! 4       p\        P,                  ! 4       p\.        P0                  ! 4       pV	P3                  4        EF3  w  ppVe   VR9   d   K  VP5                  V4      pRV8X  d#   \7        R\9        VV/4       2\:        ^R7       KN  VR9   d?   \=        V\>        4      '       d   V'       d   RMRpM\7        RV R	V R
2\:        ^R7       K  \        P@                  ! V4      p\C        VVV4      w  ppV\        P@                  PD                  8X  d3   \=        V\>        4      '       g   \7        RV R	V R
2\:        ^R7       EK
  V^ 8w  d   \7        V\:        ^R7       EK&  \G        VVV4       EK6  	  VPI                  V4      pV\        PJ                  PL                  8X  dC   VPO                  RVPQ                  4       RVPS                  VPQ                  4       4      /4       V# VPU                  V4      pV\        PJ                  PL                  8X  dA   \        PV                  PX                  pVPO                  RVRVPS                  V4      /4       V# VP[                  4       pV\        PJ                  PL                  8X  dC   VPO                  RVPQ                  4       RVPS                  VPQ                  4       4      /4       V# VPQ                  4       pVP]                  4       pV\        PV                  P^                  \        PV                  P`                  \        PV                  Pb                  \        PV                  Pd                  39  ;'       gv    V\        PV                  P`                  \        PV                  Pb                  \        PV                  Pd                  09   ;'       d    VPf                  \        Ph                  8H  pV\        PV                  P^                  8g  pV'       d	   V'       g   V'       gr   V'       dj   VPO                  RVRRVPS                  V4       RVPk                  VPl                  4       2RVPn                  RVPp                  RVPr                  /4       V# VPu                  4       p VPw                  4       p!\        Px                  ! ^V
34      p"V!Pz                  p#V P|                  p$\        V
4       Fo  p%V#V%,          \        P                  P                  8X  d   V$V%,          V"^ V%3&   K9  V#V%,          \        P                  P                  8X  g   Ka  V$V%,          V"^V%3&   Kq  	  VPO                  RVRVPS                  V4      R\        P                  ! V P                  4      RVV P                  ,
          R\        P                  ! V P                  4      RV"RVPf                  RVPn                  RVPp                  RVPr                  /
4       V'       d6   VPO                  RVP                  RVP                  RVP                  /4       V# u upi )a	  Solve linear programs using HiGHS [1]_.

Assume problems of the form:

    MIN c.T @ x
    s.t. lhs <= A @ x <= rhs
         lb <= x <= ub

Parameters
----------
c : 1-D array, (n,)
    Array of objective value coefficients.
astart : 1-D array
    CSC format index array.
aindex : 1-D array
    CSC format index array.
avalue : 1-D array
    Data array of the matrix.
lhs : 1-D array (or None), (m,)
    Array of left hand side values of the inequality constraints.
    If ``lhs=None``, then an array of ``-inf`` is assumed.
rhs : 1-D array, (m,)
    Array of right hand side values of the inequality constraints.
lb : 1-D array (or None), (n,)
    Lower bounds on solution variables x.  If ``lb=None``, then an
    array of all `0` is assumed.
ub : 1-D array (or None), (n,)
    Upper bounds on solution variables x.  If ``ub=None``, then an
    array of ``inf`` is assumed.
options : dict
    A dictionary of solver options

Returns
-------
res : dict

    If model_status is one of kOptimal,
    kObjectiveBound, kTimeLimit,
    kIterationLimit:

        - ``status`` : HighsModelStatus
            Model status code.

        - ``message`` : str
            Message corresponding to model status code.

        - ``x`` : list
            Solution variables.

        - ``slack`` : list
            Slack variables.

        - ``lambda`` : list
            Lagrange multipliers associated with the constraints
            Ax = b.

        - ``s`` : list
            Lagrange multipliers associated with the constraints
            x >= 0.

        - ``fun``
            Final objective value.

        - ``simplex_nit`` : int
            Number of iterations accomplished by the simplex
            solver.

        - ``ipm_nit`` : int
            Number of iterations accomplished by the interior-
            point solver.

    If model_status is not one of the above:

        - ``status`` : HighsModelStatus
            Model status code.

        - ``message`` : str
            Message corresponding to model status code.

Notes
-----
If ``options['write_solution_to_file']`` is ``True`` but
``options['solution_file']`` is unset or ``''``, then the solution
will be printed to ``stdout``.

If any iteration limit is reached, no solution will be
available.

``OptimizeWarning`` will be raised if any option value set by
the user is found to be incorrect.

References
----------
.. [1] https://highs.dev/
.. [2] https://www.maths.ed.ac.uk/hall/HiGHS/HighsOptions.html
NxfunzUnrecognized options detected: )
stacklevelonoffz	Option f"z" is "z4", but only True or False is allowed. Using default.statusmessagezmodel_status is z; primal_status is simplex_nitipm_nitcrossover_nitslacklambda	marg_bndsmip_node_countmip_dual_boundmip_gap)sense)presolveparallel)Jsizenpsum_hHighsLpnum_col_num_row_	a_matrix_MatrixFormatkColwiseformat_	col_cost_
col_lower_
col_upper_
row_lower_
row_upper_start_index_value_HighsVarTypeintegrality__HighsHighsOptionshoptHighsOptionsManageritemsget_option_typer   dictr   
isinstanceboolHighsOptionTypecheck_optionkBoolsetattrpassOptionsHighsStatuskErrorupdategetModelStatusmodelStatusToString	passModelHighsModelStatuskModelErrorrungetInfokOptimal
kTimeLimitkIterationLimitkSolutionLimitobjective_function_value	kHighsInfsolutionStatusToStringprimal_solution_statussimplex_iteration_countipm_iteration_countcrossover_iteration_countgetSolutiongetBasiszeros
col_statuscol_dualrangeHighsBasisStatuskLowerkUpperarray	col_value	row_valuerow_dualr   r   r   )&cindptrindicesdatalhsrhslbubintegralityoptionsnumcolnumrowisMipreslpihighshighs_optionshoptmanagerkeyvalopt_typer   msg
opt_statusinit_statuserr_model_status
run_statusmodel_statusinfomipFailConditionlpFailConditionsolutionbasisr   basis_col_statussolution_col_dualiis&   &&&&&&&&&&                            H/usr/lib/python3/dist-packages/scipy/optimize/_highspy/_highs_wrapper.py_highs_wrapperr   	   sg   B VVFXXFt#??{(;a(?E 	TtC 
BKK"LL"LL??33BLLLMMMM LL!LLLL!7BC{!2??1-{C IIKEOO%M**,KMMOS;#+ ..s3>1$Sz2B1CD
 ..c4(("%$5C#C5se 42 3'#$	 ))(3H&uc37KFC2--333!#t,,#C5se 42 3'#$	  {S/a88sC0W $Z ""=1JR^^***

%..0544U5I5I5KL	
 
//"%Kbnn+++..::

*5445EF	
 
 JR^^***

%..0544U5I5I5KL	
 
 '')L ==?D $
$$
&&
++
**	,    	**//..
	
 	< 	< **bll:  #b&9&9&B&BBO"Eo

,-,,\:; <$//0K0KLMO t;;433!?!?		
 
   "HNNE !V%I'' ))FmB2#6#6#=#==04Iaeb!R%8%8%?%??04Iae	  JJlu00>(,,- S8---bhhx001400477t//T;;	
& 

 $"5"5 $"5"54<<	
 JW Ds   ]4c                    V P                  V4      w  r4\        P                  ! 4       pV\        P                  P
                  8w  d   R# \        P                  P                  \        \        P                  P                  \        \        P                  P                  \        \        P                  P                  \        /pVP                  VR4      pV\        J d   VP!                  W4      '       g   R# V\        J d   VP#                  W4      '       g   R# V\        J d   VP%                  W4      '       g   R# Vf   R# V P'                  V4      w  r8V\        P                  P
                  8w  d   R# R# )   N)r   zInvalid option name.)r   zInvalid option value.)   zUnknown option type.)   z Failed to validate option value.)r   zCheck option succeeded.)getOptionTyper2   r3   r   r>   kOkr9   r;   r8   kIntintkDoublefloatkStringstrgetcheck_string_optioncheck_double_optioncheck_int_optiongetOptionValue)	
highs_instoptionvaluer   option_typerr   valid_typesexpected_typecurrent_values	   &&&      r   r:   r:   2  s4   $226:F**,K###)) 	  $

""E
""C	K  OOK6M..v==....v==..++F::..((&55f=F###44''    )warningsr   numpyr   scipy.optimize._highspy._coreoptimize_highspy_corer   scipy.optimize._highspyr   r2   scipy.optimizer   r   r:    r   r   <module>r      s#      * * : *fR	 (r   