Ë
    &�£j�v  ã                   ó˜  — d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZ 	 ddlZej&                  dk(  rd	Znd
Zd„ Zd„ Zd„ Z ej0                  d«      Z ej0                  d«      Z ej0                  d«      ZdeiZd„ Z G d„ d«      Zd„ Zde_          G d„ d«      Z! G d„ d«      Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'i dd“d d!“d"d"“d#d#“d$d$“d%d%“d&d&“d'd'“d(d(“d)d)“d*d*“d+d+“d,d,“d-d-“d.d.“d/d/“d0d1“d2d3d4d5d6d7d8œ¥Z(d9jS                  e(jU                  «       «      Z+i dd“d d!“d"d"“d#d#“d$d:“d%d;“d&d<“d'd=“d(d<“d)d=“d*d>“d+d?“d,d@“d-d-“d.d.“d0d1“dAd2“d4d5d6d7dBœ¥Z,d9jS                  e,jU                  «       «      Z-dCdDdEdFdGœZ. G dH„ dI«      Z/dJ„ Z0dK„ Z1dL„ Z2dM„ Z3dN„ Z4dO„ Z5dP„ Z6dQ„ Z7dR„ Z8dS„ Z9dT„ Z:dU„ Z;efdV„Z<y# e$ r dZY �ŒŽw xY w)WzI
A place for internal code

Some things are more easily handled Python.

é    N)Ú_NoValue)ÚDTypePromotionErroré   )Ú_is_view_safe_cast)ÚStringDTypeÚarrayÚdtypeÚpromote_typesÚlittleÚ<Ú>c                 ó0  — g }| j                  «       D ]�  \  }}t        |«      }t        |t        «      r|dvrt	        d«      ‚|dkD  r	|d   |k(  rŒ>t        |d   «      }|dk  rt	        d«      ‚t        |d   |¬«      }|dkD  r|d   }nd }|j                  ||||f«       Œ� |j                  d„ ¬	«       |D �	cg c]  }	|	d   ‘Œ	 }
}	|D �	cg c]  }	|	d   ‘Œ	 }}	|D �	cg c]  }	|	d   ‘Œ	 }}	|D �	cg c]  }	|	d
   ‘Œ	 }}	|
|||fS c c}	w c c}	w c c}	w c c}	w )N)é   é   zentry not a 2- or 3- tupler   r   r   zinvalid offset.©Úalignc                 ó   — | d   S )Nr   © )Úxs    ú7C:\FundamentalWorkbench\vendor\numpy\_core\_internal.pyÚ<lambda>z!_makenames_list.<locals>.<lambda>0   s   €   1¢ó    )Úkeyr   )	ÚitemsÚlenÚ
isinstanceÚtupleÚ
ValueErrorÚintr	   ÚappendÚsort)Úadictr   Ú	allfieldsÚfnameÚobjÚnÚnumÚformatÚtitler   ÚnamesÚformatsÚoffsetsÚtitless                 r   Ú_makenames_listr.      s=  € Ø€Ià—k‘k–m‰
ˆˆsÜ�‹HˆÜ˜#œuÔ%¨°&©ÜÐ9Ó:Ð:ØˆqŠ5�S˜‘V˜u’_ØÜ�#�a‘&‹kˆØ�Š7ÜÐ.Ó/Ð/Ü�s˜1‘v UÔ+ˆØˆqŠ5Ø˜‘F‰EàˆEØ×Ñ˜% ¨¨eÐ4Õ5ð $ð  ‡N�N‘~€NÔ&Ù$Ó%™9�aˆQˆq‹T˜9€EÐ%Ù&Ó'™Y˜ˆq�‹t˜Y€GÐ'Ù&Ó'™Y˜ˆq�‹t˜Y€GÐ'Ù%Ó&™I�qˆa�‹d˜I€FÐ&à�'˜7 FÐ*Ð*ùò &ùÚ'ùÚ'ùÚ&s   Â:DÃD	ÃDÃ0Dc                 óV  — 	 | d   }|€t        | |«      \  }}}}nng }g }g }|D ]c  }| |   }|j                  |d   «       |j                  |d   «       t        |«      dkD  r|j                  |d   «       ŒS|j                  d «       Œe t	        ||||dœ|«      S # t         $ r d }Y Œ w xY w)Néÿÿÿÿr   r   r   )r*   r+   r,   r-   )ÚKeyErrorr.   r    r   r	   )r"   r   r*   r+   r,   r-   ÚnameÚress           r   Ú
_usefieldsr4   ;   sÏ   € ðØ�b‘	ˆð €}Ü*9¸%ÀÓ*GÑ'ˆˆw˜¡àˆØˆØˆÛˆDØ˜‘+ˆCØ�N‰N˜3˜q™6Ô"Ø�N‰N˜3˜q™6Ô"Ü�3‹x˜!Š|Ø—‘˜c !™fÕ%à—‘˜dÕ#ð ô ˜5Ø$Ø$Ø"ñ$ð &+ó,ð ,øô# ò ØŠðús   ‚B ÂB(Â'B(c                 óh  — | j                   }|€o| j                  }|€N| j                  €| j                  S | j                  j	                  «       }|r| j                  |fS | j                  S t        |d   «      |d   fS | j                  }|D �cg c]  }||   |fz   ‘Œ }}g }d}|D ]Ð  }	|	d   |kD  r$|	d   |z
  }
|j                  dd|
› �f«       ||
z  }n|	d   |k  rt        d«      ‚t        |	«      dkD  r|	d   |	d   f}n|	d   }|	d   j                  r/|t        |	d   j                  d   «      |	d   j                  d   f}n|t        |	d   «      f}||	d   j                  z  }|j                  |«       ŒÒ | j                  |kD  r%| j                  |z
  }
|j                  dd|
› �f«       |S c c}w )Nr   r   Ú z|VzLdtype.descr is not defined for types with overlapping or out-of-order fieldsr   r   )ÚfieldsÚsubdtypeÚmetadataÚstrÚcopyÚ_array_descrr*   r    r   r   Úitemsize)Ú
descriptorr7   r8   Únewr*   r   Úordered_fieldsÚresultÚoffsetÚfieldr'   r2   Útups                r   r<   r<   [   sô  € Ø×Ñ€FØ€~Ø×&Ñ&ˆØÐØ×"Ñ"Ð*Ø!—~‘~Ð%à ×)Ñ)×.Ñ.Ó0�ÙØ&ŸN™N¨CÐ0Ð0à%Ÿ>™>Ð)ä  ¨!¡Ó-¨x¸©{Ð;Ð;à×Ñ€EÙ05Ó6±¨1�f˜Q‘i 1 $Ó&°€NÐ6Ø€FØ€FÛˆØ�‰8�fÒØ˜‘(˜VÑ#ˆCØ�M‰M˜2  C 5˜zÐ*Ô+Ø�c‰M‰FØ�1‰X˜ÒÜð&ó'ð 'ô ˆu‹:˜Š>Ø˜!‘H˜e A™hÐ'‰Dà˜‘8ˆDØ�‰8×ÒØœ e¨A¡h×&7Ñ&7¸Ñ&:Ó;Ø˜‘8×$Ñ$ QÑ'ð)‰Cð œ e¨A¡hÓ/Ð0ˆCØ�%˜‘(×#Ñ#Ñ#ˆØ�‰�cÕð'  ð* ×Ñ˜VÒ#Ø×!Ñ! FÑ*ˆØ�‰�r˜R ˜u˜:Ð&Ô'à€Mùò9 7s   ÂF/zw(?P<order1>[<>|=]?)(?P<repeats> *[(]?[ ,0-9]*[)]? *)(?P<order2>[<>|=]?)(?P<dtype>[A-Za-z0-9.?]*(?:\[[a-zA-Z0-9,.]+\])?)z\s*,\s*z\s+$Ú=c                 óè  — d}g }d}|t        | «      k  �r£t        j                  | |¬«      }	 |j                  «       \  }}}}|j                  «       }|t        | «      k  rlt        j                  | |¬«      rt        | «      }nIt        j                  | |¬«      }|st        dt        |«      dz   › d| › d�«      ‚|j                  «       }d}|d	k(  r|}	nL|d	k(  r|}	nDt        j                  ||«      }t        j                  ||«      }||k7  rt        d
|› d|› �«      ‚|}	|	ddt        fv rd	}	|	|z   }|d	k(  r|}
n]|d   dk(  r>|d   dk(  r6|dd j                  «       d	k7  r d|vrt        j                  dt         d¬«       |t#        j$                  |«      f}
|j'                  |
«       |t        | «      k  r�Œ£|r|S |d   S # t        t
        f$ r  t        dt        |«      dz   › d| › d�«      d ‚w xY w)Nr   F)Úposzformat number r   z of "z" is not recognizedTr6   z&inconsistent byte-order specification z and Ú|rE   Ú(r0   Ú)Ú,zŽPassing in a parenthesized single number for repeats is deprecated; pass either a single number or indicate a tuple with a comma, like "(2,)".r   )Ú
stacklevel)r   Ú	format_reÚmatchÚgroupsÚ	TypeErrorÚAttributeErrorr   ÚendÚspace_reÚsep_reÚ
_convorderÚgetÚ_nboÚstripÚwarningsÚwarnÚDeprecationWarningÚastÚliteral_evalr    )ÚastrÚ
startindexrA   ÚislistÚmoÚorder1ÚrepeatsÚorder2r	   ÚorderÚnewitems              r   Ú_commastringrg   ˜   s2  € Ø€JØ€FØ€FØ
”s˜4“yÓ
 Ü�_‰_˜T zˆ_Ó2ˆð	Ø/1¯y©y«{Ñ,ˆV�W˜f eð
 —V‘V“Xˆ
àœ˜D›	Ò!Ü�~‰~˜d¨
ˆ~Ô3Ü  ›Y‘
ä—\‘\ $¨J�\Ó7�ÙÜ$Ø(¬¨V«°q©Ð(9¸¸t¸fð E,ð ,ó-ð -ð  ŸV™V›X�
Ø�à�RŠ<Ø‰EØ�rŠ\Ø‰Eä—^‘^ F¨FÓ3ˆFÜ—^‘^ F¨FÓ3ˆFØ˜&Ò Ü Ø<¸V¸HÀEÈ&ÈÐRóTð TàˆEà�S˜#œtÐ$Ñ$ØˆEØ˜‘ˆØ�bŠ=Ø‰Gà˜‘
˜cÒ! g¨b¡k°SÒ&8Ø  "˜×+Ñ+Ó-°Ò3Ø 7Ñ*Ü—‘ð9ä:LØ õ	"ð
 œc×.Ñ.¨wÓ7Ð8ˆGà�‰�gÔðe ”s˜4“yÔ
 ñh ˆ6Ð* ¨¡Ð*øôa œ>Ð*ò 	ÜØ ¤ V£¨q¡Ð 1°°t°fÐ<OÐPóàðð	ús   ®G Ç/G1c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Údummy_ctypec                 ó   — || _         y ©N©Ú_cls)ÚselfÚclss     r   Ú__init__zdummy_ctype.__init__Ô   s	   € Øˆ�	r   c                 ó   — | S rk   r   ©rn   Úothers     r   Ú__mul__zdummy_ctype.__mul__×   s   € Øˆr   c                 ó$   — | j                  |«      S rk   rl   rr   s     r   Ú__call__zdummy_ctype.__call__Ú   s   € Ø�y‰y˜ÓÐr   c                 ó4   — | j                   |j                   k(  S rk   rl   rr   s     r   Ú__eq__zdummy_ctype.__eq__Ý   ó   € Ø�y‰y˜EŸJ™JÑ&Ð&r   c                 ó4   — | j                   |j                   k7  S rk   rl   rr   s     r   Ú__ne__zdummy_ctype.__ne__à   ry   r   N)Ú__name__Ú
__module__Ú__qualname__rp   rt   rv   rx   r{   r   r   r   ri   ri   Ò   s   „ òòò ò'ó'r   ri   c                  óR  — t         j                  } | �| S t        €dd l}t	        |j
                  «      } ngt        d«      j                  }|dk(  rt        j                  } n<|dk(  rt        j                  } n&|dk(  rt        j                  } nt        j                  } | t         _        | S )Nr   r&   ÚiÚlÚq)Ú_getintp_ctypeÚcacheÚctypesÚnumpyri   Úintpr	   ÚcharÚc_intÚc_longÚ
c_longlong)ÚvalÚnprˆ   s      r   rƒ   rƒ   ã   s‚   € Ü
×
Ñ
€CØ
€Øˆ
Ü€~ÛÜ˜"Ÿ'™'Ó"‰ä�S‹z�‰ˆØ�3Š;Ü—,‘,‰CØ�SŠ[Ü—-‘-‰CØ�SŠ[Ü×#Ñ#‰Cä—-‘-ˆCØ„NÔØ€Jr   c                   ó&   — e Zd Zd„ Z G d„ d«      Zy)Ú_missing_ctypesc                 ó   — |j                   S rk   ©Úvalue)rn   r'   r%   s      r   Úcastz_missing_ctypes.castý   s   € Ø�y‰yÐr   c                   ó   — e Zd Zd„ Zy)ú_missing_ctypes.c_void_pc                 ó   — || _         y rk   r‘   )rn   Úptrs     r   rp   z!_missing_ctypes.c_void_p.__init__  s	   € ØˆD�Jr   N)r|   r}   r~   rp   r   r   r   Úc_void_pr•      s   „ ó	r   r˜   N)r|   r}   r~   r“   r˜   r   r   r   r�   r�   ü   s   „ ò÷ò r   r�   c                   óf   — e Zd Zd
d„Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Z	ed„ «       Z
ed	„ «       Zy)Ú_ctypesNc                 óF  — || _         t        r,t        | _        | j                  j                  |«      | _        n@t        «       | _        | j                  j                  |«      | _        || j                  _        | j                   j                  dk(  rd| _        y d| _        y )Nr   TF)	Ú_arrr…   rš   r˜   Ú_datar�   Ú_objectsÚndimÚ_zerod)rn   r   r—   s      r   rp   z_ctypes.__init__  su   € ØˆŒ	åÜ!ˆDŒLØŸ™×.Ñ.¨sÓ3ˆD�Jô +Ó,ˆDŒLØŸ™×.Ñ.¨sÓ3ˆDŒJØ"'ˆD�J‰JÔà�9‰9�>‰>˜QÒØˆD�KàˆD�Kr   c                 ót   — | j                   j                  | j                  |«      }| j                  |_        |S )aœ  
        Return the data pointer cast to a particular c-types object.
        For example, calling ``self._as_parameter_`` is equivalent to
        ``self.data_as(ctypes.c_void_p)``. Perhaps you want to use
        the data as a pointer to a ctypes array of floating-point data:
        ``self.data_as(ctypes.POINTER(ctypes.c_double))``.

        The returned pointer will keep a reference to the array.
        )rš   r“   r�   rœ   )rn   r%   r—   s      r   Údata_asz_ctypes.data_as  s.   € ð �l‰l×Ñ §
¡
¨CÓ0ˆØ—9‘9ˆŒØˆ
r   c                 ó|   — | j                   ry || j                  j                  z  | j                  j                  Ž S )zˆ
        Return the shape tuple as an array of some other c-types
        type. For example: ``self.shape_as(ctypes.c_short)``.
        N)r    rœ   rŸ   Úshape©rn   r%   s     r   Úshape_asz_ctypes.shape_as*  s0   € ð
 �;Š;ØØ$��d—i‘i—n‘nÑ$ t§y¡y§¡Ð7Ð7r   c                 ó|   — | j                   ry || j                  j                  z  | j                  j                  Ž S )z�
        Return the strides tuple as an array of some other
        c-types type. For example: ``self.strides_as(ctypes.c_longlong)``.
        N)r    rœ   rŸ   Ústridesr¥   s     r   Ú
strides_asz_ctypes.strides_as3  s2   € ð
 �;Š;ØØ$��d—i‘i—n‘nÑ$ t§y¡y×'8Ñ'8Ð9Ð9r   c                 ó.   — | j                   j                  S )a  
        A pointer to the memory area of the array as a Python integer.
        This memory area may contain data that is not aligned, or not in
        correct byte-order. The memory area may not even be writeable.
        The array flags and data-type of this array should be respected
        when passing this attribute to arbitrary C-code to avoid trouble
        that can include Python crashing. User Beware! The value of this
        attribute is exactly the same as:
        ``self._array_interface_['data'][0]``.

        Note that unlike ``data_as``, a reference won't be kept to the array:
        code like ``ctypes.c_void_p((a + b).ctypes.data)`` will result in a
        pointer to a deallocated array, and should be spelt
        ``(a + b).ctypes.data_as(ctypes.c_void_p)``
        )r�   r’   ©rn   s    r   Údataz_ctypes.data<  s   € ð" �z‰z×ÑÐr   c                 ó4   — | j                  t        «       «      S )aŽ  
        (c_intp*self.ndim): A ctypes array of length self.ndim where
        the basetype is the C-integer corresponding to ``dtype('p')`` on this
        platform (see `~numpy.ctypeslib.c_intp`). This base-type could be
        `ctypes.c_int`, `ctypes.c_long`, or `ctypes.c_longlong` depending on
        the platform. The ctypes array contains the shape of
        the underlying array.
        )r¦   rƒ   r«   s    r   r¤   z_ctypes.shapeO  s   € ð �}‰}œ^Ó-Ó.Ð.r   c                 ó4   — | j                  t        «       «      S )aj  
        (c_intp*self.ndim): A ctypes array of length self.ndim where
        the basetype is the same as for the shape attribute. This ctypes
        array contains the strides information from the underlying array.
        This strides information is important for showing how many bytes
        must be jumped to get to the next element in the array.
        )r©   rƒ   r«   s    r   r¨   z_ctypes.strides[  s   € ð �‰œ~Ó/Ó0Ð0r   c                 ó@   — | j                  t        j                  «      S )ze
        Overrides the ctypes semi-magic method

        Enables `c_func(some_array.ctypes)`
        )r¢   r…   r˜   r«   s    r   Ú_as_parameter_z_ctypes._as_parameter_f  s   € ð �|‰|œFŸO™OÓ,Ð,r   rk   )r|   r}   r~   rp   r¢   r¦   r©   Úpropertyr¬   r¤   r¨   r°   r   r   r   rš   rš     sf   „ ó ò"ò&8ò:ð ñ ó ð ð$ ñ	/ó ð	/ð ñ1ó ð1ð ñ-ó ñ-r   rš   c                 ó’  — | j                   }t        |«      }t        |t        «      r|g}t	        «       }t        |t        t
        f«      rA|D ]%  }	 |j                  |«       |j                  |«       Œ' t        t        |«      |z   «      S t        d|› �«      ‚# t        $ r# ||v rt        d|› �«      d‚t        d|› �«      d‚w xY w)zf
    Given a datatype and an order object, return a new names tuple, with the
    order indicated
    zduplicate field name: Nzunknown field name: zunsupported order value: )	r*   Úlistr   r:   Úsetr   Úremover   Úadd)Údatatypere   ÚoldnamesÚ	nameslistÚseenr2   s         r   Ú	_newnamesr»   p  sÔ   € ð
 �~‰~€HÜ�X“€IÜ�%œÔØ�ˆÜ‹5€DÜ�%œ$¤˜Ô'ÛˆDðNØ× Ñ  Ô&ð �H‰H�T�Nð ô ”T˜%“[ 9Ñ,Ó-Ð-Ü
Ð0°°Ð8Ó
9Ð9øô ò NØ˜4‘<Ü$Ð'=¸d¸VÐ%DÓEÈ4ÐOä$Ð';¸D¸6Ð%BÓCÈÐMð	Nús   ÁBÂ,Cc                 ó®   — | j                   }|j                  |j                  D �cg c]  }|j                  |   d   ‘Œ c}dœ}t        | |d¬«      S c c}w )a  Return copy of structured array with padding between fields removed.

    Parameters
    ----------
    ary : ndarray
       Structured array from which to remove padding bytes

    Returns
    -------
    ary_copy : ndarray
       Copy of ary with padding bytes removed
    r   )r*   r+   T)r	   r;   )r	   r*   r7   r   )ÚaryÚdtr2   Ú
copy_dtypes       r   Ú_copy_fieldsrÀ   ‡  sT   € ð 
�‰€BØŸ8™8Ø=?¿XºXÓF¹X°T˜bŸi™i¨™o¨aÓ0¸XÑFñH€Jä�˜J¨TÔ2Ð2ùò Gs   ¦Ac                 óø  — | j                   �%|j                   �| j                   |j                   k7  r&t        d| j                   › d|j                   › d�«      ‚| |u }g }| j                   D ]‘  }| j                  |   }|j                  |   }t        |d   |d   «      }|xr ||d   u }|dd |dd k7  rt        d|› d�«      ‚t	        |«      dk(  r|j                  ||f«       Œz|j                  |d   |f|f«       Œ“ t        || j                  xs |j                  ¬	«      }|rU|j                  | j                  k(  r<| j                   D ]+  }| j                  |   d
   |j                  |   d
   k7  sŒ)|c S  | S |S )a“   Perform type promotion for two structured dtypes.

    Parameters
    ----------
    dt1 : structured dtype
        First dtype.
    dt2 : structured dtype
        Second dtype.

    Returns
    -------
    out : dtype
        The promoted dtype

    Notes
    -----
    If one of the inputs is aligned, the result will be.  The titles of
    both descriptors must match (point to the same field).
    Nzfield names `z` and `z` mismatch.r   r   zfield titles of field 'z
' mismatchr   r   )	r*   r   r7   r
   r   r    r	   Úisalignedstructr=   )	Údt1Údt2Ú	identicalÚ
new_fieldsr2   Úfield1Úfield2Ú	new_descrr3   s	            r   Ú_promote_fieldsrÊ   ™  s’  € ð* 	�	‰	Ð˜SŸY™YÐ.°3·9±9ÀÇ	Á	Ò3IÜ!Ø §	¡	˜{¨'°#·)±)°¸KÐHóJð 	Jð �s�
€IØ€JØ—	”	ˆØ—‘˜DÑ!ˆØ—‘˜DÑ!ˆÜ! &¨¡)¨V°A©YÓ7ˆ	ØÒ8 )¨v°a©yÐ"8ˆ	ð �!�"ˆ:˜  ˜Ò#Ü%Ø-¨d¨V°:Ð>ó@ð @äˆv‹;˜!ÒØ×Ñ˜t YÐ/Õ0à×Ñ  q¡	¨4Ð0°)Ð<Õ=ð ô �
 #×"5Ñ"5Ò"L¸×9LÑ9LÔ
M€Cñ
 �S—\‘\ S§\¡\Ò1Ø—I”IˆDØ�z‰z˜$Ñ Ñ" c§j¡j°Ñ&6°qÑ&9Ó9Ø’
ð ð ˆ
à€Jr   c                 ó  — |j                   s| j                   rg|dk(  rt        | |«      ry| j                  �>| j                  D ]/  }| j                  |   d   |k(  sŒ| j                  |   d   |k(  sŒ/ y t	        d«      ‚y)a   Checks safety of getfield for object arrays.

    As in _view_is_safe, we need to check that memory containing objects is not
    reinterpreted as a non-object datatype and vice versa.

    Parameters
    ----------
    oldtype : data-type
        Data type of the original ndarray.
    newtype : data-type
        Data type of the field being accessed by ndarray.getfield
    offset : int
        Offset of the field being accessed by ndarray.getfield

    Raises
    ------
    TypeError
        If the field access is invalid

    r   Nr   z'Cannot get/set field of an object array)Ú	hasobjectr   r*   r7   rP   )ÚoldtypeÚnewtyperB   r2   s       r   Ú_getfield_is_saferÏ   Ò  s�   € ð* ×Ò˜G×-Ò-Ø�QŠ;Ô-¨g°wÔ?ØØ�=‰=Ð$ØŸœ�Ø—N‘N 4Ñ(¨Ñ+¨vÓ5ØŸ™ tÑ,¨QÑ/°7Ó:Ùð &ô ÐAÓBÐBØ
r   c                 ód   — t        | |«      ry|j                  s| j                  rt        d«      ‚y)az   Checks safety of a view involving object arrays, for example when
    doing::

        np.zeros(10, dtype=oldtype).view(newtype)

    Parameters
    ----------
    oldtype : data-type
        Data type of original ndarray
    newtype : data-type
        Data type of the view

    Raises
    ------
    TypeError
        If the new type is incompatible with the old type.

    Nz0Cannot change data-type for array of references.)r   rÌ   rP   )rÍ   rÎ   s     r   Ú_view_is_saferÑ   ò  s1   € ô. ˜' 7Ô+Øà×Ò˜G×-Ò-ÜÐJÓKÐKØ
r   Ú?ÚcÚS1ÚbÚBÚhÚHr€   ÚIr�   ÚLr‚   ÚQÚeÚfÚdÚgÚZfÚFÚDÚGÚSÚUÚOÚV)ÚZdÚZgÚsÚwræ   r   r6   Úi2Úu2Úi4Úu4Úi8Úu8Úf2rè   )rê   rë   ræ   r   zUCS-2 stringsÚpointersÚ	bitfieldszfunction pointers)ÚuÚ&ÚtÚXc                   ó:   — e Zd Zd„ Zd„ Zd„ Zd„ Zed„ «       Zd„ Z	y)Ú_Streamc                 ó    — || _         d| _        y )NÚ@)rê   Ú	byteorder)rn   rê   s     r   rp   z_Stream.__init__P  s   € ØˆŒØˆ�r   c                 óL   — | j                   d | }| j                   |d  | _         |S rk   ©rê   )rn   r&   r3   s      r   Úadvancez_Stream.advanceT  s'   € Ø�f‰f�R�aˆjˆØ—‘˜˜�ˆŒØˆ
r   c                 óp   — | j                   d t        |«       |k(  r| j                  t        |«      «       yy)NTF)rê   r   r   )rn   rÓ   s     r   Úconsumez_Stream.consumeY  s.   € Ø�6‰6�'”3�q“6ˆ?˜aÒØ�L‰Lœ˜Q›Ô ØØr   c                 óŽ  — t        |«      rsd}|t        | j                  «      k  rH || j                  |   «      s3|dz   }|t        | j                  «      k  r || j                  |   «      sŒ3| j                  |«      S | j                  j	                  |«      }| j                  |«      }| j                  t        |«      «       |S )Nr   r   )Úcallabler   rê   r   Úindex)rn   rÓ   r€   r3   s       r   Úconsume_untilz_Stream.consume_until_  s”   € Ü�AŒ;ØˆAØ”c˜$Ÿ&™&“k’/©!¨D¯F©F°1©I¬,Ø˜‘E�ð ”c˜$Ÿ&™&“k’/©!¨D¯F©F°1©I­,à—<‘< “?Ð"à—‘—‘˜Q“ˆAØ—,‘,˜q“/ˆCØ�L‰Lœ˜Q›Ô ØˆJr   c                 ó    — | j                   d   S )Nr   rÿ   r«   s    r   Únextz_Stream.nextk  s   € à�v‰v�a‰yÐr   c                 ó,   — t        | j                  «      S rk   )Úboolrê   r«   s    r   Ú__bool__z_Stream.__bool__o  s   € Ü�D—F‘F‹|Ðr   N)
r|   r}   r~   rp   r   r  r  r±   r  r  r   r   r   rú   rú   O  s/   „ òòò
ò
ð ñó ðór   rú   c                 ó<   — t        | «      }t        |d¬«      \  }}|S )NF©Úis_subdtype)rú   Ú__dtype_from_pep3118)ÚspecÚstreamr	   r   s       r   Ú_dtype_from_pep3118r  s  s    € Ü�T‹]€FÜ'¨¸EÔB�L€Eˆ5Ø€Lr   c                 ó&  — g g g ddœ}d}d}d}| �rd }| j                  d«      r�nùd }| j                  d«      r9| j                  d«      }t        t        t        |j                  d«      «      «      }| j                  d	v r| j                  d«      }|d
k(  rd}|| _        | j                  dv rt        }	t        }
nt        }	t        }
| j                  d„ «      }|rt	        |«      }nd}d}| j                  d«      rt        | d¬«      \  }}nó| j                  |
v rŒ| j                  dk(  r| j                  d«      }n| j                  d«      }|dk(  }|	|   }|dv r||› z  }d}dddœj                  | j                  | j                  «      }t        ||z   «      }|j                   }nY| j                  t"        v r/t"        | j                     }t%        d| j                  ›d|› d�«      ‚t'        d| j(                  ›�«      ‚d}| j                  dk(  rS| |z  }|j*                   |z  }||z  }|dk7  r'|dkD  s|�t-        |«      dkD  rt/        ||«      }n||z  }t1        ||«      }|dk7  rt        ||ff«      }|�t        ||f«      }| j                  d«      r| j                  d«      }nd }|r|�T|�||d   v rt3        d|› d�«      ‚|d   j5                  |«       |d   j5                  |«       |d   j5                  |«       ||j*                  z  }||z  }||d <   | r�Œ| j                  dk(  r|d xx   | |z  z  cc<   |d   d gk(  r1|d   d   dk(  r&|d    |d   d   j*                  k(  r|s|d   d   }||fS t7        |«       t        |«      }||fS )!Nr   ©r*   r+   r,   r=   r   FÚ}rI   rJ   rK   )rü   rE   r   r   Ú^Ú!r  r   )rü   r  c                 ó$   — | j                  «        S rk   )Úisdigit)rÓ   s    r   r   z&__dtype_from_pep3118.<locals>.<lambda>¡  s   € ¸!¿)¹)»+±or   zT{Tr  ÚZr   r   ÚUSVrE   z#Unrepresentable PEP 3118 data type z (z%Unknown PEP 3118 data type specifier rü   Ú:r*   zDuplicate field name 'z' in PEP3118 formatr+   r,   r=   )r  r  r   Úmapr   Úsplitr  r   rý   Ú_pep3118_native_mapÚ_pep3118_native_typecharsÚ_pep3118_standard_mapÚ_pep3118_standard_typecharsr  rV   r	   Ú	alignmentÚ_pep3118_unsupported_mapÚNotImplementedErrorr   rê   r=   Ú_prodÚ_add_trailing_paddingÚ_lcmÚRuntimeErrorr    Ú
_fix_names)r  r  Ú
field_specrB   Úcommon_alignmentÚ
is_paddingr’   r¤   rý   Útype_mapÚtype_map_charsÚitemsize_strr=   r   ÚtypecharÚ	dtypecharÚnumpy_byteorderÚdescÚextra_offsetÚstart_paddingÚintra_paddingr2   Úrets                          r   r  r  x  s1  € àØØØñ	€Jð €FØÐØ€Jò Øˆð �>‰>˜#ÔÙð ˆØ�>‰>˜#ÔØ×(Ñ(¨Ó-ˆEÜœ#œc 5§;¡;¨sÓ#3Ó4Ó5ˆEð �;‰;Ð8Ñ8ØŸ™ qÓ)ˆIØ˜CÒØ�	Ø(ˆFÔð ×Ñ˜zÑ)Ü*ˆHÜ6‰Nä,ˆHÜ8ˆNð ×+Ñ+Ñ,EÓFˆÙÜ˜<Ó(‰HàˆHð ˆ
à�>‰>˜$ÔÜ/Ø Dô*‰LˆE‘5à�[‰[˜NÑ*Ø�{‰{˜cÒ!Ø!Ÿ>™>¨!Ó,‘à!Ÿ>™>¨!Ó,�à" c™/ˆJØ  Ñ*ˆIØ˜EÑ!Ø ˜zÑ*�	Ø�Ø$'¨cÑ2×6Ñ6Ø× Ñ  &×"2Ñ"2ó4ˆOä˜/¨IÑ5Ó6ˆEØ—O‘O‰EØ�[‰[Ô4Ñ4Ü+¨F¯K©KÑ8ˆDÜ%Ø5°f·k±k°_ÀBÀtÀfÈAÐNóPð Pô Ø7¸¿¹°|ÐDóð ð ˆØ×Ñ˜sÒ"Ø$˜W¨Ñ-ˆMØ#Ÿn™n˜_°Ñ5ˆMà�mÑ#ˆFà Ò!Ø˜a’< EÐ$5¼%À»,ÈÒ:Jä1°%¸ÓG‘Eð ! MÑ1�Lô  $ EÐ+;Ó<Ðð �qŠ=Ü˜5 8 +Ð.Ó/ˆEð ÐÜ˜5 %˜.Ó)ˆEð �>‰>˜#ÔØ×'Ñ'¨Ó,‰DàˆDá˜t˜|ØÐ D¨J°wÑ,?Ñ$?Ü"Ø,¨T¨FÐ2EÐFóð ð �wÑ×&Ñ& tÔ,Ø�yÑ!×(Ñ(¨Ô/Ø�yÑ!×(Ñ(¨Ô0à�%—.‘.Ñ ˆØ�,Ñˆà!'ˆ
�:Ñói ðn ×Ñ˜3ÒØ�:Ó F 7Ð.>Ñ">Ñ>Óð 	�7Ñ ˜vÒ%Ø˜9Ñ% aÑ(¨AÒ-Ø˜:Ñ&¨*°YÑ*?ÀÑ*B×*KÑ*KÒKÙØ˜Ñ# AÑ&ˆð Ð Ð Ð ô	 	�:ÔÜ�JÓˆð Ð Ð Ð r   c                 ój   — | d   }t        |«      D ]   \  }}|�Œ	d}	 d|› �}||vrn|dz   }Œ|||<   Œ" y)z< Replace names which are None with the next unused f%d name r*   Nr   rÝ   r   )Ú	enumerate)r+  r*   r€   r2   Újs        r   r*  r*    s_   € à�wÑ€EÜ˜UÖ#‰ˆˆ4ØÐØàˆØØ�q�c�7ˆDØ˜5Ñ ØØ�A‘ˆAð	 ð
 ˆˆaŠñ $r   c                 ó*  — | j                   €dg| gdg| j                  dœ}nQ| j                   }| j                  }||D �cg c]
  }||   d   ‘Œ c}|D �cg c]
  }||   d   ‘Œ c}| j                  dœ}|dxx   |z  cc<   t        |«      S c c}w c c}w )zBInject the specified number of padding bytes at the end of a dtypeÚf0r   r  r   r=   )r7   r=   r*   r	   )r’   Úpaddingr+  r7   r*   r2   s         r   r'  r'    s§   € à‡|�|Ðà�VØ�wØ�sØŸ™ñ	
‰
ð —‘ˆØ—‘ˆàÙ49Ó:±E¨D˜˜t™ Q›°EÑ:Ù49Ó:±E¨D˜˜t™ Q›°EÑ:ØŸ™ñ	
ˆ
ð ˆzÓ˜gÑ%ÓÜ�ÓÐùò ;ùÚ:s   ¿BÁBc                 ó"   — d}| D ]  }||z  }Œ	 |S )Nr   r   )ÚaÚpr   s      r   r&  r&  0  s   € Ø	€AÛˆØ	ˆQ‰‰ð à€Hr   c                 ó–   — t        j                  | «      rt        j                  |«      st        d| › d|› d�«      ‚|r
|| |z  }} |rŒ
| S )z0Calculate the greatest common divisor of a and bzBCan only find greatest common divisor of finite arguments, found "z" and "Ú")ÚmathÚisfiniter   ©r@  rÕ   s     r   Ú_gcdrG  6  sZ   € ä�M‰M˜!Ô¤§¡¨qÔ!1Üð 5Ø56°C°w¸q¸cÀðDó Eð 	Eá
Ø�!�a‘%ˆ1ˆò à€Hr   c                 ó&   — | t        | |«      z  |z  S rk   )rG  rF  s     r   r(  r(  ?  s   € Ø”�Q˜“
‰?˜QÑÐr   c           
      ó   — dj                  |D �cg c]  }|›‘Œ c}|j                  «       D ��cg c]  \  }}|› d|›�‘Œ c}}z   «      }||j                  dd«      z   }	dj                  d„ |	D «       «      }
d|›d|›d|› d|
› �S c c}w c c}}w )ú= Format the error message for when __array_ufunc__ gives up. ú, rE   Úoutr   c              3   óX   K  — | ]"  }t        t        |«      j                  «      –— Œ$ y ­wrk   )ÚreprÚtyper|   )Ú.0Úargs     r   Ú	<genexpr>z/array_ufunc_errmsg_formatter.<locals>.<genexpr>H  s    è ø€ ÐFÁ¸#œT¤$ s£)×"4Ñ"4×5Áùs   ‚(*zAoperand type(s) all returned NotImplemented from __array_ufunc__(z): )Újoinr   rV   )ÚdummyÚufuncÚmethodÚinputsÚkwargsrQ  ÚkÚvÚargs_stringÚargsÚtypes_strings              r   Úarray_ufunc_errmsg_formatterr^  B  sµ   € à—)‘)±6Ó:±6¨C ˜w™Z°6Ñ:à)/¯©¬ô9Ù)7¡  Að !"˜s ! A 5š\Ø)7ò9ñ9ó :€Kð �F—J‘J˜u bÓ)Ñ)€DØ—9‘9ÑFÁÓFÓF€LðØ$˜i r¨&¨°2°k°]À#ÀlÀ^ðUð ùò ;ùó9s
   �
B¯B
c                 óZ   — | j                   › d| j                  › �}d|› dt        |«      › �S )rJ  Ú.zno implementation found for 'z.' on types that implement __array_function__: )r}   r|   r³   )Ú
public_apiÚtypesÚ	func_names      r   Úarray_function_errmsg_formatterrd  N  s?   € à×(Ñ(Ð)¨¨:×+>Ñ+>Ð*?Ð@€IØ+¨I¨;ð 7#Ü#'¨£; -ð1ð 2r   c                 óÊ  — | j                   dk(  rd}n+dj                  d„ t        | j                   «      D «       «      }| j                  dk(  rd}nd| j                  dk(  rd}nRdj	                  dj                  d	„ t        | j                  «      D «       «      t        d
| j                  z  «      ¬«      }d}| j                  €d|› d�}n|dz  }| j                  › d|› |› d|› d�S )zµ
    Builds a signature string which resembles PEP 457

    This is used to construct the first line of the docstring

    Keep in sync with `_ufunc_inspect_signature_builder`.
    r   r   rK  c              3   ó,   K  — | ]  }d |dz   › �–— Œ y­w)r   r   Nr   ©rP  r€   s     r   rR  z1_ufunc_doc_signature_formatter.<locals>.<genexpr>b  s   è ø€ ÐBÑ1A¨A˜a  A¡˜wœKÑ1Aùó   ‚r   z, /, out=()z, /, out=Nonez%[, {positional}], / [, out={default}]c              3   ó,   K  — | ]  }d |dz   › �–— Œ y­w)rL  r   Nr   rg  s     r   rR  z1_ufunc_doc_signature_formatter.<locals>.<genexpr>k  s   è ø€ ð !:Ù'8 !�#�a˜!‘e�W”Ñ'8ùrh  rk   )Ú
positionalÚdefaultz8, casting='same_kind', order='K', dtype=None, subok=Truez, where=Truez[, signature]z[, signature, axes, axis]rI   z, *rJ   )ÚninrS  ÚrangeÚnoutr(   rN  Ú	signaturer|   )rU  Úin_argsÚout_argsrX  s       r   Ú_ufunc_doc_signature_formatterrr  U  sï   € ð ‡y�y�A‚~Ø‰à—)‘)ÑB´°u·y±yÔ1AÓBÓBˆð ‡z�z�Q‚Ø ‰Ø	�‰�qŠØ"‰à:×AÑAØ—y‘yñ !:Ü',¨U¯Z©ZÔ'8ó!:ó :ä˜ 5§:¡:Ñ-Ó.ð Bó 
ˆð	ð ð ‡�ÐØ ˜x }Ð5‰àÐ-Ñ-ˆð �n‰nÐ˜Q˜w˜i¨ z°°V°H¸AÐ>Ð>r   c                 ó¬  ‡— ddl mŠm} g }| j                  dk(  r#|j	                   ‰d‰j
                  «      «       n1|j                  ˆfd„t        d| j                  dz   «      D «       «       | j                  dk(  rd}nd| j                  z  }|j	                   ‰d‰j                  |¬	«      «       | j                  €%|j	                   ‰d
‰j                  d¬	«      «       nt|j	                   ‰d‰j                  t        ¬	«      «       |j	                   ‰d‰j                  t        ¬	«      «       |j	                   ‰d‰j                  d¬	«      «       |j                   ‰d‰j                  d¬	«       ‰d‰j                  d¬	«       ‰d‰j                  d¬	«       ‰d‰j                  d¬	«       ‰d‰j                  d¬	«      f«        ||«      S )zo
    Builds a ``__signature__`` string.

    Should be kept in sync with `_ufunc_doc_signature_formatter`.
    r   )Ú	ParameterÚ	Signaturer   r   c              3   óJ   •K  — | ]  } ‰d |› �‰j                   «      –— Œ y­w)r   N)ÚPOSITIONAL_ONLY)rP  r€   rt  s     €r   rR  z3_ufunc_inspect_signature_builder.<locals>.<genexpr>‘  s,   øè ø€ ð 
á,�ñ ˜˜!˜�g˜y×8Ñ8×9Ù,ùs   ƒ #Nrk   rL  )rk  ÚwhereTÚaxesÚaxisÚkeepdimsFÚcastingÚ	same_kindre   ÚKr	   Úsubokro  )Úinspectrt  ru  rl  r    rw  Úextendrm  rn  ÚPOSITIONAL_OR_KEYWORDro  ÚKEYWORD_ONLYr   )rU  ru  ÚparamsÚout_defaultrt  s       @r   Ú _ufunc_inspect_signature_builderr†  ‚  s‹  ø€ ÷ -à€Fð ‡y�y�A‚~Ø�‰‘i  Y×%>Ñ%>Ó?Õ@à�‰ó 
ä˜1˜eŸi™i¨!™mÔ,ó
ô 	
ð ‡z�z�Q‚Ø‰à §
¡
Ñ*ˆØ
‡M�MÙ�%˜×8Ñ8À+ÔNôð ‡�ÐØ�‰‘i ¨×)?Ñ)?ÈÔNÕOð 	�‰‘i ¨	×(>Ñ(>ÌÔQÔRØ�‰‘i ¨	×(>Ñ(>ÌÔQÔRØ�‰‘i 
¨I×,BÑ,BÈEÔRÔSà
‡M�MÙ�)˜Y×3Ñ3¸[ÔIÙ�'˜9×1Ñ1¸3Ô?Ù�'˜9×1Ñ1¸4Ô@Ù�'˜9×1Ñ1¸4Ô@Ù�+˜y×5Ñ5¸tÔDðô ñ �VÓÐr   c                 ó\   — 	 | j                   d   }d|j                  v S # t        $ r Y yw xY w)Néþÿÿÿrš   F)Ú__mro__r}   Ú	Exception)ro   Ú
ctype_bases     r   Únpy_ctypes_checkrŒ  ²  s9   € ðð —[‘[ ‘_ˆ
à˜J×1Ñ1Ð1Ð1øÜò Ùðús   ‚ Ÿ	+ª+c                 óD   — |t         u rt        | ¬«      S t        | |¬«      S )N)Úcoerce©rŽ  Ú	na_object)r   r   r�  s     r   Ú_convert_to_stringdtype_kwargsr‘  Á  s"   € Ø”HÑÜ &Ô)Ð)Ü˜f°	Ô:Ð:r   )=Ú__doc__r\   rD  ÚreÚsysrY   r†   r   Únumpy.exceptionsr   Ú_multiarray_umathr   Ú
multiarrayr   r   r	   r
   r…   ÚImportErrorrý   rW   r.   r4   r<   ÚcompilerM   rT   rS   rU   rg   ri   rƒ   r„   r�   rš   r»   rÀ   rÊ   rÏ   rÑ   r  rS  Úkeysr   r!  r"  r$  rú   r  r  r*  r'  r&  rG  r(  r^  rd  rr  r†  rŒ  r‘  r   r   r   Ú<module>r›     sw  ðñó Û Û 	Û 
Û å Ý 0å 1ß @Ó @ðÛð ‡=�=�HÒØ�Dà€Dò+ò<,ò@-ðd ˆB�J‰Jð Kó L€	ð 
ˆ�‰�JÓ	€Øˆ2�:‰:�gÓ€ð �4ˆ[€
ò8+÷t'ñ 'ò"ð* €Ô ÷ñ ÷h-ñ h-òV:ò.3ò$6òrò@ðDØˆðàˆðð ˆðð ˆð	ð
 ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð  ˆð!ð" 	ˆ#ð#ð$ Ø
Ø	Ø	Ø	Ø	ò/Ð ð2 ŸG™GÐ$7×$<Ñ$<Ó$>Ó?Ð ðØˆðàˆðð ˆðð ˆð	ð
 ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð  	ˆ#ð!ð" 	ˆ#ð#ð$ 
Ø	Ø	Ø	ò+Ð ð. !Ÿg™gÐ&;×&@Ñ&@Ó&BÓCÐ ð 
Ø	Ø	Ø	ñ	Ð ÷!ñ !òHò
Q!òfòò,òòò	ò2ò*?òZ-ò`ð 6>ô ;øðY ò ØƒFðús   ¶F> Æ>G	ÇG	