Ë
    *�£jš× ã                  óF  — d dl mZ d dlmZmZ d dlZd dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZm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 d d	lmZmZm Z  d d
l!m"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z<m=Z=m>Z>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dlHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPc mQZR d dlSmTZT d dlUmVZVmWZWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_ e�r%d dl`Zad dlbmcZd d dlemfZf d dl6mgZg edjÐ                  edjÒ                  edjÔ                  edjÖ                  edjØ                  edjÚ                  d œZnedjÞ                  d!„ edjà                  d"„ edjâ                  d#„ d$œZredjæ                  d%„ edjè                  d&„ edjê                  d'„ d$œZv	 	 	 	 	 	 dNd(„Zw	 	 	 	 	 	 dOd)„Zxi d*edjò                  “d+d,„ “d-edjô                  “d.d/„ “d0edjö                  “d1d2„ “d3d4„ “d5d6„ “d7d8„ “d9d:„ “d;e|“d<e|“d=e|“d>e|“d?edjú                  “d@dA„ “Z~e	rJd dBlm€Z€m�Z� d dClm‚Z‚ d dDlƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒm�Z�mŽZŽm�Z�m�Z�m‘Z‘m’Z’m“Z“ d dEl6m”Z” d dFl•m–Z– d dGl—m˜Z˜ d dHl™mšZš 	 	 	 	 dPdI„Z› e%dJ«       G dK„ dLeCeJeE«      «       Zœ	 	 	 	 dQdM„Z�y)Ré    )Úannotations)ÚdateÚdatetimeN)ÚTYPE_CHECKINGÚAnyÚLiteralÚSelfÚcastÚoverload)Ú	is_nan_na)Úlib)Úis_pdna_or_none)Ú	TimedeltaÚ	TimestampÚ	timezones)ÚHAS_PYARROWÚPYARROW_MIN_VERSIONÚpa_version_under21p0)ÚPandas4Warning)ÚdocÚ
set_module)Úfind_stack_level)Úcan_hold_elementÚ'construct_1d_object_array_from_listlikeÚinfer_dtype_from_scalar)	Úis_array_likeÚis_bool_dtypeÚis_float_dtypeÚ
is_integerÚis_list_likeÚis_numeric_dtypeÚ	is_scalarÚis_string_dtypeÚpandas_dtype)ÚDatetimeTZDtype)Úisna)Ú
algorithmsÚmissingÚopsÚ	roperator)Ú	map_array)ÚOpsMixin)ÚArrowStringArrayMixin)Úto_numpy_dtype_inference)ÚExtensionArrayÚExtensionArraySupportsAnyAll)ÚBaseMaskedArray)ÚStringDtype)Úextract_array)Úcheck_array_indexerÚgetitem_returns_viewÚunpack_tuple_and_ellipsesÚvalidate_indices)Úcheck_below_min_count)Ú_arrow_dtype_mapping)Ú	to_offset)Ú_safe_fill_null)Ú
ArrowDtype)ÚeqÚneÚltÚgtÚleÚgec                ó.   — t        j                  || «      S ©N)ÚpcÚ
and_kleene©ÚxÚys     ú@C:\FundamentalWorkbench\vendor\pandas\core\arrays\arrow\array.pyÚ<lambda>rK   p   s   € œbŸm™m¨A¨qÔ1ó    c                ó.   — t        j                  || «      S rD   )rE   Ú	or_kleenerG   s     rJ   rK   rK   r   s   € œRŸ\™\¨!¨QÔ/rL   c                ó.   — t        j                  || «      S rD   )rE   ÚxorrG   s     rJ   rK   rK   t   s   € œRŸV™V A qœ\rL   )Úand_Úrand_Úor_Úror_rP   Úrxorc                ó.   — t        j                  || «      S rD   )rE   Úbit_wise_andrG   s     rJ   rK   rK   y   s   € œbŸo™o¨a°Ô3rL   c                ó.   — t        j                  || «      S rD   )rE   Úbit_wise_orrG   s     rJ   rK   rK   {   ó   € œRŸ^™^¨A¨qÔ1rL   c                ó.   — t        j                  || «      S rD   )rE   Úbit_wise_xorrG   s     rJ   rK   rK   }   s   € œRŸ_™_¨Q°Ô2rL   c                óV  — t         j                  j                  | j                  «      r}t         j                  j                  |j                  «      rTt	        j
                  | t        j                  «       d¬«      t	        j
                  |t        j                  «       d¬«      fS | |fS )NF©Úsafe)ÚpaÚtypesr   ÚtyperE   r
   Úfloat64)Úarrow_arrayÚ	pa_objects     rJ   Úcast_for_truedivrf   €   s|   € ô
 �8‰8×Ñ˜{×/Ñ/Ô0´R·X±X×5HÑ5HØ�N‰Nô6
ô
 —7‘7˜;¬¯
©
«¸5ÔAÄ2Ç7Á7Øœ2Ÿ:™:›<¨eôDð ð ð ˜IÐ%Ð%rL   c           
     ód  — t         j                  j                  | j                  «      �rZt         j                  j                  |j                  «      �r0t	        j
                  | |«      }t         j                  j                  |j                  «      rÒt	        j                  t	        j                  ||«      | «      }t	        j                  t	        j                  | |«      t        j                  d|j                  ¬«      «      }t	        j                  t	        j                  ||«      t	        j                  |t        j                  d|j                  ¬«      «      |«      }n|}|j                  | j                  «      }|S t	        j                   | |«      }t	        j"                  |«      }|S )Nr   ©rb   é   )r`   ra   r   rb   rE   Údivide_checkedÚis_signed_integerÚ	not_equalÚmultiplyÚlessr\   ÚscalarÚif_elserQ   Úsubtractr
   ÚdivideÚfloor)ÚleftÚrightÚdividedÚhas_remainderÚhas_one_negative_operandÚresults         rJ   Úfloordiv_compatrz   �   s*  € ô �8‰8×Ñ˜tŸy™yÕ)¬b¯h©h×.AÑ.AÀ%Ç*Á*Õ.MÜ×'Ñ'¨¨eÓ4ˆGÜ�x‰x×)Ñ)¨'¯,©,Ô7ä "§¡¬R¯[©[¸À%Ó-HÈ$Ó O�Ü+-¯7©7Ü—O‘O D¨%Ó0Ü—I‘I˜a g§l¡lÔ3ó,Ð(ô Ÿ™Ü—G‘GØ%Ø0óô
 —K‘K ¬¯©°1¸7¿<¹<Ô)HÓIØó‘ð !�Ø—[‘[ §¡Ó+ˆFð ˆô —i‘i  eÓ,ˆGÜ—X‘X˜gÓ&ˆFØˆrL   ÚaddÚraddc                ó.   — t        j                  || «      S rD   )rE   Úadd_checkedrG   s     rJ   rK   rK   ²   rZ   rL   ÚsubÚrsubc                ó.   — t        j                  || «      S rD   )rE   Úsubtract_checkedrG   s     rJ   rK   rK   ´   ó   € œR×0Ñ0°°AÔ6rL   ÚmulÚrmulc                ó.   — t        j                  || «      S rD   )rE   Úmultiply_checkedrG   s     rJ   rK   rK   ¶   rƒ   rL   Útruedivc                ó:   — t        j                  t        | |«      Ž S rD   ©rE   rr   rf   rG   s     rJ   rK   rK   ·   s   € ¤§	¡	Ô+;¸A¸qÓ+AÑ BrL   Úrtruedivc                ó:   — t        j                  t        || «      Ž S rD   rŠ   rG   s     rJ   rK   rK   ¸   s   € ¤§¡Ô,<¸QÀÓ,BÑ!CrL   Úfloordivc                ó   — t        | |«      S rD   ©rz   rG   s     rJ   rK   rK   ¹   s   € ¤°°AÔ!6rL   Ú	rfloordivc                ó   — t        || «      S rD   r�   rG   s     rJ   rK   rK   º   s   € ¤/°!°QÔ"7rL   ÚmodÚrmodÚdivmodÚrdivmodÚpowÚrpowc                ó.   — t        j                  || «      S rD   )rE   Úpower_checkedrG   s     rJ   rK   rK   À   s   € œR×-Ñ-¨a°Ô3rL   )ÚCallableÚSequence)ÚNAType)Ú	ArrayLikeÚAxisIntÚDtypeÚFillnaOptionsÚInterpolateOptionsÚIteratorÚNpDtypeÚNumpySorterÚNumpyValueArrayLikeÚPositionalIndexerÚScalarÚSortKindÚTakeIndexerÚTimeAmbiguousÚTimeNonexistentÚnpt)ÚExtensionDtype©ÚSeries)ÚDatetimeArray©ÚTimedeltaArrayc                óJ  — t        | t        «      r| j                  S t        | t        j                  «      r| S t        | t
        «      r*t        j                  | j                  | j                  «      S | r	 t        j                  | «      S y# t        j                  $ r Y yw xY w)z3
    Convert dtype to a pyarrow type instance.
    N)Ú
isinstancer<   Úpyarrow_dtyper`   ÚDataTyper%   Ú	timestampÚunitÚtzÚfrom_numpy_dtypeÚArrowNotImplementedError©Údtypes    rJ   Úto_pyarrow_typer¾   ä   s�   € ô �%œÔ$Ø×"Ñ"Ð"Ü	�Eœ2Ÿ;™;Ô	'ØˆÜ	�Eœ?Ô	+Ü�|‰|˜EŸJ™J¨¯©Ó1Ð1Ù	ð	ô ×&Ñ& uÓ-Ð-ð øô ×*Ñ*ò 	ØØð	ús   Á6B ÂB"Â!B"zpandas.arraysc                  ó"
  ‡ — e Zd ZU dZded<   ded<   dªd„Zeddd	œ	 	 	 	 	 d«d
„«       Zeddœ	 	 	 	 	 d¬d„«       Zd„ Z	d­d„Z
e	 d®	 	 	 d¯d„«       Zed®d°d„«       Ze	 d±	 	 	 	 	 d²d„«       Zd³d„Zd´d„Zd®d„Zdµˆ fd„Z	 d¶	 	 	 	 	 d·d„Zd¸d„Zd¸d„Zd¸d„Zd¸d„Zd„ Zd¹d„Zdºd„Zd»d„Zd¸d„Zd¸d „Z	 	 d¼d!„Zd¼d"„Zd½d#„Ze d¾d$„«       Z!e d¿d%„«       Z"d¿d&„Z#d½ˆ fd'„Z$e d½d(„«       Z%dÀd)„Z&e'd*d+œdÁd,„«       Z(e'dÂd-„«       Z(d.d+œdÂd/„Z(e'd*d+œdÁd0„«       Z)e'dÂd1„«       Z)d.d+œdÂd2„Z)d.d3d4d5œ	 	 	 	 	 	 	 dÃd6„Z*dÄˆ fd7„Z+dÅdÆd8„Z,dÅdÆd9„Z-d¸d:„Z.d¸d;„Z/ddd.d<œ	 	 	 	 	 	 	 	 	 dÇˆ fd=„Z0 e1e2jf                  «      	 	 dÈ	 	 	 	 	 	 	 dÉˆ fd>„«       Z3dÊd?„Z4dËd@„Z5 e1e2jl                  «      	 dÅ	 	 	 dÌdA„«       Z6dB„ Z7dÍdÎdD„Z8 e1e2jr                  «      	 	 dÏ	 	 	 	 	 	 	 dÐdE„«       Z9	 	 dÑ	 	 	 	 	 	 	 dÒdF„Z:dG„ Z;dÓdH„Z<dÔdI„Z=dÕˆ fdJ„Z> e1e2j~                  «      dde@j‚                  f	 	 	 	 	 	 	 dÖdK„«       Z?d®d×ˆ fdL„ZB e1e2j†                  «      	 dØ	 	 	 dÙdN„«       ZCd¸dO„ZDdÅdÚdP„ZEed¸dQ„«       ZFd.d+œ	 	 	 	 	 dÛˆ fdR„ZGd.d+œ	 	 	 	 	 dÛdS„ZHd.d+œdÜˆ fdT„ZId.ddUœ	 	 	 	 	 dÝdV„ZJd.ddUœ	 	 	 	 	 dÝdW„ZKˆ fdX„ZLd¹dY„ZMdCdZdMd.dd[œ	 	 	 	 	 	 	 	 	 dÞˆ fd\„ZNdCdZdMd.dd[œ	 	 	 	 	 	 	 	 	 	 	 dßd]„ZOdàd^„ZPdÅdád_„ZQd`„ ZR	 	 	 	 	 	 	 	 dâda„ZSe	 	 	 	 	 	 	 	 dãdb„«       ZTe	 	 	 	 	 	 	 	 dädc„«       ZUdd„ ZV	 	 	 	 	 	 	 	 	 	 dåˆ fde„ZWdædf„ZXe@j‚                  dfdg„ZYdh„ ZZdi„ Z[dÍdçdj„Z\dèdk„Z]dédl„Z^dêdm„Z_dêdn„Z`d¸do„Zadëdìdp„Zbdídîdq„ZcdÍdçdr„Zddïdðds„Zedñdòdt„Zfdñdòdu„Zgdódv„Zhdñdôdw„Zi	 	 	 	 dõ	 	 	 	 	 	 	 	 	 dödx„Zjd÷dødy„Zkdùdz„Zldúd{„Zmdúd|„Zne d¸d}„«       Zoe d¸d~„«       Zpe d¸d„«       Zqe d¸d€„«       Zre d¸d�„«       Zse d¸d‚„«       Zte d¸dƒ„«       ZudÕd„„Zvd¸d…„Zwdûd†„Zxe d¸d‡„«       Zye d¸dˆ„«       Zze d¸d‰„«       Z{e{Z|e{Z}e d¸dŠ„«       Z~e~Ze d¸d‹„«       Z€d¸dŒ„Z�e d¸d�„«       Z‚e d¸dŽ„«       Zƒe d¸d�„«       Z„e d¸d�„«       Z…e d¸d‘„«       Z†e d¸d’„«       Z‡e d¸d“„«       Zˆe d¸d”„«       Z‰e‰ZŠe d¸d•„«       Z‹e d¸d–„«       ZŒe d¸d—„«       Z�e d¸d˜„«       ZŽe d¸d™„«       Z�e d¸dš„«       Z�e d¸d›„«       Z‘e d¸dœ„«       Z’e d�„ «       Z“e dž„ «       Z”d¸dŸ„Z•düd „Z–	 	 dý	 	 	 	 	 	 	 dþd¡„Z—	 	 dý	 	 	 	 	 dÿd¢„Z˜	 	 dý	 	 	 	 	 dÿd£„Z™	 	 dý	 	 	 	 	 dÿd¤„Zšd®�d d¥„Z›d®�d d¦„Zœ�dd§„Z�	 	 dý	 	 	 	 	 dÿd¨„Zžd¸d©„ZŸˆ xZ S (  ÚArrowExtensionArrayay  
    Pandas ExtensionArray backed by a PyArrow ChunkedArray.

    .. warning::

       ArrowExtensionArray is considered experimental. The implementation and
       parts of the API may change without warning.

    Parameters
    ----------
    values : pyarrow.Array or pyarrow.ChunkedArray
        The input data to initialize the ArrowExtensionArray.

    Attributes
    ----------
    None

    Methods
    -------
    None

    Returns
    -------
    ArrowExtensionArray

    See Also
    --------
    array : Create a Pandas array with a specified dtype.
    DataFrame.to_feather : Write a DataFrame to the binary Feather format.
    read_feather : Load a feather-format object from the file path.

    Notes
    -----
    Most methods are implemented using `pyarrow compute functions. <https://arrow.apache.org/docs/python/api/compute.html>`__
    Some methods may either raise an exception or raise a ``PerformanceWarning`` if an
    associated compute function is not available based on the installed version of PyArrow.

    Please install the latest version of PyArrow to enable the best functionality and avoid
    potential bugs in prior versions of PyArrow.

    Examples
    --------
    Create an ArrowExtensionArray with :func:`pandas.array`:

    >>> pd.array([1, 1, None], dtype="int64[pyarrow]")
    <ArrowExtensionArray>
    [1, 1, <NA>]
    Length: 3, dtype: int64[pyarrow]
    úpa.ChunkedArrayÚ	_pa_arrayr<   Ú_dtypec                ób  — t         sdt        › d�}t        |«      ‚t        |t        j
                  «      rt	        j                  |g«      | _        n:t        |t        j                  «      r|| _        nt        dt        |«      › d�«      ‚t        | j                  j                  «      | _        y )Nz	pyarrow>=z4 is required for PyArrow backed ArrowExtensionArray.zUnsupported type 'z' for ArrowExtensionArray)r   r   ÚImportErrorr´   r`   ÚArrayÚchunked_arrayrÂ   ÚChunkedArrayÚ
ValueErrorrb   r<   rÃ   )ÚselfÚvaluesÚmsgs      rJ   Ú__init__zArrowExtensionArray.__init__5  s—   € ÝàÔ/Ð0ð 1.ð .ð ô ˜cÓ"Ð"Ü�fœbŸh™hÔ'Ü×-Ñ-¨v¨hÓ7ˆD�NÜ˜¤§¡Ô0Ø#ˆD�NäØ$¤T¨&£\ NÐ2KÐLóð ô ! §¡×!4Ñ!4Ó5ˆ�rL   NF©r½   Úcopyc               óT   — t        |«      }| j                  |||¬«      } | |«      }|S )zL
        Construct a new ExtensionArray from a sequence of scalars.
        )Úpa_typerÏ   )r¾   Ú_box_pa_array)ÚclsÚscalarsr½   rÏ   rÑ   Úpa_arrayÚarrs          rJ   Ú_from_sequencez"ArrowExtensionArray._from_sequenceF  s3   € ô " %Ó(ˆØ×$Ñ$ W°gÀDÐ$ÓIˆÙ�(‹mˆØˆ
rL   ©rÏ   c               ó$  — t        |«      }t        || «      r|j                  }t        |«      }|�]t        j
                  j                  |«      s>t        j
                  j                  |«      st        j
                  j                  |«      r|}�nSt        j
                  j                  |«      rddl
m}  ||d¬«      }�n"t        j
                  j                  |«      r4ddl
m}  ||d¬«      j                  }t	        j                  |||¬«      }�nÏt        j
                  j                  |«      r¼ddlm}  ||d¬«      }|j$                  dk7  �r�t        |«      }t        |t        j&                  t        j(                  f«      s*t	        j                  |t	        j*                  «       |¬«      }t-        j.                  |d|«      }	 |j1                  t	        j2                  «       «      }�nôt        j
                  j7                  |«      rdd	lm}	  |	|d
¬«      }�nÃt        j
                  j=                  |«      rÑt        |t        j&                  t        j(                  f«      r|}n*t	        j                  |t	        j*                  «       |¬«      }t-        j.                  t-        j>                  |d«      d|«      }t-        j.                  t-        j>                  |d«      d|«      }|j1                  t	        j@                  «       «      }nÓt        j
                  jC                  |«      s>t        j
                  jE                  |«      st        j
                  jG                  |«      rgddl$m%}
  |
|d¬«      }t        |t        j&                  t        j(                  f«      r|j1                  |«      }n*|�(t	        j                  |||¬«      }ntM        d|› d�«      ‚| jO                  |||¬«      S # t        j4                  $ r Y Œ)w xY w)zL
        Construct a new ExtensionArray from a sequence of strings.
        Nr   )Úto_datetimeÚraise)Úerrors©rb   Úmask©Úto_timedeltaÚns)Úto_timeÚcoercez1.0Ú1z0.0Ú0)Ú
to_numeric)rÞ   rb   zConverting strings to z is not implemented.rÎ   )(r&   r´   rÂ   r¾   r`   ra   Ú	is_binaryÚ	is_stringÚis_large_stringÚis_timestampÚpandas.core.tools.datetimesrÚ   Úis_dater   ÚarrayÚis_durationÚpandas.core.tools.timedeltasrà   r¸   rÆ   rÈ   ÚstringrE   rp   r
   Úint64ÚArrowInvalidÚis_timeÚpandas.core.tools.timesrâ   Ú
is_booleanÚequalÚbool_r   Úis_floatingÚ
is_decimalÚpandas.core.tools.numericræ   ÚNotImplementedErrorr×   )rÓ   Ústringsr½   rÏ   rÞ   rÑ   rÔ   rÚ   rà   râ   ræ   s              rJ   Ú_from_sequence_of_stringsz-ArrowExtensionArray._from_sequence_of_stringsR  sæ  € ô �G‹}ˆä�g˜sÔ#Ø×'Ñ'ˆGä! %Ó(ˆàˆOÜ�x‰x×!Ñ! 'Ô*Ü�x‰x×!Ñ! 'Ô*Ü�x‰x×'Ñ'¨Ô0ð ŠGÜ�X‰X×"Ñ" 7Ô+Ý?á! '°'Ô:ŠGÜ�X‰X×Ñ˜gÔ&Ý?á! '°'Ô:×?Ñ?ˆGÜ—h‘h˜w¨W¸4Ô@ŠGÜ�X‰X×!Ñ! 'Ô*ÝAá" 7°7Ô;ˆGà�|‰|˜tÓ#ô ˜G“}�Ü! '¬B¯H©H´b·o±oÐ+FÔGÜ Ÿh™h w´R·Y±Y³[ÀtÔL�GÜŸ*™* T¨4°Ó9�ðØ%Ÿl™l¬2¯8©8«:Ó6’Gô �X‰X×Ñ˜gÔ&Ý7ñ ˜g¨hÔ7ŠGÜ�X‰X× Ñ  Ô)ô ˜'¤B§H¡H¬b¯o©oÐ#>Ô?Ø!‘äŸ(™( 7´·±³À4ÔH�Ü—j‘j¤§¡¨'°5Ó!9¸3ÀÓHˆGÜ—j‘j¤§¡¨'°5Ó!9¸3ÀÓHˆGØ—l‘l¤2§8¡8£:Ó.‰Gä�H‰H×Ñ Ô(Ü�x‰x×#Ñ# GÔ,Ü�x‰x×"Ñ" 7Ô+å<á  °Ô9ˆGÜ˜'¤B§H¡H¬b¯o©oÐ#>Ô?Ø!Ÿ,™, wÓ/‘ØÐ!ÜŸ(™( 7°¸GÔD‘ô &Ø(¨¨	Ð1EÐFóð ð ×!Ñ! '°¸tÐ!ÓDÐDøôM —‘ò Ùðús   Ç#O9 Ï9PÐPc                ó$   —  t        | «      |«      S )z{
        Construct from the pyarrow array result of an operation, for
        compatibility with ArrowStringArray.
        rh   )rÊ   rÕ   s     rJ   Ú_from_pyarrow_arrayz'ArrowExtensionArray._from_pyarrow_array¨  s   € ð
 Œt�D‹z˜(Ó#Ð#rL   c                óî  — t        |«      dk(  r| d d j                  «       S 	 | j                  j                  dv rHt	        «       s>t        j                  |t        ¬«      }t        |«      }t        j                  ||¬«      }nt        j                  |d¬«      }t        j                  j!                  |j"                  «      r<t        j$                  |«      dk(  r$|j'                  t        j(                  d	«      «      }t        j                  j+                  |j"                  «      �r°t,        j/                  |«      }t        j                  j+                  | j0                  j"                  «      r|j3                  | j                  «      }|S t        j                  j5                  | j0                  j"                  «      rPt7        t        j8                  | j0                  j"                  j:                  «      «      }	 |j3                  |«      }|S t        j                  j=                  | j0                  j"                  «      r1t7        t        j8                  d
«      «      }|j3                  |«      }|S t        j                  j?                  | j0                  j"                  «      r/t7        t        j8                  d«      «      }|j3                  |«      }|S t        j                  j?                  |j"                  «      rZt        j                  j?                  | j0                  j"                  «      r'|j'                  | j0                  j"                  «      }�nt        j                  jA                  |j"                  «      rZt        j                  jA                  | j0                  j"                  «      r'|j'                  | j0                  j"                  «      }�nˆt        j                  jC                  |j"                  «      rZt        j                  jC                  | j0                  j"                  «      r'|j'                  | j0                  j"                  «      }�nt        j                  jE                  |j"                  «      rZt        j                  jE                  | j0                  j"                  «      r'	 |j'                  | j0                  j"                  «      }n‚t        j                  jI                  |j"                  «      rYt        j                  jI                  | j0                  j"                  «      r&	 |j'                  | j0                  j"                  «      }tK        | j                  tL        «      rÆt        j                  jO                  |j"                  «      s)t        j                  jQ                  |j"                  «      r| jS                  |«      S | j                  jT                  t
        jV                  u r2t        j                  |t        ¬«      }t        j                  |d¬«      S t-        |«      S | jS                  |«      S # t        t        f$ r5 t        j                  |t        ¬«      }t        j                  |d¬«      cY S w xY w# t        $ r Y |S w xY w# t        j                  jF                  $ r Y �Œhw xY w# t        j                  jF                  $ r Y �ŒŒw xY w)Nr   Úiufcr¼   ©rÞ   T)Úfrom_pandas)Úconvert_non_numericÚdecimalri   ÚmsÚs),ÚlenrÏ   r½   Úkindr   ÚnpÚasarrayÚobjectr   r`   rí   rÉ   Ú	TypeErrorr   Úmaybe_convert_objectsra   Úis_nullrb   Úinfer_dtyper
   Ú
decimal128rî   rÀ   r×   rÂ   Úastyperê   r<   Údurationr¸   Ú	is_date64rì   ró   rù   r   rò   rø   r´   r2   rè   ré   rÿ   Úna_valueÚnan)rÊ   rË   rÞ   rÖ   ry   Ú	new_dtyper½   s          rJ   Ú_cast_pointwise_resultz*ArrowExtensionArray._cast_pointwise_result¯  s¥  € Üˆv‹;˜!Òà˜˜�8—=‘=“?Ð"ð	OØ�z‰z�‰ &Ñ(´´ÜŸ™ F´&Ô9�Ü& vÓ.�Ü—h‘h˜v¨DÔ1‘ä—h‘h˜v°4Ô8�ô �8‰8×Ñ˜CŸH™HÔ%Ü�‰˜vÓ&¨)Ò3à—h‘hœrŸ}™}¨QÓ/Ó0�Ü�8‰8×Ñ §¡Õ)ä(×7Ñ7¸Ó?ˆFÜ�x‰x×#Ñ# D§N¡N×$7Ñ$7Ô8ØŸ™ t§z¡zÓ2�ð  ˆMô —‘×&Ñ& t§~¡~×':Ñ':Ô;ä&¤r§{¡{°4·>±>×3FÑ3F×3KÑ3KÓ'LÓM�	ðØ#Ÿ]™]¨9Ó5�Fð ˆMô —‘×#Ñ# D§N¡N×$7Ñ$7Ô8ä"¤2§;¡;¨tÓ#4Ó5�ØŸ™ uÓ-�ð
 ˆMô	 —‘×!Ñ! $§.¡.×"5Ñ"5Ô6ä"¤2§;¡;¨sÓ#3Ó4�ØŸ™ uÓ-�ØˆMä�X‰X×Ñ˜cŸh™hÔ'¬B¯H©H×,<Ñ,<¸T¿^¹^×=PÑ=PÔ,QØ—(‘(˜4Ÿ>™>×.Ñ.Ó/ŠCÜ�X‰X×Ñ˜cŸh™hÔ'¬B¯H©H×,<Ñ,<¸T¿^¹^×=PÑ=PÔ,QØ—(‘(˜4Ÿ>™>×.Ñ.Ó/ŠCÜ�X‰X× Ñ  §¡Ô*¬r¯x©x×/BÑ/BÀ4Ç>Á>×CVÑCVÔ/WØ—(‘(˜4Ÿ>™>×.Ñ.Ó/ŠCÜ�X‰X× Ñ  §¡Ô*¬r¯x©x×/BÑ/BÀ4Ç>Á>×CVÑCVÔ/WðØ—h‘h˜tŸ~™~×2Ñ2Ó3‘ô �X‰X×!Ñ! #§(¡(Ô+´·±×0DÑ0DØ�N‰N×Ñô1
ðØ—h‘h˜tŸ~™~×2Ñ2Ó3�ô
 �d—j‘j¤+Ô.Ü�x‰x×!Ñ! #§(¡(Ô+¬r¯x©x×/GÑ/GÈÏÉÔ/Qà×/Ñ/°Ó4Ð4Ø�z‰z×"Ñ"¤b§f¡fÑ,ô Ÿ™ F´&Ô9�Ü×0Ñ0°ÈTÔRÐRÜ& sÓ+Ð+Ø×'Ñ'¨Ó,Ð,øôA œIÐ&ò 	Oô —Z‘Z ¬fÔ5ˆFÜ×,Ñ,¨VÈÔNÒNð	Oûô* "ò Øð ˆMðûô* —6‘6×&Ñ&ò âðûô —6‘6×&Ñ&ò âðúsI   £A7Y Ç>Z Ò?%Z/ Õ%[ ÙAZÚZÚ	Z,Ú+Z,Ú/[Û[Û[4Û3[4c                ó”   — t        |t        j                  «      st        |«      s| j	                  ||«      S | j                  ||«      S )zû
        Box value into a pyarrow Array, ChunkedArray or Scalar.

        Parameters
        ----------
        value : any
        pa_type : pa.DataType | None

        Returns
        -------
        pa.Array or pa.ChunkedArray or pa.Scalar
        )r´   r`   r§   r    Ú_box_pa_scalarrÒ   )rÓ   ÚvaluerÑ   s      rJ   Ú_box_pazArrowExtensionArray._box_paý  s?   € ô  �eœRŸY™YÔ'¬|¸EÔ/BØ×%Ñ% e¨WÓ5Ð5Ø× Ñ  ¨Ó0Ð0rL   c                ó  — t        |t        j                  «      r|}�nKt        |«      r8t	        j
                  |«      r
t        «       rt        j                  d|¬«      }�nt        |t        «      rc|€ t        j                  |j                  «      }n4|j                  |j                  k7  r|j                  |j                  «      }|j                  }n~t        |t        «      rn|€,t        j                  |j                  |j                  ¬«      }n4|j                  |j                  k7  r|j                  |j                  «      }|j                  }t        j                  ||¬«      }|� |j                   |k7  r|j#                  |«      }|S )zÅ
        Box value into a pyarrow Scalar.

        Parameters
        ----------
        value : any
        pa_type : pa.DataType | None

        Returns
        -------
        pa.Scalar
        Nrh   ©r¹   )r´   r`   r§   r&   r   Úis_floatr   ro   r   r  r¸   Úas_unitÚ_valuer   r·   r¹   rb   r
   )rÓ   r  rÑ   Ú	pa_scalars       rJ   r  z"ArrowExtensionArray._box_pa_scalar  s  € ô �eœRŸY™YÔ'ØŠIÜ�%Œ[¤#§,¡,¨uÔ"5¼i¼kÜŸ	™	 $¨WÔ5ŠIô ˜%¤Ô+Ø�?Ü Ÿk™k¨%¯*©*Ó5‘GØ—Z‘Z 7§<¡<Ò/Ø!ŸM™M¨'¯,©,Ó7�EØŸ™‘Ü˜E¤9Ô-Ø�?Ü Ÿl™l¨5¯:©:¸%¿(¹(ÔC‘GØ—Z‘Z 7§<¡<Ò/Ø!ŸM™M¨'¯,©,Ó7�EØŸ™�äŸ	™	 %¨gÔ6ˆIàÐ 9§>¡>°WÒ#<Ø!Ÿ™ wÓ/ˆIàÐrL   c                ó"  — t        |d¬«      }t        || «      r|j                  }�nft        |t        j                  t        j
                  f«      r|}�n8t        |t        «      r$|r|j                  «       }|j                  «       }�nt        |d«      r$|r|j                  «       }|j                  «       }�nÔt        |t        j                  «      r\|�Zt        j                  j                  |«      st        j                  j                  |«      rt        j                  |t         ¬«      }n|rt#        |«      r|j                  «       }|�”t        j                  j%                  |«      rut        |t        j                  «      r|j&                  j(                  dvrCddlm}  |||j.                  ¬	«      j1                  |j.                  «      }|j3                  «       }|��t        j                  j5                  |«      rèdd
lm}m}  ||j<                  |j.                  ¬«      }t        |d¬«      }t        ||«      r|}	n |j>                  |||¬«      }	|	jA                  «       }
tC        d|	jE                  d«      «      }|jF                  d   s.|j                  «       } |j>                  ||	j&                  ¬«      }	d||
<   t        jH                  |	jJ                  ||
¬«      }|S d}tM        «       r`	 t        j                  |«      }|jN                  dkD  r/t        jP                  tS        |«      t        jT                  ¬«      }ntA        |«      }nKt[        |dd«      �|j&                  j(                  dvr&t        j                  |t         ¬«      }t]        |«      }	 t        jH                  |||¬«      }|€^t        j                  j%                  |jb                  «      r5ddlm}  ||«      }|j3                  «       }t        jH                  ||¬«      }t        j                  j%                  |jb                  «      rH|jd                  dkD  r9 | |«      }|jg                  |j&                  jh                  «      }|j                  }|�t|jb                  |k7  ret        j                  jk                  |«      r2|jm                  «       }|jb                  |k7  r|jC                  |«      }|S 	 |jC                  |«      }|S |S # tV        $ r tY        |«      }tA        |«      }Y �Œ„w xY w# t        j^                  t        j`                  f$ r t        jH                  ||¬«      }Y �Œ¬w xY w# t        jn                  t        j`                  f$ r~ t        j                  jq                  |jb                  «      s)t        j                  j                  |jb                  «      r*ts        |«      }| ju                  ||¬«      j                  cY S ‚ w xY w)zë
        Box value into a pyarrow Array or ChunkedArray.

        Parameters
        ----------
        value : Sequence
        pa_type : pa.DataType | None

        Returns
        -------
        pa.Array or pa.ChunkedArray
        T)Úextract_numpyÚ__arrow_array__Nr¼   Úmir   rß   ©r¸   ©r°   Útz_to_dtype)r¹   r¸   )rÏ   r½   znpt.NDArrayÚi8Ú	WRITEABLErÝ   ri   r½   ÚiumMfr  rh   );r3   r´   rÂ   r`   rÆ   rÈ   r1   rÏ   r%  Úhasattrr
  Úndarrayra   Úis_large_binaryré   r  r  r   rî   r½   r	  rï   rà   r¸   r   Úto_numpyrê   Úpandas.core.arrays.datetimesr°   r)  r¹   r×   r&   r
   ÚviewÚflagsrí   Ú_ndarrayr   ÚndimÚzerosr  r÷   rÉ   r   Úgetattrr   rò   ÚArrowTypeErrorrb   Ú
null_countÚfillnar  Úis_dictionaryÚdictionary_encoder»   rè   r<   rý   )rÓ   r  rÑ   rÏ   rÕ   rà   r°   r)  Ú
pass_dtypeÚdtaÚdta_maskÚvalue_i8rÞ   Ú	arr_valuerÖ   r½   s                   rJ   rÒ   z!ArrowExtensionArray._box_pa_array9  s®  € ô  ˜e°4Ô8ˆÜ�e˜SÔ!Ø—‘ŠHÜ˜¤§¡¬"¯/©/Ð:Ô;ØŠHÜ˜œÔ/áØŸ
™
›�Ø×,Ñ,Ó.ŠHä�UÐ-Ô.áØŸ
™
›�Ø×,Ñ,Ó.ŠHô ˜5¤"§*¡*Ô-ØÐ'ä—H‘H×,Ñ,¨WÔ5Ü—x‘x×/Ñ/°Ô8ô Ÿ
™
 5´Ô7‘Ùœ-¨Ô.àŸ
™
›�ð Ð#Ü—H‘H×(Ñ(¨Ô1Ü# E¬2¯:©:Ô6¸%¿+¹+×:JÑ:JÐRVÑ:Võ Fá$ U°·±Ô>×FÑFÀwÇ|Á|ÓT�ØŸ™Ó(�àÑ"¤r§x¡x×'<Ñ'<¸WÔ'E÷ñ
 )¨G¯J©J¸W¿\¹\ÔJ�
Ü% e¸4Ô@�Ü˜e ]Ô3Ø‘Cà6˜-×6Ñ6Ø D°
ô�Cð Ÿ8™8›:�Ü ¨s¯x©x¸«~Ó>�Ø—~‘~ kÒ2à'Ÿ}™}›�HØ6˜-×6Ñ6°xÀsÇyÁyÔQ�CØ%&�˜Ñ"ÜŸ8™8 C§L¡L°wÀXÔN�Ø�àˆDÜŒ{ð+Ü "§
¡
¨5Ó 1�IØ —~‘~¨Ò)ô  "Ÿx™x¬¨E«
¼"¿(¹(ÔC™ä# I›˜øô ˜˜w¨Ó-Ð5¸¿¹×9IÑ9IÐQXÑ9XäŸJ™J u´FÔ;�	ä& yÓ1�ð6ÜŸ8™8 E°¸dÔC�ð
 ˆ¤2§8¡8×#7Ñ#7¸¿¹Ô#FåEá$ UÓ+�ØŸ™Ó(�ÜŸ8™8 E°Ô8�ä�x‰x×#Ñ# H§M¡MÔ2°x×7JÑ7JÈQÒ7Nñ ˜(“m�Ø—j‘j §¡×!3Ñ!3Ó4�ØŸ=™=�àÐ 8§=¡=°GÒ#;Ü�x‰x×%Ñ% gÔ.Ø#×5Ñ5Ó7�Ø—=‘= GÒ+Ø'Ÿ}™}¨WÓ5�Hð" ˆðØ'Ÿ}™}¨WÓ5�Hð ˆˆxˆøôm "ò +ä GÈÓ N�IÜ 	›?“Dð+ûô —O‘O¤R×%6Ñ%6Ð7ò 6äŸ8™8 E°Ô5“ð6ûô8 ×3Ñ3´R×5FÑ5FÐGò Ü—x‘x×)Ñ)¨(¯-©-Ô8¼B¿H¹H×<TÑ<TØ Ÿ™ô=ô
 !+¨7Ó 3˜Ø"×<Ñ<Ø!¨ð  =ó  ç#™)ò$ð ðús8   Ë:AT Î%T, Ó1U- ÔT)Ô(T)Ô,:U*Õ)U*Õ-BXØXc                óŽ  — t        | |«      }t        |t        j                  «      �rt	        |«      s†t        | j
                  t        «      r.| j
                  j                  dk(  rt        j                  «       }n| j
                  j                  }t        j                  g |¬«      }| j                  |«      S |j                  j                  dv r| j                  |«      S |j                  j                  dk(  r*| j                  | j                   j#                  |«      «      S t%        d«      ‚t        |t&        «      rt)        |«      }|t*        u rt-        d«      }t/        |«      rt1        |«      st%        d«      ‚t        |t,        «      r{|j2                  |j4                  k(  rna|j4                  �U|j4                  t	        | «       k  r<|j6                  �0|j6                  dk  r!t-        |j2                  d|j6                  «      }| j                   |   }t        |t        j8                  «      r0| j                  |«      }t;        | |«      r| j<                  |_        |S | j                   j>                  }|jA                  «       }|€| j
                  jB                  S t        jD                  jG                  |«      r3|jH                  d	k7  r$tK        |«      jM                  |jH                  «      S t        jD                  jO                  |«      r3|jH                  d	k7  r$tQ        |«      jM                  |jH                  «      S |S )
a8  Select a subset of self.

        Parameters
        ----------
        item : int, slice, or ndarray
            * int: The position in 'self' to get.
            * slice: A slice object, where 'start', 'stop', and 'step' are
              integers or None
            * ndarray: A 1-d boolean NumPy ndarray the same length as 'self'

        Returns
        -------
        item : scalar or ExtensionArray

        Notes
        -----
        For scalar ``item``, return a scalar value suitable for the array's
        type. This should be an instance of ``self.dtype.type``.
        For slice ``key``, return an instance of ``ExtensionArray``, even
        if the slice is length 0 or 1.
        For a boolean mask, return an instance of ``ExtensionArray``, filtered
        to the values where ``item`` is True.
        Úpyarrowrh   ÚiuÚbzFOnly integers, slices and integer or boolean arrays are valid indices.Nzuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesr   rá   ))r4   r´   r
  r.  r  rÃ   r2   Ústorager`   rð   rµ   rÇ   rÿ   r½   r	  ÚtakerÂ   ÚfilterÚ
IndexErrorÚtupler6   ÚEllipsisÚslicer"   r   ÚstartÚstopÚsteprÈ   r5   Ú	_readonlyrb   Úas_pyr  ra   rê   r¸   r   r   rî   r   )rÊ   ÚitemÚpa_dtypery   r  rÑ   ro   s          rJ   Ú__getitem__zArrowExtensionArray.__getitem__Ñ  s  € ô0 # 4¨Ó.ˆä�dœBŸJ™JÕ'Ü�t”9ô ˜tŸ{™{¬KÔ8ØŸ™×+Ñ+¨yÒ8ô  "Ÿy™y›{‘Hà#Ÿ{™{×8Ñ8�HÜ×)Ñ)¨"°8Ô<�Ø×/Ñ/°Ó7Ð7à—‘—‘ DÑ(Ø—y‘y “Ð&Ø—‘—‘ CÒ'Ø×/Ñ/°·±×0EÑ0EÀdÓ0KÓLÐLä ð8óð ô ˜œeÔ$Ü,¨TÓ2ˆDà”8Ñä˜“;ˆDä�TŒ?¤:¨dÔ#3ô ðLóð ô �dœEÔ"à�z‰z˜TŸY™YÒ&Øà—	‘	Ð%Ø—I‘I¤ T£ 
Ò*Ø—I‘IÐ)Ø—I‘I ’Mä˜TŸZ™Z¨¨t¯y©yÓ9�à—‘˜tÑ$ˆÜ�eœRŸ_™_Ô-Ø×-Ñ-¨eÓ4ˆFÜ# D¨$Ô/Ø#'§>¡>�Ô ØˆMà—n‘n×)Ñ)ˆGØ—[‘[“]ˆFØˆ~Ø—{‘{×+Ñ+Ð+Ü—‘×&Ñ& wÔ/°G·L±LÀDÒ4Hä  Ó(×0Ñ0°·±Ó>Ð>Ü—‘×%Ñ% gÔ.°7·<±<À4Ò3Gä  Ó(×0Ñ0°·±Ó>Ð>à�rL   c              #  ó   K  — | j                   j                  }| j                  j                  }t        j
                  j                  |«      xr |j                  dk7  }t        j
                  j                  |«      xr |j                  dk7  }| j                  D ]o  }|j                  «       }|€|–— Œ|r't        |«      j                  |j                  «      –— ŒC|r't        |«      j                  |j                  «      –— Œl|–— Œq y­w)z5
        Iterate over elements of the array.
        rá   N)rÃ   r  rÂ   rb   r`   ra   rê   r¸   rî   rQ  r   r   r   )rÊ   r  rÑ   Úbox_timestampÚbox_timedeltar  Úvals          rJ   Ú__iter__zArrowExtensionArray.__iter__2  sÊ   è ø€ ð —;‘;×'Ñ'ˆà—.‘.×%Ñ%ˆÜŸ™×-Ñ-¨gÓ6ÒO¸7¿<¹<È4Ñ;OˆÜŸ™×,Ñ,¨WÓ5ÒN¸'¿,¹,È$Ñ:NˆØ—^”^ˆEØ—+‘+“-ˆCØˆ{Ø“ÙÜ “n×,Ñ,¨W¯\©\Ó:Ó:ÙÜ “n×,Ñ,¨W¯\©\Ó:Ó:à“	ñ $ùs   ‚DDc                ó   — | j                   S )z)Convert myself to a pyarrow ChunkedArray.)rÂ   )rÊ   rb   s     rJ   r%  z#ArrowExtensionArray.__arrow_array__F  s   € à�~‰~ÐrL   c                ó†   •— t        ‰| �  ||g|¢­i |¤Ž}t        | «      t        u rt        | «      j	                  |«      S |S rD   )ÚsuperÚ__array_ufunc__rb   rÀ   r×   )rÊ   ÚufuncÚmethodÚinputsÚkwargsry   Ú	__class__s         €rJ   r]  z#ArrowExtensionArray.__array_ufunc__J  sE   ø€ ä‘Ñ(¨°ÐJ¸ÒJÀ6ÑJˆÜ�‹:Ô,Ñ,ä˜“:×,Ñ,¨VÓ4Ð4ØˆrL   c                óN   — |du rt        d«      ‚|€d}| j                  ||¬«      S )z?Correctly construct numpy arrays when passed to `np.asarray()`.Fz:Unable to avoid copy while creating an array as requested.rÎ   )rÉ   r0  )rÊ   r½   rÏ   s      rJ   Ú	__array__zArrowExtensionArray.__array__R  s:   € ð �5‰=äØLóð ð ˆ\àˆDà�}‰} 5¨tˆ}Ó4Ð4rL   c                ó  — t         j                  j                  | j                  j                  «      r.| j                  t        j                  | j                  «      «      S t         j                  j                  | j                  j                  «      s3t         j                  j                  | j                  j                  «      rt        d«      ‚| j                  t        j                  | j                  «      «      S )Nz-__invert__ is not supported for string dtypes)r`   ra   r   rÂ   rb   rÿ   rE   Úbit_wise_notrè   ré   r  Úinvert©rÊ   s    rJ   Ú
__invert__zArrowExtensionArray.__invert__a  s¢   € ä�8‰8×Ñ˜tŸ~™~×2Ñ2Ô3Ø×+Ñ+¬B¯O©O¸D¿N¹NÓ,KÓLÐLÜ�X‰X×Ñ §¡× 3Ñ 3Ô4¼¿¹×8PÑ8PØ�N‰N×Ñô9
ô ÐKÓLÐLà×+Ñ+¬B¯I©I°d·n±nÓ,EÓFÐFrL   c                óÊ   — 	 | j                  t        j                  | j                  «      «      S # t        j
                  $ r}t        d| j                  › d�«      |‚d }~ww xY w)Nz#unary '-' not supported for dtype 'Ú')rÿ   rE   Únegate_checkedrÂ   r`   r»   r  r½   )rÊ   Úerrs     rJ   Ú__neg__zArrowExtensionArray.__neg__m  s]   € ð	Ø×+Ñ+¬B×,=Ñ,=¸d¿n¹nÓ,MÓNÐNøÜ×*Ñ*ò 	ÜØ5°d·j±j°\ÀÐCóàðûð	ús   ‚-0 °A"ÁAÁA"c                ó8   — | j                  | j                  «      S rD   ©rÿ   rÂ   rh  s    rJ   Ú__pos__zArrowExtensionArray.__pos__u  s   € Ø×'Ñ'¨¯©Ó7Ð7rL   c                ó^   — | j                  t        j                  | j                  «      «      S rD   )rÿ   rE   Úabs_checkedrÂ   rh  s    rJ   Ú__abs__zArrowExtensionArray.__abs__x  s    € Ø×'Ñ'¬¯©°t·~±~Ó(FÓGÐGrL   c                ót   — | j                   j                  «       }| j                  j                  «       |d<   |S )NrÂ   )Ú__dict__rÏ   rÂ   Úcombine_chunks)rÊ   Ústates     rJ   Ú__getstate__z ArrowExtensionArray.__getstate__}  s0   € Ø—‘×"Ñ"Ó$ˆØ!Ÿ^™^×:Ñ:Ó<ˆˆkÑØˆrL   c                ó    — d|v r|j                  d«      }n|d   }t        j                  |«      |d<   | j                  j	                  |«       y )NÚ_datarÂ   )Úpopr`   rÇ   rv  Úupdate)rÊ   rx  Údatas      rJ   Ú__setstate__z ArrowExtensionArray.__setstate__‚  sI   € Ø�eÑØ—9‘9˜WÓ%‰Dà˜Ñ%ˆDÜ×-Ñ-¨dÓ3ˆˆkÑØ�‰×Ñ˜UÕ#rL   c           	     óÈ  — t         |j                     }| j                  j                  }t	        |t
        t        j                  t        t        f«      �r	 | j                  |«      }|j                  }t        j                  j                  |«      rt        j                  j                  |«      sNt        j                  j                  |«      rt        j                  j                  |«      st	        |t        «      rKt        j                   | ||«      }t        j"                  |t        j$                  «       ¬«      }tC        |«      S 	  || j                  |«      }tC        |«      S t/        |«      rØt	        |t0        «      rt        j                  j                  |«      s0t        |«      t2        u rjt        j                  j                  |«      rKt        j                   | ||«      }t        j"                  |t        j$                  «       ¬«      }tC        |«      S 	  || j                  | j                  |«      «      }tC        |«      S tA        |j                  › dt        |«      › �«      ‚# t        j&                  $ rM t        j                   | ||«      }t        j"                  |t        j$                  «       ¬«      }Y tC        |«      S w xY w# t        j(                  j*                  $ re t-        | |d¬«      D ��	cg c]  \  }}	 |||	«      ‘Œ nc c}	}w }
}}	t        j"                  |
t        j$                  «       d¬«      }Y tC        |«      S w xY w# t        j(                  j&                  t        j(                  j*                  f$ rÓ t5        | «      t5        |«      z  }| }t        j6                  t9        | «      d¬«      }t        j"                  | «      }	  |||   |«      ||<   n&# t:        $ r t        j                   | ||«      }Y nw xY wt        j"                  |t        j$                  «       ¬«      }t=        j>                  ||d «      }Y tC        |«      S w xY w)Nrh   T©Ústrict©rb   r  Úboolr¼   z not implemented for )"ÚARROW_CMP_FUNCSÚ__name__rÂ   rb   r´   r/   r
  r.  ÚlistÚranger  r`   ra   rê   rì   r)   Úinvalid_comparisonrí   r÷   r»   r   rò   Úzipr"   r   r   r&   r6  r  r  rE   rp   rû   rÀ   )rÊ   ÚotherÚopÚpc_funcÚltypeÚboxedÚrtypery   rH   rI   Ú
res_valuesrÞ   ÚvalidÚnp_arrays                 rJ   Ú_cmp_methodzArrowExtensionArray._cmp_methodŠ  sd  € Ü! "§+¡+Ñ.ˆØ—‘×#Ñ#ˆä�eœn¬b¯j©j¼$ÄÐFÕGðCØŸ™ UÓ+�ð Ÿ
™
�ä—X‘X×*Ñ*¨5Ô1´b·h±h×6FÑ6FÀuÔ6MÜŸ™×-Ñ-¨eÔ4¼¿¹×9IÑ9IÈ%Ô9PÜ! %¬Ô/ô !×3Ñ3°D¸%ÀÓD�FÜŸX™X f´2·8±8³:Ô>�FôB # 6Ó*Ð*ð?CÙ!(¨¯©¸Ó!?˜ô< # 6Ó*Ð*ô3 �uÔÜ˜5¤(Ô+´·±×0@Ñ0@ÀÔ0GÜ�U“œtÑ#¬¯©×(=Ñ(=¸eÔ(Dô ×/Ñ/°°e¸RÓ@�ÜŸ™ &¬r¯x©x«zÔ:�ô& # 6Ó*Ð*ð#=Ù$ T§^¡^°T·\±\À%Ó5HÓI�Fô  # 6Ó*Ð*ô &Ø—;‘;�-Ð4´T¸%³[°MÐBóð øô5 ×6Ñ6ò CÜ!$×!7Ñ!7¸¸eÀRÓ!H˜Ü!#§¡¨&´r·x±x³zÔ!B™ô6 # 6Ó*Ð*ð;Cûô# —6‘6×&Ñ&ò Qä36°t¸UÈ4Õ3PÔQÑ3P©4¨1¨a™b  A�hÑ3PùÓQ�
ÑQÜŸ™ *´2·8±8³:È4ÔP‘ôV # 6Ó*Ð*ð]Qûô> Ÿ™×7Ñ7¼¿¹×9LÑ9LÐMò 
=Ü ›:¬¨U«Ñ3�DØ!˜E�EÜŸX™X¤c¨$£i°vÔ>�FÜ!Ÿx™x¨›~�HðIÙ(*¨8°E©?¸EÓ(B˜˜ušøÜ$ò IÜ!$×!7Ñ!7¸¸eÀRÓ!HšðIúäŸX™X f´2·8±8³:Ô>�FÜŸZ™Z¨¨v°tÓ<‘Fô
 # 6Ó*Ð*ð
=úsi   ÁK ÅI/ È"M É/AKËKË.MÌ LÌ4MÍMÍBQ!ÏO.Ï-Q!Ï. PÐQ!ÐPÐAQ!Ñ Q!c                ó–   — t        |d«      rd|j                  › d�}ndt        |«      › �}d|j                  › d| j                  › d|› �S )Nr½   údtype 'rk  zobject of type úoperation 'ú' not supported for dtype 'z' with )r-  r½   rb   r†  )rÊ   r‹  rŒ  Ú
other_types       rJ   Ú_op_method_error_messagez,ArrowExtensionArray._op_method_error_messageÁ  sW   € Ü�5˜'Ô"Ø" 5§;¡; -¨qÐ1‰Jà*¬4°«;¨-Ð8ˆJà˜"Ÿ+™+˜ð 'Ø—j‘j�\ ¨¨ð6ð	
rL   c                ó²  — | j                   j                  }|}| j                  |«      }t        j                  j                  |«      s?t        j                  j                  |«      s t        j                  j                  |«      �r¥|t        j                  t        j                  fv �rË| j                   }t        j                  j                  |«      rWt        j                  j                  |j                  «      r.| j                   j                  t        j                  «       «      }nkt        j                  j                  |«      rLt        j                  j                  |j                  «      r#|j                  t        j                  «       «      }t        j                  d|j                  ¬«      }t        |t        j                   «      r>t#        j$                  |«      j'                  «       r|j                  |j                  «      }	 |t        j                  u rt#        j(                  |||«      }n)|t        j                  u rt#        j(                  |||«      }| j1                  «      S |t        j2                  t        j4                  fv �rÅ| j                   }
|}t        j                  j7                  |j                  «      st-        d«      ‚t#        j8                  t#        j:                  |d«      d|«      }t#        j<                  |
|«      }| j1                  |«      S t        j                  j                  |j                  «      sRt        j                  j                  |j                  «      s)t        j                  j                  |j                  «      r¶|t        j2                  t        j4                  fv r”|}
| j                   }t        j                  j7                  |j                  «      st-        d«      ‚t#        j8                  t#        j:                  |d«      d|«      }t#        j<                  |
|«      }| j1                  |«      S t        |t        j                   «      rFt#        j$                  |«      j'                  «       r#|j>                  t@        v r|j                  |«      }||j>                     }|tB        u rqt        j                  j                  |«      st        j                  j                  |«      rt-        | j/                  ||«      «      ‚tE        |j>                  › d�«      ‚	  || j                   |«      }| j1                  |«      S # t        j*                  $ r!}	t-        | j/                  ||«      «      |	‚d }	~	ww xY w# t        j*                  $ r!}	t-        | j/                  ||«      «      |	‚d }	~	ww xY w)NÚ rh   z'Can only string multiply by an integer.r   z not implemented.)#rÂ   rb   r  r`   ra   rè   ré   rç   Úoperatorr{   r*   r|   r
   Úlarge_stringro   r´   r§   rE   r  rQ  Úbinary_join_element_wiser»   r  rš  rÿ   r„   r…   r   rp   rn   Úbinary_repeatr†  ÚARROW_LOGICAL_FUNCSÚNotImplementedrû   )rÊ   r‹  rŒ  Úarrow_funcsrÑ   Úother_originalÚ
self_arrayÚsepry   rm  ÚbinaryÚintegralÚpa_integralr�  s                 rJ   Ú_evaluate_op_methodz'ArrowExtensionArray._evaluate_op_methodË  s,  € Ø—.‘.×%Ñ%ˆØˆØ—‘˜UÓ#ˆô �H‰H×Ñ˜wÔ'Ü�x‰x×'Ñ'¨Ô0Ü�x‰x×!Ñ! 'Õ*à”h—l‘l¤I§N¡NÐ3Ò3ð "Ÿ^™^�
Ü—8‘8×%Ñ% gÔ.´2·8±8×3KÑ3KÈEÏJÉJÔ3WØ!%§¡×!4Ñ!4´R·_±_Ó5FÓ!G‘JÜ—X‘X×-Ñ-¨gÔ6¼2¿8¹8×;MÑ;MØ—J‘Jô<ð "ŸJ™J¤r§¡Ó'8Ó9�Eä—i‘i ¨¯©Ô9�Ü˜e¤R§Y¡YÔ/´B·J±J¸uÓ4E×4KÑ4KÔ4MØ!ŸJ™J z§¡Ó7�EðØœXŸ\™\Ñ)Ü!#×!<Ñ!<¸ZÈÐPSÓ!T™ØœyŸ~™~Ñ-Ü!#×!<Ñ!<¸UÀJÐPSÓ!T˜ð
 ×/Ñ/°Ó7Ð7ØœŸ™¤i§n¡nÐ5Ò5ØŸ™�Ø �Ü—x‘x×*Ñ*¨8¯=©=Ô9Ü#Ð$MÓNÐNÜ Ÿj™j¬¯©°¸1Ó)=¸qÀ(ÓK�Ü×)Ñ)¨&°+Ó>�Ø×/Ñ/°Ó7Ð7ä�H‰H×Ñ˜uŸz™zÔ*Ü�x‰x×!Ñ! %§*¡*Ô-Ü�x‰x×'Ñ'¨¯
©
Ô3Ø”X—\‘\¤9§>¡>Ð2Ñ2ØˆFØ—~‘~ˆHÜ—8‘8×&Ñ& x§}¡}Ô5ÜÐ IÓJÐJÜŸ*™*¤R§W¡W¨X°qÓ%9¸1¸hÓGˆKÜ×%Ñ% f¨kÓ:ˆFØ×+Ñ+¨FÓ3Ð3ä�uœbŸi™iÔ(Ü—
‘
˜5Ó!×'Ñ'Ô)Ø—‘Ô2Ñ2ð —J‘J˜wÓ'ˆEà˜bŸk™kÑ*ˆØ”nÑ$Ü�x‰x×!Ñ! 'Ô*¬b¯h©h×.FÑ.FÀwÔ.OÜ × =Ñ =¸nÈbÓ QÓRÐRÜ%¨¯©¨Ð5FÐ&GÓHÐHð	XÙ˜TŸ^™^¨UÓ3ˆFð ×'Ñ'¨Ó/Ð/øôW ×2Ñ2ò Ü#Ø×5Ñ5°nÀbÓIóàðûðûôR ×*Ñ*ò 	XÜ˜D×9Ñ9¸.È"ÓMÓNÐTWÐWûð	Xús1   ÈAU+ ÕV" Õ+VÕ>VÖVÖ"WÖ5W×Wc                ó*  — t         j                  j                  | j                  j                  «      r| j                  ||t        «      S t         j                  j                  | j                  j                  «      s3t         j                  j                  | j                  j                  «      rÍ|t        j                  t        j                  t        j                  fv rœt        |t        j                  «      r‚|j                   t"        k(  ro|j$                  dd  j'                  d«      }t)        j*                  d|› d| j                   › d�t,        t/        «       ¬«        ||| j1                  t"        «      «      S | j                  ||t2        «      S )Nri   Ú_rk  z'' operations between boolean dtype and z| are deprecated and will raise in a future version. Explicitly cast the strings to a boolean dtype before operating instead.)Ú
stacklevel)r`   ra   r   rÂ   rb   rª  ÚARROW_BIT_WISE_FUNCSrè   ré   r*   rT   rR   rU   r´   r
  r.  r½   r„  r†  ÚstripÚwarningsÚwarnr   r   r  r¡  )rÊ   r‹  rŒ  Úop_names       rJ   Ú_logical_methodz#ArrowExtensionArray._logical_method  s%  € ô �8‰8×Ñ˜tŸ~™~×2Ñ2Ô3Ø×+Ñ+¨E°2Ô7KÓLÐLô —‘×"Ñ" 4§>¡>×#6Ñ#6Ô7Ü—8‘8×+Ñ+¨D¯N©N×,?Ñ,?Ô@à”y—~‘~¤y§¡¼	¿¹ÐGÑGÜ˜5¤"§*¡*Ô-Ø—‘œtÒ#ð —k‘k ! "�o×+Ñ+¨CÓ0ˆGÜ�M‰MØ�G�9ÐCÀDÇJÁJÀ<ð PPð Pô Ü+Ó-õñ �e˜TŸ[™[¬Ó.Ó/Ð/à×+Ñ+¨E°2Ô7JÓKÐKrL   c                óR  — t        | «      t        |«      z  }| }t        |«      r_t        |«      t        | «      k7  r#t        dt        | «      › dt        |«      › �«      ‚t	        |«      st        j                  |«      }||   }t        j                  t        | «      t        ¬«      }| j                  j                  ||<    |t        j                  | t        ¬«      |   |«      ||<   t        j                  |d¬«      s|S t        | «      j                  || j                  ¬«      S )Nz"Lengths of operands do not match: z != r¼   T©Úskipna)r&   r    r  rÉ   r   r
  r  Úemptyr  r½   r  r   Úis_string_arrayrb   r×   )rÊ   r‹  rŒ  rÞ   r’  ry   s         rJ   Ú!_str_arith_method_object_fallbackz5ArrowExtensionArray._str_arith_method_object_fallback0  sõ   € ô �D‹zœD ›KÑ'ˆØ�ˆä˜ÔÜ�5‹zœS ›YÒ&Ü Ø8¼¸T»¸À4ÌÈEË
À|ÐTóð ô ! Ô'ÜŸ
™
 5Ó)�Ø˜%‘LˆEä—‘œ#˜d›)¬6Ô2ˆØ—z‘z×*Ñ*ˆˆt‰Ùœ2Ÿ:™: d´&Ô9¸%Ñ@À%ÓHˆˆu‰ä×"Ñ" 6°$Õ7ØˆMÜ�D‹z×(Ñ(¨°t·z±zÐ(ÓBÐBrL   c                ó0  — t         j                  j                  | j                  j                  «      s3t         j                  j                  | j                  j                  «      r	 | j                  ||t        «      }n| j                  ||t        «      }t        |t        j                  «      r|S t        «       rž|j                  j                   dk(  r…|j                  }t#        j$                  |«      j'                  d«      j)                  «       }t#        j*                  ||t        j,                  d |j                  ¬«      «      } t	        | «      |«      }|S # t         j                  t         j                  f$ r | j                  ||«      }Y Œýw xY w)NÚfFrh   )r`   ra   rè   rÂ   rb   ré   rª  ÚARROW_ARITHMETIC_FUNCSrò   r8  r¹  r´   r
  r.  r   r½   r	  rE   Úis_nanÚ	fill_nullr0  Úreplace_with_maskro   )rÊ   r‹  rŒ  ry   ÚparrrÞ   rÖ   s          rJ   Ú_arith_methodz!ArrowExtensionArray._arith_methodG  s.  € ä�8‰8×Ñ˜dŸn™n×1Ñ1Ô2´b·h±h×6NÑ6NØ�N‰N×Ñô7
ðKØ×1Ñ1°%¸Ô=SÓT‘ð ×-Ñ-¨e°RÔ9OÓPˆFÜ�fœbŸj™jÔ)ØˆMÜŒ;˜6Ÿ<™<×,Ñ,°Ò3Ø×#Ñ#ˆDÜ—9‘9˜T“?×,Ñ,¨UÓ3×<Ñ<Ó>ˆDÜ×&Ñ& t¨T´2·9±9¸TÈÏ	É	Ô3RÓSˆCØ”T˜$“Z “_ˆFØˆøô —O‘O¤R×%6Ñ%6Ð7ò KØ×?Ñ?ÀÀrÓJ’ðKús   Á(E Å5FÆFc                óV   — t        |t        «      sy| j                  |j                  k(  S ©NF)r´   rÀ   rÂ   )rÊ   r‹  s     rJ   ÚequalszArrowExtensionArray.equals[  s%   € Ü˜%Ô!4Ô5Øð �~‰~ §¡Ñ0Ð0rL   c                ó   — | j                   S )z2
        An instance of 'ExtensionDtype'.
        )rÃ   rh  s    rJ   r½   zArrowExtensionArray.dtypeb  s   € ð
 �{‰{ÐrL   c                ó.   — | j                   j                  S )zL
        The number of bytes needed to store this object in memory.
        )rÂ   Únbytesrh  s    rJ   rÇ  zArrowExtensionArray.nbytesi  s   € ð
 �~‰~×$Ñ$Ð$rL   c                ó,   — t        | j                  «      S )z]
        Length of this array.

        Returns
        -------
        length : int
        )r  rÂ   rh  s    rJ   Ú__len__zArrowExtensionArray.__len__p  s   € ô �4—>‘>Ó"Ð"rL   c                óÆ  •— t        |«      r¾|| j                  j                  ur¦t        j                  |«      r"t        «       r| j                  j                  | v S | j                  j                  dk(  rUt        j                  |«      r@t        j                  t        j                  | j                  «      «      j                  «       S yt        t        ‰| �9  |«      «      S )Nr»  F)r&   r½   r  r   r  r   r	  rE   Úanyr½  rÂ   rQ  r„  r\  Ú__contains__)rÊ   Úkeyrb  s     €rJ   rÌ  z ArrowExtensionArray.__contains__z  sœ   ø€ ä�Œ9˜ D§J¡J×$7Ñ$7Ñ7Ü�|‰|˜CÔ ¤Y¤[Ø—z‘z×*Ñ*¨dÐ2Ð2Ø—‘—‘ CÒ'¬C¯L©L¸Ô,=ä—v‘vœbŸi™i¨¯©Ó7Ó8×>Ñ>Ó@Ð@ð ô ”E‘GÑ(¨Ó-Ó.Ð.rL   c                ó4   — | j                   j                  dkD  S )Nr   )rÂ   r9  rh  s    rJ   Ú_hasnazArrowExtensionArray._hasna‰  s   € à�~‰~×(Ñ(¨1Ñ,Ð,rL   c                ó\  — | j                   j                  }|dk(  r.t        j                  t	        | «      t        j
                  ¬«      S |t	        | «      k(  r.t        j                  t	        | «      t        j
                  ¬«      S | j                   j                  «       j                  «       S )z�
        Boolean NumPy array indicating if each value is missing.

        This should return a 1-D array the same length as 'self'.
        r   r¼   )	rÂ   r9  r
  r6  r  r÷   Úonesr  r0  )rÊ   r9  s     rJ   r&   zArrowExtensionArray.isna�  st   € ð —^‘^×.Ñ.ˆ
Ø˜Š?Ü—8‘8œC ›I¬R¯X©XÔ6Ð6Øœ3˜t›9Ò$Ü—7‘7œ3˜t›9¬B¯H©HÔ5Ð5à�~‰~×%Ñ%Ó'×0Ñ0Ó2Ð2rL   .rµ  c                ó   — y rD   © ©rÊ   r¶  ra  s      rJ   rË  zArrowExtensionArray.anyœ  ó   € ØEHrL   c                ó   — y rD   rÓ  rÔ  s      rJ   rË  zArrowExtensionArray.anyŸ  ó   € Ø?BrL   Tc               ó*   —  | j                   dd|i|¤ŽS )a  
        Return whether any element is truthy.

        Returns False unless there is at least one element that is truthy.
        By default, NAs are skipped. If ``skipna=False`` is specified and
        missing values are present, similar :ref:`Kleene logic <boolean.kleene>`
        is used as for logical operations.

        Parameters
        ----------
        skipna : bool, default True
            Exclude NA values. If the entire array is NA and `skipna` is
            True, then the result will be False, as for an empty array.
            If `skipna` is False, the result will still be True if there is
            at least one element that is truthy, otherwise NA will be returned
            if there are NA's present.

        Returns
        -------
        bool or :attr:`pandas.NA`

        See Also
        --------
        ArrowExtensionArray.all : Return whether all elements are truthy.

        Examples
        --------
        The result indicates whether any element is truthy (and by default
        skips NAs):

        >>> pd.array([True, False, True], dtype="boolean[pyarrow]").any()
        True
        >>> pd.array([True, False, pd.NA], dtype="boolean[pyarrow]").any()
        True
        >>> pd.array([False, False, pd.NA], dtype="boolean[pyarrow]").any()
        False
        >>> pd.array([], dtype="boolean[pyarrow]").any()
        False
        >>> pd.array([pd.NA], dtype="boolean[pyarrow]").any()
        False
        >>> pd.array([pd.NA], dtype="float64[pyarrow]").any()
        False

        With ``skipna=False``, the result can be NA if this is logically
        required (whether ``pd.NA`` is True or False influences the result):

        >>> pd.array([True, False, pd.NA], dtype="boolean[pyarrow]").any(skipna=False)
        True
        >>> pd.array([1, 0, pd.NA], dtype="boolean[pyarrow]").any(skipna=False)
        True
        >>> pd.array([False, False, pd.NA], dtype="boolean[pyarrow]").any(skipna=False)
        <NA>
        >>> pd.array([0, 0, pd.NA], dtype="boolean[pyarrow]").any(skipna=False)
        <NA>
        r¶  )rË  ©Ú_reducerÔ  s      rJ   rË  zArrowExtensionArray.any¢  ó   € ðp ˆt�|‰|Ñ;¨&Ð;°FÑ;Ð;rL   c                ó   — y rD   rÓ  rÔ  s      rJ   ÚallzArrowExtensionArray.allÜ  rÕ  rL   c                ó   — y rD   rÓ  rÔ  s      rJ   rÝ  zArrowExtensionArray.allß  r×  rL   c               ó*   —  | j                   dd|i|¤ŽS )a  
        Return whether all elements are truthy.

        Returns True unless there is at least one element that is falsey.
        By default, NAs are skipped. If ``skipna=False`` is specified and
        missing values are present, similar :ref:`Kleene logic <boolean.kleene>`
        is used as for logical operations.

        Parameters
        ----------
        skipna : bool, default True
            Exclude NA values. If the entire array is NA and `skipna` is
            True, then the result will be True, as for an empty array.
            If `skipna` is False, the result will still be False if there is
            at least one element that is falsey, otherwise NA will be returned
            if there are NA's present.

        Returns
        -------
        bool or :attr:`pandas.NA`

        See Also
        --------
        ArrowExtensionArray.any : Return whether any element is truthy.

        Examples
        --------
        The result indicates whether all elements are truthy (and by default
        skips NAs):

        >>> pd.array([True, True, pd.NA], dtype="boolean[pyarrow]").all()
        True
        >>> pd.array([1, 1, pd.NA], dtype="boolean[pyarrow]").all()
        True
        >>> pd.array([True, False, pd.NA], dtype="boolean[pyarrow]").all()
        False
        >>> pd.array([], dtype="boolean[pyarrow]").all()
        True
        >>> pd.array([pd.NA], dtype="boolean[pyarrow]").all()
        True
        >>> pd.array([pd.NA], dtype="float64[pyarrow]").all()
        True

        With ``skipna=False``, the result can be NA if this is logically
        required (whether ``pd.NA`` is True or False influences the result):

        >>> pd.array([True, True, pd.NA], dtype="boolean[pyarrow]").all(skipna=False)
        <NA>
        >>> pd.array([1, 1, pd.NA], dtype="boolean[pyarrow]").all(skipna=False)
        <NA>
        >>> pd.array([True, False, pd.NA], dtype="boolean[pyarrow]").all(skipna=False)
        False
        >>> pd.array([1, 0, pd.NA], dtype="boolean[pyarrow]").all(skipna=False)
        False
        r¶  )rÝ  rÙ  rÔ  s      rJ   rÝ  zArrowExtensionArray.allâ  rÛ  rL   Ú	quicksortÚlast)Ú	ascendingr	  Úna_positionc               óþ   — |rdnd}dddœj                  |d «      }|€t        d|› �«      ‚t        j                  | j                  ||¬«      }|j                  «       }|j                  t        j                  d¬	«      S )
Nrâ  Ú
descendingÚat_endÚat_start)rá  Úfirstzinvalid na_position: )ÚorderÚnull_placementFrØ   )	ÚgetrÉ   rE   Úarray_sort_indicesrÂ   r0  r  r
  Úintp)	rÊ   râ  r	  rã  ra  ré  rê  ry   Ú	np_results	            rJ   ÚargsortzArrowExtensionArray.argsort  s�   € ñ  )‘¨lˆØ"*°ZÑ@×DÑDÀ[ÐRVÓWˆØÐ!ÜÐ4°[°MÐBÓCÐCä×&Ñ&Ø�N‰N %¸ô
ˆð —O‘OÓ%ˆ	Ø×Ñ¤§¡¨eÐÓ4Ð4rL   c                óè  •— | j                   j                  «       d| j                   j                  fv s| j                  r |s t	        t        «       d|› �«      |¬«      S | j                   }t        j                  j                  |j                  «      r#|j                  t        j                  «       «      } t	        t        |«      ||¬«      }t        j                  ||«      j                  «       S )Nr   Úargrµ  )Ú
skip_nulls)rÂ   Úlengthr9  rÏ  r7  r\  r`   ra   rî   rb   r
   rñ   rE   ÚindexrQ  )rÊ   r¶  r_  r~  r  rb  s        €rJ   Ú_argmin_maxzArrowExtensionArray._argmin_max/  s°   ø€ Ø�>‰>× Ñ Ó" q¨$¯.©.×*CÑ*CÐ&DÑDØ�KŠK¡ð
 4”7œ5›7 c¨&¨ NÓ3¸6ÔBÐBà�~‰~ˆÜ�8‰8×Ñ §	¡	Ô*Ø—9‘9œRŸX™X›ZÓ(ˆDà#”œ˜FÓ# D°VÔ<ˆÜ�x‰x˜˜eÓ$×*Ñ*Ó,Ð,rL   c                ó&   — | j                  |d«      S )NÚmin©rõ  ©rÊ   r¶  s     rJ   ÚargminzArrowExtensionArray.argmin?  ó   € Ø×Ñ ¨Ó.Ð.rL   c                ó&   — | j                  |d«      S )NÚmaxrø  rù  s     rJ   ÚargmaxzArrowExtensionArray.argmaxB  rû  rL   c                ó8   — | j                  | j                  «      S )z·
        Return a shallow copy of the array.

        Underlying ChunkedArray is immutable, so a deep copy is unnecessary.

        Returns
        -------
        type(self)
        rp  rh  s    rJ   rÏ   zArrowExtensionArray.copyE  s   € ð ×'Ñ'¨¯©Ó7Ð7rL   c                ó^   — | j                  t        j                  | j                  «      «      S )z|
        Return ArrowExtensionArray without NA values.

        Returns
        -------
        ArrowExtensionArray
        )rÿ   rE   Ú	drop_nullrÂ   rh  s    rJ   ÚdropnazArrowExtensionArray.dropnaQ  s"   € ð ×'Ñ'¬¯©°T·^±^Ó(DÓEÐErL   )ÚlimitÚ
limit_arearÏ   c               óz  •— | j                   s| S |€|€}t        j                  |«      }	 |dk(  r.| j                  t	        j
                  | j                  «      «      S |dk(  r.| j                  t	        j                  | j                  «      «      S 	 t        ‰| �-  ||||¬«      S # t        j                  $ r Y Œ(w xY w)NÚpadÚbackfill)r_  r  r  rÏ   )rÏ  r(   Úclean_fill_methodrÿ   rE   Úfill_null_forwardrÂ   Úfill_null_backwardr`   r»   r\  Ú_pad_or_backfill)rÊ   r_  r  r  rÏ   rb  s        €rJ   r  z$ArrowExtensionArray._pad_or_backfill[  sÎ   ø€ ð �{Š{ØˆKàˆ=˜ZÐ/Ü×.Ñ.¨vÓ6ˆFðØ˜U’?Ø×3Ñ3Ü×,Ñ,¨T¯^©^Ó<óð ð ˜zÒ)Ø×3Ñ3Ü×-Ñ-¨d¯n©nÓ=óð ð *ô ‰wÑ'Ø °:ÀDð (ó 
ð 	
øô ×.Ñ.ò ñ
 ðús   ª2B$ Á2B$ Â$B:Â9B:c                ó€  •— | j                   s| j                  «       S |�t        ‰| �  |||¬«      S t	        |t
        j                  t        f«      r:t        |«      t        | «      k7  r#t        dt        |«      › dt        | «      › �«      ‚	 | j                  || j                  j                  ¬«      }	 | j#                  t%        | j                  |¬«      «      S # t        j                  $ r$}d|›d| j                  › d�}t!        |«      |‚d }~ww xY w# t        j&                  $ r Y nw xY wt        ‰| �  |||¬«      S )	N)r  r  rÏ   z'Length of 'value' does not match. Got (z)  expected )rÑ   úInvalid value 'ú' for dtype 'rk  )Ú
fill_value)rÏ  rÏ   r\  r:  r´   r
  r.  r/   r  rÉ   r  rÂ   rb   r`   r8  r½   r  rÿ   r;   r»   )rÊ   r  r  rÏ   r  rm  rÌ   rb  s          €rJ   r:  zArrowExtensionArray.fillna  s9  ø€ ð �{Š{Ø—9‘9“;ÐàÐÜ‘7‘>¨°UÀ�>ÓFÐFä�eœbŸj™j¬.Ð9Ô:ô �5‹zœS ›YÒ&Ü Ø=¼cÀ%»j¸\ð J!Ü!$ T£ ð-óð ð
	*ØŸ™ e°T·^±^×5HÑ5H˜ÓIˆJð
		Ø×+Ñ+Ü §¡¸:ÔFóð øô × Ñ ò 	*Ø# E 9¨M¸$¿*¹*¸ÀQÐGˆCÜ˜C“. cÐ)ûð	*ûô ×*Ñ*ò 	ñ
 ð	úô ‰w‰~ E°¸Tˆ~ÓBÐBs*   Â'C Â5%D ÃDÃ.DÄDÄD+Ä*D+c                ó  — t        |«      s$t        j                  t        | «      t        ¬«      S | j	                  |«      }t        j                  | j                  |¬«      }t        j                  |t        j                  ¬«      S )Nr¼   )Ú	value_set)
r  r
  r6  r„  r  rE   Úis_inrÂ   rí   r÷   )rÊ   rË   r  ry   s       rJ   ÚisinzArrowExtensionArray.isin¨  sW   € ä�6Œ{Ü—8‘8œC ›I¬TÔ2Ð2à—L‘L Ó(ˆ	Ü—‘˜$Ÿ.™.°IÔ>ˆô �x‰x˜¤b§h¡hÔ/Ð/rL   c                óf   — | j                   j                  «       }|| j                  j                  fS )a+  
        Return an array and missing value suitable for factorization.

        Returns
        -------
        values : ndarray
        na_value : pd.NA

        Notes
        -----
        The values returned by this method are also used in
        :func:`pandas.util.hash_pandas_object`.
        )rÂ   r0  r½   r  )rÊ   rË   s     rJ   Ú_values_for_factorizez)ArrowExtensionArray._values_for_factorize³  s+   € ð —‘×(Ñ(Ó*ˆØ�t—z‘z×*Ñ*Ð*Ð*rL   c                ó  — |rdnd}| j                   }t        j                  j                  |j                  «      r@|dk(  r8|j                  |j                  j                  «      }|j                  |¬«      }n|}n|j                  |¬«      }|j                  «       dk(  rct        j                  g t        j                  ¬«      }| j                  t        j                  g |j                  j                  ¬«      «      }||fS |j                  «       }|j                  }|j                   dkD  rt#        |d«      }|j%                  dd	¬
«      j'                  t        j                  d¬«      }| j                  |j(                  «      }||fS )NrÞ   Úencode)Únull_encodingr   r¼   rh   éÿÿÿÿFT)Úzero_copy_onlyÚwritablerØ   )rÂ   r`   ra   r;  rb   r
   Ú
value_typer<  ró  r
  rí   rí  rÿ   rÇ   rw  Úindicesr9  r;   r0  r  Ú
dictionary)	rÊ   Úuse_na_sentinelr  r~  Úencodedr  ÚuniquesÚcombinedÚ
pa_indicess	            rJ   Ú	factorizezArrowExtensionArray.factorizeÄ  sX  € ñ
 #2™°xˆà�~‰~ˆä�8‰8×!Ñ! $§)¡)Ô,Ø Ò(à—y‘y §¡×!5Ñ!5Ó6�Ø×0Ñ0¸}Ð0ÓM‘à‘à×,Ñ,¸=Ð,ÓIˆGØ�>‰>Ó˜qÒ Ü—h‘h˜r¬¯©Ô1ˆGØ×.Ñ.Ü× Ñ  ¨'¯,©,×*AÑ*AÔBóˆGð ˜ÐÐð ×-Ñ-Ó/ˆHØ!×)Ñ)ˆJØ×$Ñ$ qÒ(Ü,¨Z¸Ó<�
Ø ×)Ñ)¸ÈÐ)ÓN×UÑUÜ—‘˜eð Vó ˆGð ×.Ñ.¨x×/BÑ/BÓCˆGà˜ÐÐrL   c                ó0   — t        t        | «      › d�«      ‚)NzA does not support reshape as backed by a 1D pyarrow.ChunkedArray.)rû   rb   )rÊ   Úargsra  s      rJ   ÚreshapezArrowExtensionArray.reshapeè  s"   € Ü!Ü�D‹zˆlð 6ð 7ó
ð 	
rL   r   c                ób   — | j                  t        j                  | j                  |¬«      «      S )aŽ  
        Round each value in the array a to the given number of decimals.

        Parameters
        ----------
        decimals : int, default 0
            Number of decimal places to round to. If decimals is negative,
            it specifies the number of positions to the left of the decimal point.
        *args, **kwargs
            Additional arguments and keywords have no effect.

        Returns
        -------
        ArrowExtensionArray
            Rounded values of the ArrowExtensionArray.

        See Also
        --------
        DataFrame.round : Round values of a DataFrame.
        Series.round : Round values of a Series.
        )Úndigits)rÿ   rE   ÚroundrÂ   )rÊ   Údecimalsr&  ra  s       rJ   r*  zArrowExtensionArray.roundî  s$   € ð, ×'Ñ'¬¯©°·±ÈÔ(RÓSÐSrL   c                óÌ  — | j                   rt        d«      ‚t        |t        «      r|j	                  t
        «      }d }t        | j                  t        «      ri| j                  j                  }t        j                  j                  |«      st        j                  j                  |«      r|j                  dk(  rt
        }| j                  |¬«      j                  |||¬«      S )NzOsearchsorted requires array to be sorted, which is impossible with NAs present.rá   r¼   )ÚsideÚsorter)rÏ  rÉ   r´   r/   r  r  r½   r<   rµ   r`   ra   rê   rî   r¸   r0  Úsearchsorted)rÊ   r  r-  r.  r½   rS  s         rJ   r/  z ArrowExtensionArray.searchsorted  s³   € ð �;Š;Üð$óð ô �eœ^Ô,Ø—L‘L¤Ó(ˆEàˆÜ�d—j‘j¤*Ô-Ø—z‘z×/Ñ/ˆHä—‘×%Ñ% hÔ/´2·8±8×3GÑ3GÈÔ3QØ—-‘- 4Ò'ô �Ø�}‰} 5ˆ}Ó)×6Ñ6°uÀ4ÐPVÐ6ÓWÐWrL   c                óŽ  — t        j                  |«      }t        | j                  «      dk(  r|dk\  j	                  «       rt        d«      ‚|j                  dkD  r1|j                  «       t        | j                  «      k\  rt        d«      ‚|rÄ|dk  }|j	                  «       r…t        |t        | j                  «      «       t        j                  ||¬«      }| j                  j                  |«      }t        |«      r| j                  |«      S | j                  |«      }|||<   |S | j                  | j                  j                  |«      «      S |dk  j	                  «       r8t        j                  |«      }||dk  xx   t        | j                  «      z  cc<   | j                  | j                  j                  |«      «      S )a‘  
        Take elements from an array.

        Parameters
        ----------
        indices : sequence of int or one-dimensional np.ndarray of int
            Indices to be taken.
        allow_fill : bool, default False
            How to handle negative values in `indices`.

            * False: negative values in `indices` indicate positional indices
              from the right (the default). This is similar to
              :func:`numpy.take`.

            * True: negative values in `indices` indicate
              missing values. These values are set to `fill_value`. Any other
              other negative values raise a ``ValueError``.

        fill_value : any, optional
            Fill value to use for NA-indices when `allow_fill` is True.
            This may be ``None``, in which case the default NA value for
            the type, ``self.dtype.na_value``, is used.

            For many ExtensionArrays, there will be two representations of
            `fill_value`: a user-facing "boxed" scalar, and a low-level
            physical NA value. `fill_value` should be the user-facing version,
            and the implementation should handle translating that to the
            physical version for processing the take if necessary.

        Returns
        -------
        ExtensionArray

        Raises
        ------
        IndexError
            When the indices are out of bounds for the array.
        ValueError
            When `indices` contains negative values other than ``-1``
            and `allow_fill` is True.

        See Also
        --------
        numpy.take
        api.extensions.take

        Notes
        -----
        ExtensionArray.take is called by ``Series.__getitem__``, ``.loc``,
        ``iloc``, when `indices` is a sequence of values. Additionally,
        it's called by :meth:`Series.reindex`, or any other method
        that causes realignment, with a `fill_value`.
        r   zcannot do a non-empty takez!out of bounds value in 'indices'.r  )r
  Ú
asanyarrayr  rÂ   rË  rI  Úsizerý  r7   r`   rí   rG  r&   rÿ   rÏ   )rÊ   r  Ú
allow_fillr  Úindices_arrayÚ	fill_maskry   s          rJ   rG  zArrowExtensionArray.take   s{  € ôv Ÿ™ gÓ.ˆäˆt�~‰~Ó !Ò#¨¸!Ñ);×(@Ñ(@Ô(BÜÐ9Ó:Ð:Ø×Ñ Ò! m×&7Ñ&7Ó&9¼SÀÇÁÓ=PÒ&PÜÐ@ÓAÐAáØ%¨Ñ)ˆIØ�}‰}ŒÜ  ´°D·N±NÓ0CÔDä "§¡¨¸YÔ G�ØŸ™×,Ñ,¨]Ó;�Ü˜
Ô#Ø×3Ñ3°FÓ;Ð;ð ×1Ñ1°&Ó9�Ø$.��yÑ!Ø�ð ×/Ñ/°·±×0CÑ0CÀGÓ0LÓMÐMð  Ñ!×&Ñ&Ô(ä "§¡¨Ó 6�Ø˜m¨aÑ/Ó0´C¸¿¹Ó4GÑGÓ0Ø×+Ñ+¨D¯N©N×,?Ñ,?ÀÓ,NÓOÐOrL   c                óî   — | j                   j                  }t        j                  j	                  |«      r| j                  «       S t        j                  j                  |«      r| j                  «       S | S )z"Maybe convert to a datelike array.)rÂ   rb   r`   ra   rê   Ú_to_datetimearrayrî   Ú_to_timedeltaarray)rÊ   rÑ   s     rJ   Ú_maybe_convert_datelike_arrayz1ArrowExtensionArray._maybe_convert_datelike_array|  sX   € à—.‘.×%Ñ%ˆÜ�8‰8× Ñ  Ô)Ø×)Ñ)Ó+Ð+Ü�X‰X×!Ñ! 'Ô*Ø×*Ñ*Ó,Ð,ØˆrL   c                ó‚  — ddl m}m} | j                  j                  }t
        j                  j                  |«      sJ ‚t        j                  d|j                  › d�«      } ||j                  |j                  «      }| j                  j                  «       }|j                  |d¬«      } |j                  ||¬«      S )z;Convert a pyarrow timestamp typed array to a DatetimeArray.r   r(  zM8[Ú]FrØ   r¼   )r1  r°   r)  rÂ   rb   r`   ra   rê   r
  r½   r¸   r¹   r0  r  Ú_simple_new)rÊ   r°   r)  rÑ   Únp_dtyper½   r“  s          rJ   r7  z%ArrowExtensionArray._to_datetimearray…  s˜   € ÷	
ð
 —.‘.×%Ñ%ˆÜ�x‰x×$Ñ$ WÔ-Ð-Ð-Ü—8‘8˜c '§,¡, ¨qÐ1Ó2ˆÙ˜GŸJ™J¨¯©Ó5ˆØ—>‘>×*Ñ*Ó,ˆØ—?‘? 8°%�?Ó8ˆØ(ˆ}×(Ñ(¨¸Ô?Ð?rL   c                óD  — ddl m} | j                  j                  }t        j
                  j                  |«      sJ ‚t        j                  d|j                  › d�«      }| j                  j                  «       }|j                  |d¬«      } |j                  ||¬«      S )z;Convert a pyarrow duration typed array to a TimedeltaArray.r   r±   zm8[r;  FrØ   r¼   )Úpandas.core.arrays.timedeltasr²   rÂ   rb   r`   ra   rî   r
  r½   r¸   r0  r  r<  )rÊ   r²   rÑ   r=  r“  s        rJ   r8  z&ArrowExtensionArray._to_timedeltaarray”  s€   € å@à—.‘.×%Ñ%ˆÜ�x‰x×#Ñ# GÔ,Ð,Ð,Ü—8‘8˜c '§,¡, ¨qÐ1Ó2ˆØ—>‘>×*Ñ*Ó,ˆØ—?‘? 8°%�?Ó8ˆØ)ˆ~×)Ñ)¨(¸(ÔCÐCrL   c                ó€   •— t        | j                  «      rt        j                  | t        ¬«      S t
        ‰| �  «       S ©Nr¼   )r!   r½   r
  r  r  r\  Ú_values_for_json)rÊ   rb  s    €rJ   rB  z$ArrowExtensionArray._values_for_jsonŸ  s.   ø€ Ü˜DŸJ™JÔ'Ü—:‘:˜d¬&Ô1Ð1Ü‰wÑ'Ó)Ð)rL   c                óh  — |}t        | ||| j                  «      \  }}| j                  j                  }| j                  r*t	        |«      st
        j                  j                  |«      r| }n| j                  |«      }d}t
        j                  j                  |«      st
        j                  j                  |«      rT|t        k7  r(|| j                  j                  u rt        j                  }|j!                  «       j#                  ||¬«      }|S t
        j                  j%                  |«      st
        j                  j'                  |«      rAt)        j*                  t-        |«      |¬«      }|j                  r|||j	                  «       <   |S t
        j                  j                  |«      r2|�t	        |«      rd }t)        j.                  t1        |«      ||¬«      }|S |j                  rXt
        j                  j3                  |«      r||t(        j4                  u s'|t        j                  u rXt7        |«      rMt9        «       rC|j                  j#                  «       }|�|j;                  |d¬«      }|r|j=                  «       }|S |€Pt        j*                  g |¬«      j#                  d¬«      }t?        ||«      r|j                  }nt(        j@                  }t)        jB                  t1        |«      |¬«      }|j	                  «       }	|||	<   ||	    j                  j#                  «       ||	 <   |S )NF©r½   r  r¼   )r  r½   rØ   rh   ©r  )"r.   rÏ  rÂ   rb   r&   r`   ra   r  r:  rê   rî   r  r½   r  r   Ú
no_defaultr9  r0  ró   rì   r
  rí   r‡  Úfullr  rø   r  r   r   r  rÏ   r   Úobject_r·  )
rÊ   r½   rÏ   r  Úoriginal_na_valuerÑ   r~  ry   r·  rÞ   s
             rJ   r0  zArrowExtensionArray.to_numpy¤  sƒ  € ð %ÐÜ2°4¸ÀÈ$Ï+É+ÓV‰ˆˆxØ—.‘.×%Ñ%ˆØ�{Š{œd 8œn´·±×0@Ñ0@ÀÔ0IØ‰Dà—;‘;˜xÓ(ˆDØˆDä�8‰8× Ñ  Ô)¬R¯X©X×-AÑ-AÀ'Ô-JàœŠ 8¨t¯z©z×/BÑ/BÑ#BÜŸ>™>�Ø×7Ñ7Ó9×BÑBØ hð Có ˆFðP ˆôK �X‰X×Ñ˜gÔ&¬"¯(©(×*:Ñ*:¸7Ô*Cô —X‘Xœd 4›j°Ô6ˆFØ�{Š{Ø&.��t—y‘y“{Ñ#ð@ ˆô? �X‰X×Ñ˜gÔ&ØÐ ¤T¨(¤^Ø�Ü—W‘WœS ›Y°8À5ÔIˆFð8 ˆð7 —’Ü�H‰H× Ñ  Ô)àœBŸF™FÑ"à%¬¯©Ñ7Ü& uÔ-Ü!œð —^‘^×,Ñ,Ó.ˆFØÐ ØŸ™ u°5˜Ó9�ÙØŸ™›�ð ˆð ˆ}ÜŸ™ ¨'Ô2×;Ñ;È5Ð;ÓQ�Ü# E¨8Ô4Ø!ŸK™K‘EäŸJ™J�EÜ—X‘Xœc $›i¨uÔ5ˆFØ—9‘9“;ˆDØ#ˆF�4‰LØ  $ ™K×1Ñ1×:Ñ:Ó<ˆF�D�5‰MØˆrL   c                ó†   •— t        | j                  «      rt        | j                  «       ||¬«      S t        ‰| �  ||«      S )N)Ú	na_action)r!   r½   r+   r0  r\  Úmap)rÊ   ÚmapperrK  rb  s      €rJ   rL  zArrowExtensionArray.mapâ  s7   ø€ Ü˜DŸJ™JÔ'Ü˜TŸ]™]›_¨fÀ	ÔJÐJô ‘7‘;˜v yÓ1Ð1rL   Úkeepc                óÎ  — | j                   j                  }t        j                  j	                  |«      st        j                  j                  |«      r| j                  d¬«      }nÉt        j                  j                  |«      r| j                  d¬«      }n—t        j                  j                  |«      re|j                  dk(  rt        j                  «       }nt        j                  «       }| j                  t        |«      «      }|j                  d¬«      }n| j                  «       d   }| j                  r| j!                  «       nd }t#        j$                  |||¬«      S )Nr   )r  Fé    )rN  rÞ   )rÂ   rb   r`   ra   rø   r   r0  rõ   Úis_temporalÚ	bit_widthÚint32rñ   r  r<   r$  rÏ  r&   ÚalgosÚ
duplicated)rÊ   rN  rÑ   rË   rÖ   rÞ   s         rJ   rU  zArrowExtensionArray.duplicatedì  sü   € ð —.‘.×%Ñ%ˆÜ�8‰8×Ñ Ô(¬B¯H©H×,?Ñ,?ÀÔ,HØ—]‘]¨A�]Ó.‰FÜ�X‰X× Ñ  Ô)Ø—]‘]¨E�]Ó2‰FÜ�X‰X×!Ñ! 'Ô*Ø× Ñ  BÒ&ÜŸ(™(›*‘äŸ(™(›*�Ø—+‘+œj¨Ó1Ó2ˆCØ—\‘\¨1�\Ó-‰Fð —^‘^Ó% aÑ(ˆFà"Ÿkškˆt�y‰yŒ{¨tˆÜ×Ñ ¨T¸Ô=Ð=rL   c                ób   — t        j                  | j                  «      }| j                  |«      S )z€
        Compute the ArrowExtensionArray of unique values.

        Returns
        -------
        ArrowExtensionArray
        )rE   ÚuniquerÂ   rÿ   )rÊ   Ú	pa_results     rJ   rW  zArrowExtensionArray.unique  s'   € ô —I‘I˜dŸn™nÓ-ˆ	Ø×'Ñ'¨	Ó2Ð2rL   c                ót  — ddl m}m} | j                  }|j	                  «       }|j                  d«      }|j                  d«      }|rA|j                  dkD  r2|j                  «       }|j                  |«      }|j                  |«      }t        |«      } || j                  |«      d¬«      }	 |||	dd¬«      S )a@  
        Return a Series containing counts of each unique value.

        Parameters
        ----------
        dropna : bool, default True
            Don't include counts of missing values.

        Returns
        -------
        counts : Series

        See Also
        --------
        Series.value_counts
        r   )ÚIndexr¯   ri   FrØ   Úcount)rô  ÚnamerÏ   )ÚpandasrZ  r¯   rÂ   Úvalue_countsÚfieldr9  Úis_validrH  rÀ   rÿ   )
rÊ   r  rZ  r¯   r~  ÚvcrË   ÚcountsrÞ   rô  s
             rJ   r^  z ArrowExtensionArray.value_counts  s¢   € ÷"	
ð
 �~‰~ˆØ×ÑÓ ˆà—‘˜!“ˆØ—‘˜!“ˆÙ�d—o‘o¨Ò)Ø—?‘?Ó$ˆDØ—]‘] 4Ó(ˆFØ—]‘] 4Ó(ˆFä$ VÓ,ˆá�d×.Ñ.¨vÓ6¸UÔCˆá�f E°¸eÔDÐDrL   c                óD  — |D ��cg c]#  }|j                   j                  «       D ]  }|‘Œ Œ% }}}|d   j                  dk(  rt        j                  «       }n|d   j                  j
                  }t        j                  ||¬«      }|d   j                  |«      S c c}}w )zÕ
        Concatenate multiple ArrowExtensionArrays.

        Parameters
        ----------
        to_concat : sequence of ArrowExtensionArrays

        Returns
        -------
        ArrowExtensionArray
        r   rð   rh   )rÂ   Ú
iterchunksr½   r`   rž  rµ   rÇ   rÿ   )rÓ   Ú	to_concatÚearí   ÚchunksrS  rÖ   s          rJ   Ú_concat_same_typez%ArrowExtensionArray._concat_same_type5  sŽ   € ñ #,ÔS¡)˜B¸¿¹×9PÑ9PÖ9R°’%Ð9R�% )ˆÑSØ�Q‰<×Ñ Ò)ä—‘Ó(‰Hà  ‘|×)Ñ)×7Ñ7ˆHÜ×Ñ˜v¨HÔ5ˆØ˜‰|×/Ñ/°Ó4Ð4ùó Ts   †(Bc               ó
  •— t        | «      r | j                  d||dœ|¤ŽS dddddœj                  ||«      }t        t        |d«      }|€t        ‰| �  |fd|i|¤ŽS | j                  }|j                  }t        j                  j                  |«      xr |d	v xs& t        j                  j                  |«      xr |d
k(  }|rV|j                  dk(  r$|j                  t        j                  «       «      }n#|j                  t        j                   «       «      }	  ||fd|i|¤Ž}	|r|	j                  |«      }	| j)                  |	«      S # t        j"                  $ r$}
d|› d| j$                  › d�}t'        |«      |
‚d}
~
ww xY w)a¶  
        Return an ExtensionArray performing an accumulation operation.

        The underlying data type might change.

        Parameters
        ----------
        name : str
            Name of the function, supported values are:
            - cummin
            - cummax
            - cumsum
            - cumprod
        skipna : bool, default True
            If True, skip NA values.
        **kwargs
            Additional keyword arguments passed to the accumulation function.
            Currently, there is no supported kwarg.

        Returns
        -------
        array

        Raises
        ------
        NotImplementedError : subclass does not define accumulations
        )r\  r¶  Úcumulative_maxÚcumulative_minÚcumulative_prod_checkedÚcumulative_sum_checked)ÚcummaxÚcumminÚcumprodÚcumsumNr¶  )rn  ro  rq  rP  rò  r—  r˜  rk  rÓ  )r#   Ú_str_accumulaterë  r7  rE   r\  Ú_accumulaterÂ   rb   r`   ra   rQ  rî   rR  r
   rS  rñ   r»   r½   r  rÿ   )rÊ   r\  r¶  ra  Úpyarrow_nameÚpyarrow_methÚdata_to_accumrS  Úconvert_to_intry   rm  rÌ   rb  s               €rJ   rs  zArrowExtensionArray._accumulateK  s’  ø€ ô< ˜4Ô Ø'�4×'Ñ'ÐK¨T¸&ÑKÀFÑKÐKð 'Ø&Ø0Ø.ñ	
÷
 ‰#ˆd�D‹/ð 	ô œr <°Ó6ˆØÐÜ‘7Ñ& tÑE°FÐE¸fÑEÐEàŸ™ˆà ×%Ñ%ˆô �H‰H× Ñ  Ó*ÒK¨tÐ7KÐ/KòCä�h‰h×"Ñ" 8Ó,ÒA°¸Ñ1Að 	ñ Ø×!Ñ! RÒ'Ø -× 2Ñ 2´2·8±8³:Ó >‘à -× 2Ñ 2´2·8±8³:Ó >�ð	*Ù! -ÑM¸FÐMÀfÑMˆFñ
 Ø—[‘[ Ó*ˆFà×'Ñ'¨Ó/Ð/øô ×*Ñ*ò 	*Ø ˜vÐ%@ÀÇÁÀÈAÐNˆCÜ˜C“. cÐ)ûð	*ús   ÄE ÅFÅE=Å=Fc               ó´  — |dk(  rd|› d| j                   › d�}t        |«      ‚d}d}| j                  }t        j                  t        j
                  j                  t        j                  j                  dœ|   }| j                  ræt        j                  |«      }t        j                  |«      t        j                  d«      k(  r| j                  |«      S |r=|dk(  rt        |d	«      }n�t        j                   |«      }t        j"                  |«      }nVt        j$                  |d«      j'                  «       }	t        j(                  t+        |«      |	z
  |j,                  ¬
«      }|d|	 }t        j.                   ||«      |j,                  ¬
«      }
|�t        j0                  |
|g«      }
n|�t        j2                  |d|
«      }
| j                  |
«      }|S )z¨
        Accumulate implementation for strings, see `_accumulate` docstring for details.

        pyarrow.compute does not implement these methods for strings.
        rp  r—  r˜  rk  N)rq  ro  rn  Trq  rœ  rh   )r½   r  rÂ   r
  rq  ÚminimumÚ
accumulateÚmaximumrÏ  rE   r  rÝ  r`   ro   rÿ   r;   r	  r
  rô  rQ  Únullsr  rb   rí   Úconcat_arraysrp   )rÊ   r\  r¶  ra  rÌ   ÚtailÚna_maskrÕ   Únp_funcÚidxrX  ry   s               rJ   rr  z#ArrowExtensionArray._str_accumulate�  s•  € ð �9ÒØ ˜vÐ%@ÀÇÁÀÈAÐNˆCÜ˜C“.Ð ð !%ˆØ#'ˆØ—>‘>ˆä—i‘iÜ—j‘j×+Ñ+Ü—j‘j×+Ñ+ñ
ð ñ	ˆð �;Š;Ü—j‘j Ó*ˆGÜ�v‰v�g‹¤"§)¡)¨D£/Ò1Ø×/Ñ/°Ó9Ð9ÙØ˜8Ò#Ü.¨x¸Ó<‘Hô  "×3Ñ3°HÓ=�HÜ!×4Ñ4°XÓ>‘Hô —h‘h˜w¨Ó-×3Ñ3Ó5�Ü—x‘x¤ H£°Ñ 3¸(¿-¹-ÔH�Ø# D S˜>�ô —H‘H™W XÓ.°X·]±]ÔCˆ	àÐÜ×(Ñ(¨)°TÐ):Ó;‰IØÐ ÜŸ
™
 7¨D°)Ó<ˆIà×)Ñ)¨)Ó4ˆØˆrL   c               ó:
  •‡ — ‰ j                   j                  }‰ j                   }|dv rît        j                  j	                  |«      s]t        j                  j                  |«      s>t        j                  j                  |«      st        j                  j                  |«      rrt        j                  j                  |«      r.‰ j                   j                  t        j                  «       «      }n‰ j                   }t        j                  |d«      }|}nà|dv rMt        j                  j                  |«      r.‰ j                   j                  t        j                  «       «      }n�|dv r‹t        j                  j                  |«      rl|j                  }|dk(  r.‰ j                   j                  t        j                  «       «      }n-‰ j                   j                  t        j                  «       «      }|dk(  rˆ fd„}	n„|dk(  rCt        j                  j                  |«      st        j                  j!                  |«      rd!d	„}	n<d
ddddœj#                  ||«      }
t%        t        |
d«      }	|	€t'        ‰‰ �P  |fd|i|¤ŽS |dv r
d|vrd|d<   n
|dk(  rd|d<   	  |	|fd|i|¤Ž}|dk(  r|d   }|dv r0t        j                  j                  |«      r|j                  |«      }|dv rŒt        j                  j                  |«      rm|j                  }|dk(  r&|j                  t        j                  «       d¬«      }n%|j                  t        j                  «       d¬«      }|j                  |«      }|dv �r9t        j                  j                  |«      �r|j                  t        j                  «       d¬«      }t        j                  j                  |«      r|j                  |«      }|S t        j                  j7                  |«      r0|j                  t        j8                  |j:                  «      «      }|S t        j                  j=                  |«      r&|j                  t        j8                  d «      «      }|S |j                  t        j8                  |j:                  «      «      }|S # t*        t,        t.        f$ rN}dt        ‰ «      j0                  › d‰ j2                  › d|› dt        j4                  › d|› d�}t/        |«      |‚d}~ww xY w)"a�  
        Return a pyarrow scalar result of performing the reduction operation.

        Parameters
        ----------
        name : str
            Name of the function, supported values are:
            { any, all, min, max, sum, mean, median, prod,
            std, var, sem, kurt, skew }.
        skipna : bool, default True
            If True, skip NaN values.
        **kwargs
            Additional keyword arguments passed to the reduction function.
            Currently, `ddof` is the only supported kwarg.

        Returns
        -------
        pyarrow scalar

        Raises
        ------
        TypeError : subclass does not define reductions
        )rË  rÝ  r   )r÷  rý  Úsum)ÚmedianÚmeanÚstdÚsemrP  r‡  c                óÄ   •— t        j                  | fd|i|¤Ž}t        j                  t        j                  ‰j                  «      «      }t        j
                  ||«      S )Nrò  )rE   ÚstddevÚsqrt_checkedr[  rÂ   rj   )r~  rò  ra  Ú	numeratorÚdenominatorrÊ   s        €rJ   ru  z9ArrowExtensionArray._reduce_pyarrow.<locals>.pyarrow_methû  sI   ø€ ÜŸI™I dÑL°zÐLÀVÑL�	Ü Ÿo™o¬b¯h©h°t·~±~Ó.FÓG�Ü×(Ñ(¨°KÓ@Ð@rL   rƒ  c                ó  — | j                   dkD  rt        j                  | «      nd }|rƒ|dkD  rJt        t	        | «      f|€d n|j                  «       |«      r!t        j                  d | j                  ¬«      S | j                   dkD  r_| j                  t        j                  |«      «      } n:|€t        t	        | «      fd |«      r!t        j                  d | j                  ¬«      S t        j                  j                  | j                  «      r#| j                  t        j                  «       «      } t        j                  j!                  dt	        | «      g| j#                  «       «      d   }t        j$                  |d«      S )Nr   rh   rœ  )r9  rE   r  r8   r  r0  r`   ro   rb   rH  rg  ra   ré   r
   rð   Ú	ListArrayÚfrom_arraysrw  Úbinary_join)r~  rò  Ú	min_countrÞ   Ú	data_lists        rJ   ru  z9ArrowExtensionArray._reduce_pyarrow.<locals>.pyarrow_meth  s&  € Ø+/¯?©?¸QÒ+>”r—z‘z $Ô'ÀD�ÙØ  1’}Ô)>Ü˜T›˜Ø $ ™°$·-±-³/Ø!ô*ô
  "Ÿy™y¨°D·I±IÔ>Ð>Ø—‘¨Ò*ð  $Ÿ{™{¬2¯9©9°T«?Ó;™ØÐ%Ô)>Ü˜“Y�L $¨	ô*ô Ÿ9™9 T°·	±	Ô:Ð:ä—8‘8×+Ñ+¨D¯I©IÔ6àŸ9™9¤R§Y¡Y£[Ó1�DÜŸL™L×4Ñ4Øœ˜D›	�N D×$7Ñ$7Ó$9óàñ�	ô —~‘~ i°Ó4Ð4rL   ÚquantileÚproductr‰  Úvariance)r„  Úprodr†  ÚvarNr¶  r‘  r„  g      à?Úqrò  rk  z' with dtype z does not support operation 'z' with pyarrow version z. 'z(' may be supported by upgrading pyarrow.)r„  r…  Fr^   )r†  r‡  r  ©r   )rÂ   rb   r`   ra   r   rø   rî   rù   r
   rñ   rE   rl   rQ  rR  rS  rè   ré   rë  r7  r\  rÚ  ÚAttributeErrorrû   r  r†  r½   Ú__version__ró   r  r¸   rì   )rÊ   r\  r¶  ra  rÑ   Údata_to_reduceÚdata_to_cmpÚnot_eqÚnbitsru  rt  ry   rm  rÌ   rb  s   `             €rJ   Ú_reduce_pyarrowz#ArrowExtensionArray._reduce_pyarrowÂ  s  ù€ ð0 —.‘.×%Ñ%ˆàŸ™ˆà�>Ñ!Ü�H‰H×Ñ Ô(Ü�x‰x×#Ñ# GÔ,Ü�x‰x×#Ñ# GÔ,Ü�x‰x×"Ñ" 7Ô+ô
 �x‰x×#Ñ# GÔ,Ø"Ÿn™n×1Ñ1´"·(±(³*Ó=‘à"Ÿn™n�ä—\‘\ +¨qÓ1ˆFØ#‰NàÐ*Ñ*¬r¯x©x×/CÑ/CÀGÔ/LØ!Ÿ^™^×0Ñ0´·±³Ó<‰NàÐ5Ñ5¼"¿(¹(×:NÑ:NÈwÔ:WØ×%Ñ%ˆEØ˜Š{Ø!%§¡×!4Ñ!4´R·X±X³ZÓ!@‘à!%§¡×!4Ñ!4´R·X±X³ZÓ!@�à�5Š=õAð
 �UŠ]Ü�H‰H×Ñ˜wÔ'¬2¯8©8×+CÑ+CÀGÔ+Lô5ð8 %Ø!ØØ!ñ	÷
 ‰c�$˜‹oð ô #¤2 |°TÓ:ˆLØÐ#ä‘w‘ tÑE°FÐE¸fÑEÐEð �>Ñ! k¸Ñ&?Ø"#ˆF�;ÒØ�XÒàˆF�3‰Kð		*Ù! .ÑN¸VÐNÀvÑNˆFð �8Òà˜A‘YˆFàÐ(Ñ(¬R¯X©X×-AÑ-AÀ'Ô-JØ—[‘[ Ó)ˆFØÐ%Ñ%¬"¯(©(×*>Ñ*>¸wÔ*GØ×%Ñ%ˆEØ˜Š{ØŸ™¤R§X¡X£Z°e˜Ó<‘àŸ™¤R§X¡X£Z°e˜Ó<�Ø—[‘[ Ó)ˆFØ�>Ò!¤b§h¡h×&:Ñ&:¸7Õ&CØ—[‘[¤§¡£°%�[Ó8ˆFÜ�x‰x×#Ñ# GÔ,ØŸ™ WÓ-�ð ˆô —‘×!Ñ! 'Ô*ØŸ™¤R§[¡[°·±Ó%>Ó?�ð ˆô —‘×!Ñ! 'Ô*àŸ™¤R§[¡[°Ó%5Ó6�ð
 ˆð  Ÿ™¤R§[¡[°·±Ó%>Ó?�àˆøôE Ô 3´YÐ?ò 	*à”D˜“J×'Ñ'Ð(¨°d·j±j°\ð B/Ø/3¨fð 5ÜŸ>™>Ð*¨#¨d¨Vð 4%ð&ð ô ˜C“. cÐ)ûð	*ús   ÊR8 Ò8TÓA	TÔT©r¶  Úkeepdimsc               óˆ   —  | j                   |f||dœ|¤Ž}t        |t        j                  «      r| j	                  |«      S |S )a�  
        Return a scalar result of performing the reduction operation.

        Parameters
        ----------
        name : str
            Name of the function, supported values are:
            { any, all, min, max, sum, mean, median, prod,
            std, var, sem, kurt, skew }.
        skipna : bool, default True
            If True, skip NaN values.
        **kwargs
            Additional keyword arguments passed to the reduction function.
            Currently, `ddof` is the only supported kwarg.

        Returns
        -------
        scalar

        Raises
        ------
        TypeError : subclass does not define reductions
        r¡  )Ú_reduce_calcr´   r`   rÆ   rÿ   )rÊ   r\  r¶  r¢  ra  ry   s         rJ   rÚ  zArrowExtensionArray._reduceZ  sF   € ð4 #�×"Ñ" 4ÐT°ÀÑTÈVÑTˆÜ�fœbŸh™hÔ'Ø×+Ñ+¨FÓ3Ð3àˆMrL   c               óT  —  | j                   |fd|i|¤Ž}|r{t        |t        j                  «      r2t        j                  |j                  «       g|j                  ¬«      }|S t        j                  |gt        t        |«      d   «      ¬«      }|S t        j                  |«      j                  «       r| j                  j                  S t        |t        j                  «      rÂ|j                  «       }|j                  }t        j                  j                  |«      r3|j                  dk7  r$t!        |«      j#                  |j                  «      S t        j                  j%                  |«      r3|j                  dk7  r$t'        |«      j#                  |j                  «      S |S |S )Nr¶  rh   r   rá   )r   r´   r`   r§   rí   rQ  rb   r¾   r   rE   r  r½   r  ra   rî   r¸   r   r   rê   r   )rÊ   r\  r¶  r¢  ra  rX  ry   rÑ   s           rJ   r¤  z ArrowExtensionArray._reduce_calcz  sF  € ð )�D×(Ñ(¨ÑG°fÐGÀÑGˆ	áÜ˜)¤R§Y¡YÔ/ÜŸ™ 9§?¡?Ó#4Ð"5¸I¿N¹NÔK�ð ˆMô	 Ÿ™Ø�KÜ(Ô)@ÀÓ)KÈAÑ)NÓOô�ð ˆMä�:‰:�iÓ ×&Ñ&Ô(Ø—:‘:×&Ñ&Ð&Ü˜	¤2§9¡9Ô-Ø—_‘_Ó&ˆFØ—n‘nˆGÜ�x‰x×#Ñ# GÔ,°·±ÀÒ1EÜ  Ó(×0Ñ0°·±Ó>Ð>Ü—‘×&Ñ& wÔ/°G·L±LÀDÒ4HÜ  Ó(×0Ñ0°·±Ó>Ð>ØˆMàÐrL   c                óX  •— t        | j                  d«      rft        j                  j	                  | j                  j
                  «      sAt        j                  j                  | j                  j
                  «      st        ‰| �!  «       S | }t        j                  j                  |j                  «      }|j                  d«      j                  «       }t        j                  dg| j                  j                  ¬«      }|dk(  }|j!                  «       rHt#        j$                  | |j                  |«      }| j'                  |«      }|j)                  «       }d||<   |j+                  |«      }| j'                  t        j                  j-                  |j                  «      «      }||fS )z-
        See Series.explode.__doc__.
        rµ   ri   Nrh   r   )r-  r½   r`   ra   Úis_listrµ   Úis_large_listr\  Ú_explodeÚcomputeÚlist_value_lengthrÂ   r¾  r0  ro   rb   rË  rE   rp   rÿ   rÏ   r:  Úlist_flatten)rÊ   rË   rb  r  rÞ   Ú	pa_valuesrb  s         €rJ   r©  zArrowExtensionArray._explode–  s<  ø€ ô �t—z‘z ?Ô3Ü—‘× Ñ  §¡×!9Ñ!9Ô:Ü—H‘H×*Ñ*¨4¯:©:×+CÑ+CÔDä‘7Ñ#Ó%Ð%ØˆÜ—‘×-Ñ-¨f×.>Ñ.>Ó?ˆØ×!Ñ! !Ó$×-Ñ-Ó/ˆÜ—Y‘Y ˜v¨D¯N©N×,?Ñ,?Ô@ˆ
Ø˜‰{ˆØ�8‰8Œ:ô Ÿ
™
 D 5¨&×*:Ñ*:¸JÓGˆIØ×-Ñ-¨iÓ8ˆFØ—[‘[“]ˆFØˆF�4‰LØ—‘˜zÓ*ˆØ×)Ñ)¬"¯*©*×*AÑ*AÀ&×BRÑBRÓ*SÓTˆØ�vˆ~ÐrL   c                óÈ  — | j                   rt        d«      ‚t        |t        «      rt	        |«      dk(  r|d   }t        | |«      }| j                  |«      }t        j                  |«      r‡t        |t        j                  t        j                  f«      r>|j                  | j                  j                  k(  rt	        |«      t	        | «      k(  r|}�n×| j                  d|| j                  «      }�n¸t        |«      �rt!        t"        |«      }t	        | «      }|dk  r||z  }d|cxk  r|k  sn t%        d|› d|› �«      ‚t        |t        j&                  «      r|j)                  «       }nt+        |«      rt        d«      ‚g | j                  d| j,                  ¢t        j.                  |g| j                  j                  t1        «       ¬	«      ‘| j                  |dz   d j,                  ¢}t        j2                  |«      j5                  «       }�n—t7        |«      rDt9        j:                  |t8        j<                  ¬
«      }| j?                  | j                  ||«      }�nHtA        |«      st        |t        j&                  «      rQt9        jB                  t	        | «      t8        j<                  ¬
«      }d||<   | j                  ||| j                  «      }nÒt9        jD                  t	        | «      «      |   }t	        |«      t	        |«      k7  rt        d«      ‚t	        |«      dk(  ryt9        jF                  |d¬«      \  }}	||	   }|jI                  |	«      }t9        jB                  t	        | «      t8        j<                  ¬
«      }d||<   | j?                  | j                  ||«      }t        |t        j                  «      rt        j2                  |g«      }|| _        y)a÷  Set one or more values inplace.

        Parameters
        ----------
        key : int, ndarray, or slice
            When called from, e.g. ``Series.__setitem__``, ``key`` will be
            one of

            * scalar int
            * ndarray of integers.
            * boolean ndarray
            * slice object

        value : ExtensionDtype.type, Sequence[ExtensionDtype.type], or object
            value or values to be set of ``key``.

        Returns
        -------
        None
        zCannot modify read-only arrayri   r   Tzindex z' is out of bounds for axis 0 with size z%Length of indexer and values mismatchNrƒ  r¼   )Úreturn_index)%rP  rÉ   r´   rJ  r  r4   Ú_maybe_convert_setitem_valueÚcomÚis_null_slicer`   rÆ   rÈ   rb   rÂ   Ú_if_elser   r
   ÚintrI  r§   rQ  r    rg  rí   r   rÇ   rw  r   r
  r  r÷   Ú_replace_with_maskr"   r6  ÚarangerW  rG  )
rÊ   rÍ  r  r~  Únrg  rÞ   r  r¬  rï  s
             rJ   Ú__setitem__zArrowExtensionArray.__setitem__±  s
  € ð* �>Š>ÜÐ<Ó=Ð=ô �cœ5Ô!¤c¨#£h°!¢mØ�a‘&ˆCä! $¨Ó,ˆØ×1Ñ1°%Ó8ˆä×Ñ˜SÔ!ô ˜5¤2§8¡8¬R¯_©_Ð"=Ô>Ø—J‘J $§.¡.×"5Ñ"5Ò5Ü˜“J¤# d£)Ò+à’à—}‘} T¨5°$·.±.ÓA’ä˜�_ä”s˜C“.ˆCÜ�D“	ˆAØ�QŠwØ�q‘�Ø˜”<˜a”<Ü Ø˜S˜EÐ!HÈÈÐLóð ô ˜%¤§¡Ô+ØŸ™›‘Ü˜eÔ$Ü Ð!HÓIÐIðØ—‘  Ð%×,Ñ,ðä—‘˜%˜ t§~¡~×':Ñ':Ì	ËÔTðð —‘  a¡ 	Ð*×1Ñ1ðˆFô
 ×#Ñ# FÓ+×:Ñ:Ó<ŠDä˜3ÔÜ—*‘*˜S¬¯©Ô1ˆCØ×*Ñ*¨4¯>©>¸3ÀÓFŠDä�uÔ¤¨E´2·9±9Ô!=Ü—8‘8œC ›I¬R¯X©XÔ6ˆDØˆD�‰IØ—=‘=  u¨d¯n©nÓ=‰Dô —i‘i¤ D£	Ó*¨3Ñ/ˆGÜ�7‹|œs 5›zÒ)Ü Ð!HÓIÐIÜ�7‹|˜qÒ ØäŸ™ 7¸Ô>‰JˆAˆwØ˜gÑ&ˆGØ—J‘J˜wÓ'ˆEÜ—8‘8œC ›I¬R¯X©XÔ6ˆDØ ˆD�‰MØ×*Ñ*¨4¯>©>¸4ÀÓGˆDä�dœBŸH™HÔ%Ü×#Ñ# T FÓ+ˆDØˆ�rL   Úaverage©Úaxisr_  Ú	na_optionrâ  Úpctc               óp  •— |dk7  rft         ‰| �  |||||¬«      }|dk(  s|rt        j                  «       }nt        j                  «       }t        j
                  ||t        «       ¬«      }|S | j                  j                  «       }	|rdnd}
|dk(  rdnd	}|dk(  rd
n|}t        j                  |	|
||¬«      }|dk(  rWt        j                  | j                  «      }t        j                  d |j                  ¬«      }t        j                  |||«      }|dk(  r‰t        j                  |	|
|d¬«      }|j                  t        j                  «       «      }|j                  t        j                  «       «      }t        j                   t        j"                  ||«      d«      }|r’t        j$                  j'                  |j                  «      s#|j                  t        j                  «       «      }|dk(  rt        j(                  |«      }nt        j*                  |«      }t        j                   ||«      }|S )Nr   rº  r¹  rƒ  râ  rå  Útoprç  ræ  r÷  )Ú	sort_keysrê  Ú
tiebreakerrN  rh   rý  é   Údense)r\  Ú_rankr`   rc   Úuint64rí   r   rÂ   rw  rE   Úrankr  ro   rb   rp   r
   rr   r{   ra   rø   rý  r[  )rÊ   r»  r_  r¼  râ  r½  ÚrankedrÑ   ry   r~  rÀ  rê  rÁ  rÞ   ÚnullÚ
result_maxÚ
result_minÚdivisorrb  s                     €rJ   Ú
_rank_calczArrowExtensionArray._rank_calc	  sÈ  ø€ ð �1Š9Ü‘W‘]ØØØ#Ø#Øð #ó ˆFð ˜Ò"¡cÜŸ*™*›,‘äŸ)™)›+�Ü—X‘X˜f¨7Ä	ÃÔLˆFØˆMà�~‰~×,Ñ,Ó.ˆÙ#,‘K°,ˆ	Ø'0°EÒ'9™¸xˆØ$¨	Ò1‘U°vˆ
ä—‘ØØØ)Ø!ô	
ˆð ˜ÒÜ—:‘:˜dŸn™nÓ-ˆDÜ—9‘9˜T¨¯©Ô4ˆDÜ—Z‘Z  d¨FÓ3ˆFà�YÒÜŸ™ØØ#Ø-Ø ô	ˆJð $Ÿ™¬¯©«Ó6ˆJØŸ™¤R§Z¡Z£\Ó2ˆJÜ—Y‘YœrŸv™v j°*Ó=¸qÓAˆFáÜ—8‘8×'Ñ'¨¯©Ô4ØŸ™¤R§Z¡Z£\Ó2�Ø˜Ò ÜŸ&™& ›.‘äŸ(™( 6Ó*�Ü—Y‘Y˜v wÓ/ˆFàˆrL   c          	     óL   — | j                  | j                  |||||¬«      «      S )z*
        See Series.rank.__doc__.
        rº  )Ú_convert_rank_resultrÌ  )rÊ   r»  r_  r¼  râ  r½  s         rJ   rÄ  zArrowExtensionArray._rankK	  s7   € ð ×(Ñ(Ø�O‰OØØØ#Ø#Øð ó ó
ð 	
rL   c                ó  — | j                   j                  }| j                   }t        j                  j	                  |«      rX|j
                  }|dk(  r$|j                  t        j                  «       «      }n#|j                  t        j                  «       «      }t        j                  |||¬«      }t        j                  j	                  |«      r§t        j                  j                  |j                  «      rt        j                  |«      }|j
                  }|dk(  r$|j                  t        j                  «       «      }n#|j                  t        j                  «       «      }|j                  |«      }| j                  |«      S )zè
        Compute the quantiles of self for each quantile in `qs`.

        Parameters
        ----------
        qs : np.ndarray[float64]
        interpolation: str

        Returns
        -------
        same type as self
        rP  )r˜  Úinterpolation)rÂ   rb   r`   ra   rQ  rR  r
   rS  rñ   rE   r“  rø   rs   rÿ   )rÊ   ÚqsrÐ  rS  r~  rŸ  ry   s          rJ   Ú	_quantilezArrowExtensionArray._quantilea	  s  € ð —>‘>×&Ñ&ˆà�~‰~ˆÜ�8‰8×Ñ Ô)ð ×&Ñ&ˆEØ˜Š{Ø—y‘y¤§¡£Ó,‘à—y‘y¤§¡£Ó,�ä—‘˜T R°}ÔEˆä�8‰8×Ñ Ô)Ü�x‰x×#Ñ# F§K¡KÔ0ÜŸ™ &Ó)�Ø×&Ñ&ˆEØ˜Š{ØŸ™¤R§X¡X£ZÓ0‘àŸ™¤R§X¡X£ZÓ0�Ø—[‘[ Ó*ˆFà×'Ñ'¨Ó/Ð/rL   c           
     ó`  — | j                   j                  }t        j                  j	                  |«      r}|j
                  }|dk(  r.| j                   j                  t        j                  «       «      }nJ|dk(  r.| j                   j                  t        j                  «       «      }nt        |«      ‚| j                   }|r|j                  «       }t        j                  |«      }|j                  d«      j                  t        j                  |j                  d«      t        j                   |j                  d«      «      «      «      }t        j                  j	                  |«      r|j                  |«      }|j#                  t        j$                  |«      «      }| j'                  |«      S )aT  
        Returns the mode(s) of the ExtensionArray.

        Always returns `ExtensionArray` even if only one value.

        Parameters
        ----------
        dropna : bool, default True
            Don't consider counts of NA values.

        Returns
        -------
        same type as self
            Sorted, if possible.
        rP  é@   rË   rb  )rÂ   rb   r`   ra   rQ  rR  r
   rS  rñ   rû   r  rE   r^  r_  rH  rö   rý  rG  rì  rÿ   )rÊ   r  rÑ   rŸ  r~  ÚresÚmost_commons          rJ   Ú_modezArrowExtensionArray._modeˆ	  s5  € ð  —.‘.×%Ñ%ˆÜ�8‰8×Ñ Ô(Ø×%Ñ%ˆEØ˜Š{Ø—~‘~×*Ñ*¬2¯8©8«:Ó6‘Ø˜"’Ø—~‘~×*Ñ*¬2¯8©8«:Ó6‘ä)¨'Ó2Ð2à—>‘>ˆDáØ—>‘>Ó#ˆDä�o‰o˜dÓ#ˆØ—i‘i Ó)×0Ñ0Ü�H‰H�S—Y‘Y˜xÓ(¬"¯&©&°·±¸8Ó1DÓ*EÓFó
ˆô �8‰8×Ñ Ô(Ø%×*Ñ*¨7Ó3ˆKà!×&Ñ&¤r×'<Ñ'<¸[Ó'IÓJˆØ×'Ñ'¨Ó4Ð4rL   c                óÈ   — 	 | j                  || j                  j                  «      }|S # t        j                  $ r$}d|›d| j
                  › d�}t        |«      |‚d}~ww xY w)z-Maybe convert value to be pyarrow compatible.r  r  rk  N)r  rÂ   rb   r`   r8  r½   r  )rÊ   r  rm  rÌ   s       rJ   r°  z0ArrowExtensionArray._maybe_convert_setitem_value²	  sd   € ð	*Ø—L‘L ¨¯©×(;Ñ(;Ó<ˆEð ˆøô × Ñ ò 	*Ø# E 9¨M¸$¿*¹*¸ÀQÐGˆCÜ˜C“. cÐ)ûð	*ús   ‚&* ªA!½AÁA!c               óæ  — | j                   j                  st        d| j                   › d�«      ‚|dk(  rã|€á|€ß|dk(  rÚ| j                  j	                  «       }	t        j                  dg|	j                  ¬«      }
t        j                  t        j                  |	d¬«      «      }t        j                  |
|	dd	 |
g«      }t        j                  |t        j                  |d«      «      }| j                  t        j                  | j                  |«      «      S | j!                  «       }| j                   j"                  d
k(  r| j                  j%                  «       }nD| j                   j"                  dv r| j%                  dd¬«      }nt'        d| j                   › �«      ‚t)        j*                  |f|d|||||dœ|¤Ž | j                  | j-                  t        j                  ||¬«      «      «      S )z2
        See NDFrame.interpolate.__doc__.
        zCannot interpolate with z dtypeÚlinearNÚforwardrh   rÂ  )Úperiodéþÿÿÿr»  rD  Úf8g        rD  z)interpolate is not implemented for dtype=r   )r_  r»  rô  r  Úlimit_directionr  rÞ   r  )r½   Ú_is_numericr  rÂ   rw  r`   rí   rb   rE   r
  Úpairwise_diff_checkedr}  r~   rj   rÿ   Úcoalescer&   r	  r0  rû   r(   Úinterpolate_2d_inplacerÒ   )rÊ   r_  r»  rô  r  rß  r  rÏ   ra  rË   r  Úy_diff_2Úprev_valuesÚinterpsrÞ   r~  s                   rJ   ÚinterpolatezArrowExtensionArray.interpolate»	  s±  € ð  �z‰z×%Ò%ÜÐ6°t·z±z°lÀ&ÐIÓJÐJð �hÒØÐ"Ø�Ø 9Ò,à—^‘^×2Ñ2Ó4ˆFÜ—x‘x  ¨V¯[©[Ô9ˆHÜ×,Ñ,¬R×-EÑ-EÀfÐUVÔ-WÓXˆHÜ×*Ñ*¨H°f¸S¸b°kÀ8Ð+LÓMˆKÜ—n‘n [´"×2CÑ2CÀHÈaÓ2PÓQˆGØ×+Ñ+¬B¯K©K¸¿¹ÈÓ,PÓQÐQà�y‰y‹{ˆØ�:‰:�?‰?˜cÒ!Ø—>‘>×*Ñ*Ó,‰DØ�Z‰Z�_‰_ Ñ$Ø—=‘= t°c�=Ó:‰Dä%Ø;¸D¿J¹J¸<ÐHóð ô 	×&Ñ&Øð
	
àØØØØ+Ø!Øñ
	
ð ò
	
ð ×'Ñ'¨×(:Ñ(:¼2¿8¹8ÀDÈtÔ;TÓ(UÓVÐVrL   c                óP  — d„ } ||«       ||«      }}|�|�	 t        j                  |||«      S |�|}|�|}dd„} ||«      \  }} ||«      \  }}	|xs |	}
t	        j
                  |||«      }t        j                  ||
t        «       ¬«      S # t        j                  $ r Y Œtw xY w)an  
        Choose values based on a condition.

        Analogous to pyarrow.compute.if_else, with logic
        to fallback to numpy for unsupported types.

        Parameters
        ----------
        cond : npt.NDArray[np.bool_] or bool
        left : ArrayLike | Scalar
        right : ArrayLike | Scalar

        Returns
        -------
        pa.Array
        c                ó˜  — t        | t        j                  «      rRt        j                  j	                  | j
                  «      s+t        j                  j                  | j
                  «      s| S t        d„ | j                  D «       «      s| S 	 | j                  «       S # t        j                  t        j                  t        f$ r Y y w xY w)Nc              3  ó:   K  — | ]  }|j                   d k7  –— Œ y­w©r   N)Úoffset)Ú.0Úcs     rJ   Ú	<genexpr>zGArrowExtensionArray._if_else.<locals>._maybe_combine.<locals>.<genexpr>
  s   è ø€ Ð9©j¨�q—x‘x 1•}©jùs   ‚)r´   r`   rÈ   ra   rè   rb   ré   rË  rg  rw  rò   ÚArrowCapacityErrorÚMemoryError)rÖ   s    rJ   Ú_maybe_combinez4ArrowExtensionArray._if_else.<locals>._maybe_combine
  sŽ   € Ü˜c¤2§?¡?Ô3Ü—‘×"Ñ" 3§8¡8Ô,´·±×0HÑ0HÈÏÉÔ0Rà�
ÜÑ9¨c¯jªjÓ9Ô9Ø�
ðØ×)Ñ)Ó+Ð+øÜ—O‘O¤R×%:Ñ%:¼KÐHò Ùðús   ÂB Â(C	ÃC	c                ó  — t        | t        j                  t        j                  f«      r| j                  }n9t        | t        j
                  «      r| j                  }| j                  «       } nd }t        j                  | t        ¬«      |fS rA  )
r´   r`   rÆ   rÈ   rb   r§   rQ  r
  rí   r  )r  rÑ   s     rJ   Ú_to_numpy_and_typez8ArrowExtensionArray._if_else.<locals>._to_numpy_and_type"
  s_   € Ü˜%¤"§(¡(¬B¯O©OÐ!<Ô=ØŸ*™*‘Ü˜E¤2§9¡9Ô-ØŸ*™*�ØŸ™›‘à�Ü—8‘8˜E¬Ô0°'Ð9Ð9rL   rƒ  )Úreturnz%tuple[np.ndarray, pa.DataType | None])rE   rp   r`   r»   r
  Úwhererí   r   )rÓ   Úcondrt   ru   rò  Úleft_cÚright_crô  Ú	left_typeÚ
right_typerÑ   ry   s               rJ   r³  zArrowExtensionArray._if_elseò	  sÆ   € ò2
	ñ )¨Ó.±¸uÓ0E�ˆØÐ 'Ð"5ðÜ—z‘z $¨°Ó8Ð8ð ÐØˆDØÐØˆEó	:ñ -¨TÓ2‰ˆˆiÙ.¨uÓ5ÑˆˆzØÒ)˜zˆÜ—‘˜$  eÓ,ˆÜ�x‰x˜ W¼)»+ÔFÐFøô+ ×.Ñ.ò Ùðús   ™B ÂB%Â$B%c                ó²  — t        |t        j                  «      r|j                  «       }t        |t        j                  «      r9t        j                  j                  |j                  «      r|j                  «       }	 t        j                  |||«      S # t        j                  $ r Y nw xY wt        |t        j                  «      rt        j                  |t        ¬«      }n*t        |t        j                  «      r|j                  «       }t        j                  |t        ¬«      }|||<   t        j                  ||j                  t!        «       ¬«      S )a¿  
        Replace items selected with a mask.

        Analogous to pyarrow.compute.replace_with_mask, with logic
        to fallback to numpy for unsupported types.

        Parameters
        ----------
        values : pa.Array or pa.ChunkedArray
        mask : npt.NDArray[np.bool_] or bool
        replacements : ArrayLike or Scalar
            Replacement value(s)

        Returns
        -------
        pa.Array or pa.ChunkedArray
        r¼   rƒ  )r´   r`   rÈ   rw  ra   rõ   rb   rE   r¿  r»   rÆ   r
  rí   r  r§   rQ  r   )rÓ   rË   rÞ   Úreplacementsry   s        rJ   rµ  z&ArrowExtensionArray._replace_with_mask2
  sñ   € ô0 �l¤B§O¡OÔ4à'×6Ñ6Ó8ˆLÜ�fœbŸo™oÔ.´2·8±8×3FÑ3FÀvÇ{Á{Ô3Sð ×*Ñ*Ó,ˆFð	Ü×'Ñ'¨°°lÓCÐCøÜ×*Ñ*ò 	Ùð	úä�l¤B§H¡HÔ-ÜŸ8™8 L¼Ô?‰LÜ˜¤b§i¡iÔ0Ø'×-Ñ-Ó/ˆLä—‘˜&¬Ô/ˆØ#ˆˆt‰Ü�x‰x˜ V§[¡[¼i»kÔJÐJs   Á?B ÂB,Â+B,c                ó¢  — | j                   j                  }t        j                  j	                  |«      st        j                  j                  |«      rd}n(t        j                  j                  |«      rd}nt        ‚t        «       |   }| j                  «       }| j                  |j                  |¬«      } |j                  «       ||«      S )Nri   TrD  )rÂ   rb   r`   ra   rø   r   rõ   rû   r9   r&   r0  Únumpy_dtypeÚconstruct_array_type)rÊ   rS  r  r½   rÞ   rÖ   s         rJ   Ú
_to_maskedzArrowExtensionArray._to_maskeda
  sž   € Ø—>‘>×&Ñ&ˆä�8‰8×Ñ Ô)¬R¯X©X×-@Ñ-@ÀÔ-JØ‰HÜ�X‰X× Ñ  Ô*Ø‰Hä%Ð%ä$Ó& xÑ0ˆØ�y‰y‹{ˆØ�m‰m %×"3Ñ"3¸hˆmÓGˆØ+ˆu×)Ñ)Ó+¨C°Ó6Ð6rL   c          	     óÄ  •— t        | j                  t        «      r5|dv rt        d| j                  › d|› d�«      ‚t	        ‰| �  d|||||dœ|¤ŽS | j                  j                  }t        j                  j                  |«      r| j                  «       }n@t        j                  j                  |«      r| j                  «       }n| j                  «       } |j
                  d|||||dœ|¤Ž}	t        |	t        j                   «      r|	S t        |	t"        «      r!|	j%                  «       }
| j'                  |
«      S t        j(                  |	«      }
| j'                  |
«      S )N)	r–  r…  r„  rq  rp  r†  r‡  r—  Úskewr–  z' does not support operation 'rk  )ÚhowÚhas_dropped_nar‘  ÚngroupsÚidsrÓ  )r´   r½   r2   r  r\  Ú_groupby_oprÂ   rb   r`   ra   rê   r7  rî   r8  r  r
  r.  r1   r%  rÿ   rí   )rÊ   r  r  r‘  r  r  ra  rÑ   rË   ry   rX  rb  s              €rJ   r  zArrowExtensionArray._groupby_opp
  sd  ø€ ô �d—j‘j¤+Ô.Øð 
ñ 
ô  Ø˜dŸj™j˜\Ð)GÈÀuÈAÐNóð ô ‘7Ñ&ð ØØ-Ø#ØØñð ñð ð —.‘.×%Ñ%ˆÜ�8‰8× Ñ  Ô)Ø×+Ñ+Ó-‰FÜ�X‰X×!Ñ! 'Ô*Ø×,Ñ,Ó.‰Fà—_‘_Ó&ˆFà#�×#Ñ#ð 
ØØ)ØØØñ
ð ñ
ˆô �fœbŸj™jÔ)ØˆMÜ˜¤Ô0Ø×.Ñ.Ó0ˆIØ×+Ñ+¨IÓ6Ð6ô Ÿ™ Ó(ˆIØ×+Ñ+¨IÓ6Ð6rL   c           
     ó¼   — | j                   j                  «       D ��cg c],  }|j                  d¬«      D �cg c]  }|€dn ||«      ‘Œ c}‘Œ. c}}S c c}w c c}}w )zJApply a callable to each element while maintaining the chunking structure.FrE  N)rÂ   rd  r0  )rÊ   ÚfuncÚchunkrX  s       rJ   Ú_apply_elementwisez&ArrowExtensionArray._apply_elementwise®
  so   € ð Ÿ™×2Ñ2Ô4ô
ñ
 5�ð !Ÿ>™>¸˜>Ô?óá?�Cð ˜‘©¨c«Ñ2Ø?óð 5ò
ð 	
ùòùó
s   žA·AÁ
AÁAc                ó€   — |t         j                  urt        |«      s|j                  |«      }| j	                  |«      S rD   )r   rF  r&   r¾  rÿ   )rÊ   ry   ÚnaÚmethod_names       rJ   Ú_convert_bool_resultz(ArrowExtensionArray._convert_bool_result¸
  s5   € Ø”S—^‘^Ñ#¬D°¬HØ×%Ñ% bÓ)ˆFØ×'Ñ'¨Ó/Ð/rL   c                ó$   — | j                  |«      S rD   ©rÿ   ©rÊ   ry   s     rJ   Ú_convert_int_resultz'ArrowExtensionArray._convert_int_result½
  ó   € Ø×'Ñ'¨Ó/Ð/rL   c                ó$   — | j                  |«      S rD   r  r  s     rJ   rÎ  z(ArrowExtensionArray._convert_rank_resultÀ
  r  rL   c                ó€   — |rt        d|›�«      ‚| j                  t        j                  | j                  |«      «      S )Nz!count not implemented with flags=)rû   rÿ   rE   Úcount_substring_regexrÂ   )rÊ   Úpatr3  s      rJ   Ú
_str_countzArrowExtensionArray._str_countÃ
  s;   € ÙÜ%Ð(JÀEÀ8Ð&LÓMÐMØ×'Ñ'¬×(@Ñ(@ÀÇÁÐQTÓ(UÓVÐVrL   c                óÂ   — t        |t        «      s!t        dt        |«      j                  › �«      ‚| j                  t        j                  | j                  |«      «      S )Nz*repeat is not implemented when repeats is )	r´   r´  rû   rb   r†  rÿ   rE   r   rÂ   )rÊ   Úrepeatss     rJ   Ú_str_repeatzArrowExtensionArray._str_repeatÈ
  sR   € Ü˜'¤3Ô'Ü%Ø<¼TÀ'»]×=SÑ=SÐ<TÐUóð ð ×'Ñ'¬×(8Ñ(8¸¿¹ÈÓ(QÓRÐRrL   c                óÔ  — t         j                  j                  | j                  j                  «      s3t         j                  j                  | j                  j                  «      rR| j                  t        «      }t        j                  |t        j                  t        j                  «       «      ¬«      }n| j                  }| j                  t        j                  ||«      «      S )Nrh   )r`   ra   rè   rÂ   rb   ré   r  r‡  rÇ   Úlist_rð   rÿ   rE   r�  )rÊ   r¦  ry   s      rJ   Ú	_str_joinzArrowExtensionArray._str_joinÏ
  s”   € Ü�8‰8×Ñ˜dŸn™n×1Ñ1Ô2´b·h±h×6NÑ6NØ�N‰N×Ñô7
ð ×,Ñ,¬TÓ2ˆFÜ×%Ñ% f´2·8±8¼B¿I¹I»KÓ3HÔI‰Fà—^‘^ˆFØ×'Ñ'¬¯©°v¸sÓ(CÓDÐDrL   c                óx   ‡— ˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó&   •— | j                  ‰«      S rD   )Ú	partition©rX  r¦  s    €rJ   rK   z4ArrowExtensionArray._str_partition.<locals>.<lambda>Ú
  s   ø€  §¡¨cÔ 2rL   ©r  rÿ   r`   rÇ   ©rÊ   r¦  ÚexpandÚ	predicatery   s    `   rJ   Ú_str_partitionz"ArrowExtensionArray._str_partitionÙ
  s4   ø€ Û2ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                óx   ‡— ˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó&   •— | j                  ‰«      S rD   )Ú
rpartitionr$  s    €rJ   rK   z5ArrowExtensionArray._str_rpartition.<locals>.<lambda>ß
  s   ø€  §¡¨sÔ 3rL   r%  r&  s    `   rJ   Ú_str_rpartitionz#ArrowExtensionArray._str_rpartitionÞ
  s4   ø€ Û3ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                ór   — d„ }| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó"   — | j                  «       S rD   )Úcasefold)rX  s    rJ   rK   z3ArrowExtensionArray._str_casefold.<locals>.<lambda>ä
  s
   €  §¡¤rL   r%  )rÊ   r(  ry   s      rJ   Ú_str_casefoldz!ArrowExtensionArray._str_casefoldã
  s3   € Ù.ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                ó|   ‡‡— ˆˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó(   •— | j                  ‰‰«      S rD   )r  )rX  ÚencodingrÜ   s    €€rJ   rK   z1ArrowExtensionArray._str_encode.<locals>.<lambda>é
  s   ø€  §
¡
¨8°VÔ <rL   r%  )rÊ   r4  rÜ   r(  ry   s    ``  rJ   Ú_str_encodezArrowExtensionArray._str_encodeè
  s4   ù€ Ü<ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                ó  — |rt        d«      ‚t        j                  |«      j                  j	                  «       }t        |«      dk(  rt        d|›d�«      ‚t        j                  | j                  |«      }|rct        |t        |j                  j                  «      d¬«      D ��ci c],  \  }}|| j                  t        j                  ||g«      «      “Œ. c}}S  t        | «      t        j                  |dg«      «      S c c}}w )NzOnly flags=0 is implemented.r   zpat=z$ must contain a symbolic group name.Tr�  )rû   ÚreÚcompileÚ
groupindexÚkeysr  rÉ   rE   Úextract_regexrÂ   rŠ  rˆ  rb   Ú
num_fieldsrÿ   Ústruct_field)rÊ   r  r3  r'  Úgroupsry   ÚcolÚis           rJ   Ú_str_extractz ArrowExtensionArray._str_extractí
  sè   € ÙÜ%Ð&DÓEÐEÜ—‘˜C“×+Ñ+×0Ñ0Ó2ˆÜˆv‹;˜!ÒÜ  ˜vÐ%IÐJÓKÐKÜ×!Ñ! $§.¡.°#Ó6ˆÙô " &¬%°·±×0FÑ0FÓ*GÐPTÕUôáU‘F�C˜ð �T×-Ñ-¬b¯o©o¸fÀqÀcÓ.JÓKÑKØUòð ð
 ”4˜“:œbŸo™o¨f°q°cÓ:Ó;Ð;ùós   Â(1Dc                ó¦   ‡— t        j                  ||¬«      Šˆfd„}| j                  |«      }| j                  t	        j
                  |«      «      S )N)r3  c                ó&   •— ‰j                  | «      S rD   )Úfindall)rX  Úregexs    €rJ   rK   z2ArrowExtensionArray._str_findall.<locals>.<lambda>þ
  s   ø€  §¡¨cÔ 2rL   )r7  r8  r  rÿ   r`   rÇ   )rÊ   r  r3  r(  ry   rE  s        @rJ   Ú_str_findallz ArrowExtensionArray._str_findallü
  sD   ø€ Ü—
‘
˜3 eÔ,ˆÛ2ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                óŠ  — |€t         j                  }t        j                  | j                  |«      }t        j
                  |«      }|j                  «       }|j                  t        j                  j                  |«      «      }t        j                  |«      j                  d«      j                  «       }t        | «      }t        |«      }	t        j                  ||«      j                  «       }
|
t        j                   |«      j#                  |«      |	z  z   }
t%        |«      }t'        |t         j(                  «      r|}nt         j                  }t        j*                  ||	z  |¬«      }d||
<   |j-                  ||	f«      }| j/                  t        j0                  t3        |«      «      «      }||j5                  «       fS )Nr   r¼   T)r
  r÷   rE   Úsplit_patternrÂ   r¬  rW  rG  r`   rª  rì  r«  r¾  r0  r  Úindex_inr¶  Úrepeatr$   r´   r½   r6  r'  rÿ   rí   r‡  Ú	to_pylist)rÊ   r¦  r½   ÚsplitÚflattened_valuesr!  Úuniques_sortedÚlengthsÚn_rowsÚn_colsr  rÃ   Údummies_dtypeÚdummiesry   s                  rJ   Ú_str_get_dummiesz$ArrowExtensionArray._str_get_dummies  s[  € Øˆ=Ü—H‘HˆEÜ× Ñ  §¡°Ó5ˆÜŸ?™?¨5Ó1ÐØ"×)Ñ)Ó+ˆØ Ÿ™¤b§j¡j×&CÑ&CÀGÓ&LÓMˆÜ×&Ñ& uÓ-×7Ñ7¸Ó:×CÑCÓEˆÜ�T“ˆÜ�W“ˆÜ—+‘+Ð.°Ó?×HÑHÓJˆØœBŸI™I fÓ-×4Ñ4°WÓ=ÀÑFÑFˆÜ˜eÓ$ˆä�fœbŸh™hÔ'Ø"‰MäŸH™HˆMÜ—(‘(˜6 F™?°-Ô@ˆØˆ�ÑØ—/‘/ 6¨6Ð"2Ó3ˆØ×)Ñ)¬"¯(©(´4¸³=Ó*AÓBˆØ�~×/Ñ/Ó1Ð1Ð1rL   c                ó€   ‡‡‡— ˆˆˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó*   •— | j                  ‰‰‰«      S rD   )rô  ©rX  ÚendrM  r   s    €€€rJ   rK   z0ArrowExtensionArray._str_index.<locals>.<lambda>  ó   ø€  §	¡	¨#¨u°cÔ :rL   r%  ©rÊ   r   rM  rX  r(  ry   s    ```  rJ   Ú
_str_indexzArrowExtensionArray._str_index  ó4   ú€ Ý:ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                ó€   ‡‡‡— ˆˆˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó*   •— | j                  ‰‰‰«      S rD   )ÚrindexrW  s    €€€rJ   rK   z1ArrowExtensionArray._str_rindex.<locals>.<lambda>   s   ø€  §
¡
¨3°°sÔ ;rL   r%  rZ  s    ```  rJ   Ú_str_rindexzArrowExtensionArray._str_rindex  s4   ú€ Ý;ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                óx   ‡— ˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó0   •— t        j                  ‰| «      S rD   )ÚunicodedataÚ	normalize)rX  Úforms    €rJ   rK   z4ArrowExtensionArray._str_normalize.<locals>.<lambda>%  s   ø€ ¤× 5Ñ 5°d¸CÔ @rL   r%  )rÊ   re  r(  ry   s    `  rJ   Ú_str_normalizez"ArrowExtensionArray._str_normalize$  s4   ø€ Û@ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                ó€   ‡‡‡— ˆˆˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó*   •— | j                  ‰‰‰«      S rD   )ÚrfindrW  s    €€€rJ   rK   z0ArrowExtensionArray._str_rfind.<locals>.<lambda>*  rY  rL   r%  rZ  s    ```  rJ   Ú
_str_rfindzArrowExtensionArray._str_rfind)  r\  rL   c                ó  — |dv rd }|€t         j                  }nM|r&t        j                  t         j                  |¬«      }n%t        j                  t         j
                  |¬«      }| j                   || j                  |¬«      «      S )N¾   r   r  )Úpattern)Ú
max_splits)rE   Úutf8_split_whitespaceÚ	functoolsÚpartialÚsplit_pattern_regexrH  rÿ   rÂ   )rÊ   r  r·  r'  rE  Ú
split_funcs         rJ   Ú
_str_splitzArrowExtensionArray._str_split.  so   € ð �‰<ØˆAØˆ;Ü×1Ñ1‰JÙÜ"×*Ñ*¬2×+AÑ+AÈ3ÔO‰Jä"×*Ñ*¬2×+;Ñ+;ÀSÔIˆJØ×'Ñ'©
°4·>±>ÈaÔ(PÓQÐQrL   c                óØ   — |dv rd }|€1| j                  t        j                  | j                  |d¬«      «      S | j                  t        j                  | j                  ||d¬«      «      S )Nrl  T)rn  Úreverse)rÿ   rE   ro  rÂ   rH  )rÊ   r  r·  s      rJ   Ú_str_rsplitzArrowExtensionArray._str_rsplit?  si   € Ø�‰<ØˆAØˆ;Ø×+Ñ+Ü×(Ñ(¨¯©ÀAÈtÔTóð ð ×'Ñ'Ü×Ñ˜TŸ^™^¨S¸QÈÔMó
ð 	
rL   c                óx   ‡— ˆfd„}| j                  |«      }| j                  t        j                  |«      «      S )Nc                ó&   •— | j                  ‰«      S rD   )Ú	translate)rX  Útables    €rJ   rK   z4ArrowExtensionArray._str_translate.<locals>.<lambda>K  s   ø€  §¡¨eÔ 4rL   r%  )rÊ   r{  r(  ry   s    `  rJ   Ú_str_translatez"ArrowExtensionArray._str_translateJ  s4   ø€ Û4ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                ó¬   ‡— ||d<   t        j                  di |¤ŽŠˆfd„}| j                  |«      }| j                  t	        j
                  |«      «      S )NÚwidthc                óD   •— dj                  ‰j                  | «      «      S )NÚ
)ÚjoinÚwrap)rX  Útws    €rJ   rK   z/ArrowExtensionArray._str_wrap.<locals>.<lambda>R  s   ø€  §	¡	¨"¯'©'°#«,Ô 7rL   rÓ  )ÚtextwrapÚTextWrapperr  rÿ   r`   rÇ   )rÊ   r~  ra  r(  ry   rƒ  s        @rJ   Ú	_str_wrapzArrowExtensionArray._str_wrapO  sP   ø€ Øˆˆw‰Ü×!Ñ!Ñ+ FÑ+ˆÛ7ˆ	Ø×(Ñ(¨Ó3ˆØ×'Ñ'¬×(8Ñ(8¸Ó(@ÓAÐArL   c                óâ   ‡— t         r:ˆfd„}| j                  |«      } t        | «      t        j                  |«      «      S  t        | «      t        j                  | j                  ‰«      «      S )Nc                ó&   •— | j                  ‰«      S rD   )Úzfill)rX  r~  s    €rJ   rK   z0ArrowExtensionArray._str_zfill.<locals>.<lambda>X  s   ø€  C§I¡I¨eÔ$4rL   )r   r  rb   r`   rÇ   rE   Ú
utf8_zfillrÂ   )rÊ   r~  r(  ry   s    `  rJ   Ú
_str_zfillzArrowExtensionArray._str_zfillV  sW   ø€ ÝÛ4ˆIØ×,Ñ,¨YÓ7ˆFØ”4˜“:œb×.Ñ.¨vÓ6Ó7Ð7ØŒt�D‹zœ"Ÿ-™-¨¯©¸Ó>Ó?Ð?rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S ©NT)r  rb   )rÿ   r`   rí   r8  Ú
componentsÚdaysrS  rh  s    rJ   Ú_dt_dayszArrowExtensionArray._dt_days]  sE   € à×'Ñ'Ü�H‰HØ×'Ñ'Ó)×4Ñ4×9Ñ9Ø Ü—X‘X“Zôó
ð 	
rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S r�  )rÿ   r`   rí   r8  rŽ  ÚhoursrS  rh  s    rJ   Ú	_dt_hourszArrowExtensionArray._dt_hoursg  sE   € à×'Ñ'Ü�H‰HØ×'Ñ'Ó)×4Ñ4×:Ñ:Ø Ü—X‘X“Zôó
ð 	
rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S r�  )rÿ   r`   rí   r8  rŽ  ÚminutesrS  rh  s    rJ   Ú_dt_minuteszArrowExtensionArray._dt_minutesq  óE   € à×'Ñ'Ü�H‰HØ×'Ñ'Ó)×4Ñ4×<Ñ<Ø Ü—X‘X“Zôó
ð 	
rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S r�  )rÿ   r`   rí   r8  rŽ  ÚsecondsrS  rh  s    rJ   Ú_dt_secondszArrowExtensionArray._dt_seconds{  r—  rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S r�  )rÿ   r`   rí   r8  rŽ  ÚmillisecondsrS  rh  s    rJ   Ú_dt_millisecondsz$ArrowExtensionArray._dt_milliseconds…  óE   € à×'Ñ'Ü�H‰HØ×'Ñ'Ó)×4Ñ4×AÑAØ Ü—X‘X“Zôó
ð 	
rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S r�  )rÿ   r`   rí   r8  rŽ  ÚmicrosecondsrS  rh  s    rJ   Ú_dt_microsecondsz$ArrowExtensionArray._dt_microseconds�  rž  rL   c                ó¸   — | j                  t        j                  | j                  «       j                  j
                  dt        j                  «       ¬«      «      S r�  )rÿ   r`   rí   r8  rŽ  ÚnanosecondsrS  rh  s    rJ   Ú_dt_nanosecondsz#ArrowExtensionArray._dt_nanoseconds™  sE   € à×'Ñ'Ü�H‰HØ×'Ñ'Ó)×4Ñ4×@Ñ@Ø Ü—X‘X“Zôó
ð 	
rL   c                óþ   — | j                   j                  «       }| j                  j                  j                  dk(  r!|D �cg c]  }|€d n|j                  «       ‘Œ }}t        j                  |t        ¬«      S c c}w )Nrá   r¼   )	rÂ   rK  rÃ   rµ   r¸   Úto_pytimedeltar
  rí   r  )rÊ   r~  Útss      rJ   Ú_dt_to_pytimedeltaz&ArrowExtensionArray._dt_to_pytimedelta£  si   € Ø�~‰~×'Ñ'Ó)ˆØ�;‰;×$Ñ$×)Ñ)¨TÒ1ÙJNÓOÉ$ÀB˜B˜J‘D¨B×,=Ñ,=Ó,?Ñ?È$ˆDÐOÜ�x‰x˜¤FÔ+Ð+ùò Ps   ÁA:c                ó  — | j                   j                  j                  }dddddœ}t        j                  t        j
                  | j                   t        j                  «       «      ||   «      }| j                  |«      S )Ng      ð?g     @�@g    €„.Ag    eÍÍA)r  r  Úusrá   )	rÂ   rb   r¸   rE   rr   r
   r`   rñ   rÿ   )rÊ   r¸   Úunit_per_secondry   s       rJ   Ú_dt_total_secondsz%ArrowExtensionArray._dt_total_seconds©  sa   € Ø�~‰~×"Ñ"×'Ñ'ˆØ #¨3°cÀÑEˆÜ—‘œ2Ÿ7™7 4§>¡>´2·8±8³:Ó>ÀÐPTÑ@UÓVˆØ×'Ñ'¨Ó/Ð/rL   c                óœ  — | j                   j                  }t        j                  j	                  |«      r"t        j
                  ||j                  ¬«      }nCt        j                  j                  |«      rt        j                  |«      }nt        d|› �«      ‚t        j                  | j                   |d¬«      }| j                  |«      S )Nr  zas_unit not implemented for Fr^   )rÂ   rb   r`   ra   rê   r·   r¹   rî   r  rû   rE   r
   rÿ   )rÊ   r¸   rÑ   Útarget_typery   s        rJ   Ú_dt_as_unitzArrowExtensionArray._dt_as_unit¯  s‘   € Ø—.‘.×%Ñ%ˆÜ�8‰8× Ñ  Ô)ÜŸ,™, t°·
±
Ô;‰KÜ�X‰X×!Ñ! 'Ô*ÜŸ+™+ dÓ+‰Kä%Ð(DÀWÀIÐ&NÓOÐOä—‘˜Ÿ™¨¸5ÔAˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   ÚyearrÂ   rÿ   r  s     rJ   Ú_dt_yearzArrowExtensionArray._dt_year»  ó%   € ä—‘˜Ÿ™Ó(ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   ÚdayrÂ   rÿ   r  s     rJ   Ú_dt_dayzArrowExtensionArray._dt_dayÀ  s%   € ä—‘˜Ÿ™Ó'ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   Úday_of_weekrÂ   rÿ   r  s     rJ   Ú_dt_day_of_weekz#ArrowExtensionArray._dt_day_of_weekÅ  ó%   € ä—‘ §¡Ó/ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   Úday_of_yearrÂ   rÿ   r  s     rJ   Ú_dt_day_of_yearz#ArrowExtensionArray._dt_day_of_yearÍ  rº  rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   ÚhourrÂ   rÿ   r  s     rJ   Ú_dt_hourzArrowExtensionArray._dt_hourÔ  r³  rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   Úiso_calendarrÂ   rÿ   r  s     rJ   Ú_dt_isocalendarz#ArrowExtensionArray._dt_isocalendarÙ  s%   € Ü—‘ §¡Ó0ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   Úis_leap_yearrÂ   rÿ   r  s     rJ   Ú_dt_is_leap_yearz$ArrowExtensionArray._dt_is_leap_yearÝ  s%   € ä—‘ §¡Ó0ˆØ×'Ñ'¨Ó/Ð/rL   c                óŠ   — t        j                  t        j                  | j                  «      d«      }| j	                  |«      S ©Nri   )rE   rö   rµ  rÂ   rÿ   r  s     rJ   Ú_dt_is_month_startz&ArrowExtensionArray._dt_is_month_startâ  s0   € ä—‘œ"Ÿ&™& §¡Ó0°!Ó4ˆØ×'Ñ'¨Ó/Ð/rL   c           	     óô   — t        j                  t        j                  t        j                  | j                  d¬«      t        j
                  | j                  d¬«      «      d«      }| j                  |«      S )Nrµ  r'  Úmonthri   ©rE   rö   Údays_betweenÚfloor_temporalrÂ   Úceil_temporalrÿ   r  s     rJ   Ú_dt_is_month_endz$ArrowExtensionArray._dt_is_month_endç  s\   € ä—‘Ü�O‰OÜ×!Ñ! $§.¡.°uÔ=Ü× Ñ  §¡°gÔ>óð ó
ˆð ×'Ñ'¨Ó/Ð/rL   c                ó  — t        j                  t        j                  t        j                  | j                  «      d«      t        j                  t        j
                  | j                  «      d«      «      }| j                  |«      S rÈ  ©rE   rQ   rö   rË  rÂ   rµ  rÿ   r  s     rJ   Ú_dt_is_year_startz%ArrowExtensionArray._dt_is_year_startò  sY   € ä—‘Ü�H‰H”R—X‘X˜dŸn™nÓ-¨qÓ1Ü�H‰H”R—V‘V˜DŸN™NÓ+¨QÓ/ó
ˆð ×'Ñ'¨Ó/Ð/rL   c                ó  — t        j                  t        j                  t        j                  | j                  «      d«      t        j                  t        j
                  | j                  «      d«      «      }| j                  |«      S )Né   é   rÒ  r  s     rJ   Ú_dt_is_year_endz#ArrowExtensionArray._dt_is_year_endú  sY   € ä—‘Ü�H‰H”R—X‘X˜dŸn™nÓ-¨rÓ2Ü�H‰H”R—V‘V˜DŸN™NÓ+¨RÓ0ó
ˆð ×'Ñ'¨Ó/Ð/rL   c                óÌ   — t        j                  t        j                  | j                  d¬«      t        j                  | j                  d¬«      «      }| j	                  |«      S )NÚquarterr'  rµ  )rE   rö   rÎ  rÂ   rÿ   r  s     rJ   Ú_dt_is_quarter_startz(ArrowExtensionArray._dt_is_quarter_start  sK   € ä—‘Ü×Ñ˜dŸn™n°9Ô=Ü×Ñ˜dŸn™n°5Ô9ó
ˆð ×'Ñ'¨Ó/Ð/rL   c           	     óô   — t        j                  t        j                  t        j                  | j                  d¬«      t        j
                  | j                  d¬«      «      d«      }| j                  |«      S )Nrµ  r'  rÙ  ri   rÌ  r  s     rJ   Ú_dt_is_quarter_endz&ArrowExtensionArray._dt_is_quarter_end
  s\   € ä—‘Ü�O‰OÜ×!Ñ! $§.¡.°uÔ=Ü× Ñ  §¡°iÔ@óð ó
ˆð ×'Ñ'¨Ó/Ð/rL   c                óÌ   — t        j                  t        j                  | j                  d¬«      t        j                  | j                  d¬«      «      }| j                  |«      S )NrË  r'  )rE   rÍ  rÎ  rÂ   rÏ  rÿ   r  s     rJ   Ú_dt_days_in_monthz%ArrowExtensionArray._dt_days_in_month  sK   € ä—‘Ü×Ñ˜dŸn™n°7Ô;Ü×Ñ˜TŸ^™^°'Ô:ó
ˆð ×'Ñ'¨Ó/Ð/rL   c                óô   — t        j                  | j                  «      }t        j                  t        j                  | j                  «      d«      }t        j
                  ||«      }| j                  |«      S )Niè  )rE   ÚmicrosecondrÂ   rm   Úmillisecondr{   rÿ   )rÊ   rª  Úms_to_usry   s       rJ   Ú_dt_microsecondz#ArrowExtensionArray._dt_microsecond  sT   € ô �^‰^˜DŸN™NÓ+ˆÜ—;‘;œrŸ~™~¨d¯n©nÓ=¸tÓDˆÜ—‘˜˜HÓ%ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   ÚminuterÂ   rÿ   r  s     rJ   Ú
_dt_minutezArrowExtensionArray._dt_minute'  ó%   € ä—‘˜4Ÿ>™>Ó*ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   rË  rÂ   rÿ   r  s     rJ   Ú	_dt_monthzArrowExtensionArray._dt_month,  s%   € ä—‘˜$Ÿ.™.Ó)ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   Ú
nanosecondrÂ   rÿ   r  s     rJ   Ú_dt_nanosecondz"ArrowExtensionArray._dt_nanosecond1  s%   € ä—‘˜tŸ~™~Ó.ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   rÙ  rÂ   rÿ   r  s     rJ   Ú_dt_quarterzArrowExtensionArray._dt_quarter6  s%   € ä—‘˜DŸN™NÓ+ˆØ×'Ñ'¨Ó/Ð/rL   c                ób   — t        j                  | j                  «      }| j                  |«      S rD   )rE   ÚsecondrÂ   rÿ   r  s     rJ   Ú
_dt_secondzArrowExtensionArray._dt_second;  rç  rL   c                ó~   — | j                   j                  t        j                  «       «      }| j	                  |«      S rD   )rÂ   r
   r`   Údate32rÿ   r  s     rJ   Ú_dt_datezArrowExtensionArray._dt_date@  s-   € à—‘×$Ñ$¤R§Y¡Y£[Ó1ˆØ×'Ñ'¨Ó/Ð/rL   c                ó  — | j                   j                  j                  dv r | j                   j                  j                  nd}| j                  j	                  t        j                  |«      «      }| j                  |«      S )N>   rá   rª  rá   )r½   rµ   r¸   rÂ   r
   r`   Útime64rÿ   )rÊ   r¸   ry   s      rJ   Ú_dt_timezArrowExtensionArray._dt_timeE  sh   € ð �z‰z×'Ñ'×,Ñ,°Ñ<ð �J‰J×$Ñ$×)Ò)àð 	ð
 —‘×$Ñ$¤R§Y¡Y¨t£_Ó5ˆØ×'Ñ'¨Ó/Ð/rL   c                óh   — t        j                  | j                  j                  j                  «      S rD   )r   Úmaybe_get_tzr½   rµ   r¹   rh  s    rJ   Ú_dt_tzzArrowExtensionArray._dt_tzO  s#   € ä×%Ñ% d§j¡j×&>Ñ&>×&AÑ&AÓBÐBrL   c                óB   — | j                   j                  j                  S rD   )r½   rµ   r¸   rh  s    rJ   Ú_dt_unitzArrowExtensionArray._dt_unitS  s   € à�z‰z×'Ñ'×,Ñ,Ð,rL   c                óf   — t        j                  | j                  dd«      }| j                  |«      S )Nri   rµ  )rE   rÎ  rÂ   rÿ   r  s     rJ   Ú_dt_normalizez!ArrowExtensionArray._dt_normalizeW  s+   € Ü×"Ñ" 4§>¡>°1°eÓ<ˆØ×'Ñ'¨Ó/Ð/rL   c                óf   — t        j                  | j                  |¬«      }| j                  |«      S )N)Úformat©rE   ÚstrftimerÂ   rÿ   )rÊ   r   ry   s      rJ   Ú_dt_strftimez ArrowExtensionArray._dt_strftime[  s'   € Ü—‘˜TŸ^™^°FÔ;ˆØ×'Ñ'¨Ó/Ð/rL   c                ó~  — |dk7  rt        d«      ‚|dk7  rt        d«      ‚t        |«      }|€t        d|› �«      ‚dddddddd	d
ddddddœ}|j                  |j                  d «      }|€t        d|›d�«      ‚|j
                  }t        t        |› d�«      }	 |	| j                  ||¬«      }
| j                  |
«      S )NrÛ   zambiguous is not supported.znonexistent is not supported.z Must specify a valid frequency: r±  rÙ  rË  Úweekrµ  r¿  rå  rð  rá  rà  rë  )ÚYÚYSÚQÚQSÚMÚMSÚWÚDÚhr÷  r  r  rª  rá   zfreq=ú is not supportedÚ	_temporal)Úmultipler¸   )
rû   r:   rÉ   rë  Ú_prefixr·  r7  rE   rÂ   rÿ   )rÊ   r_  ÚfreqÚ	ambiguousÚnonexistentrì  Úpa_supported_unitr¸   r  Úrounding_methodry   s              rJ   Ú_round_temporallyz%ArrowExtensionArray._round_temporally_  sð   € ð ˜ÒÜ%Ð&CÓDÐDØ˜'Ò!Ü%Ð&EÓFÐFÜ˜4“ˆØˆ>ÜÐ?À¸vÐFÓGÐGàØØØØØØØØØØØØØñ
Ðð  !×$Ñ$ V§^¡^°TÓ:ˆØˆ<Ü  ˜wÐ&7Ð8Ó9Ð9Ø—8‘8ˆÜ!¤"¨¨°	Ð&:Ó;ˆÙ  §¡¸(ÈÔNˆØ×'Ñ'¨Ó/Ð/rL   c                ó*   — | j                  d|||«      S )NÚceil©r  ©rÊ   r  r  r  s       rJ   Ú_dt_ceilzArrowExtensionArray._dt_ceil…  s   € ð ×%Ñ% f¨d°I¸{ÓKÐKrL   c                ó*   — | j                  d|||«      S )Nrs   r  r  s       rJ   Ú	_dt_floorzArrowExtensionArray._dt_floor�  ó   € ð ×%Ñ% g¨t°YÀÓLÐLrL   c                ó*   — | j                  d|||«      S )Nr*  r  r  s       rJ   Ú	_dt_roundzArrowExtensionArray._dt_round•  r   rL   c                óp   — |€d}t        j                  | j                  d|¬«      }| j                  |«      S )NÚCz%A©r   Úlocaler  ©rÊ   r&  ry   s      rJ   Ú_dt_day_namez ArrowExtensionArray._dt_day_name�  ó3   € Øˆ>ØˆFÜ—‘˜TŸ^™^°DÀÔHˆØ×'Ñ'¨Ó/Ð/rL   c                óp   — |€d}t        j                  | j                  d|¬«      }| j                  |«      S )Nr$  z%Br%  r  r'  s      rJ   Ú_dt_month_namez"ArrowExtensionArray._dt_month_name£  r)  rL   c                ó   — ddl m} t        j                  j	                  | j
                  j                  «      r#t        d| j
                  j                  › d�«      ‚| j                  j                  «       }| j                  j                  j                  dk(  r#|D �cg c]  }|€d n|j                  d¬«      ‘Œ }} ||t        ¬«      S c c}w )	Nr   r®   z$to_pydatetime cannot be called with z) type. Convert to pyarrow timestamp type.rá   F)r±  r¼   )r]  r¯   r`   ra   rì   r½   rµ   rÉ   rÂ   rK  rÃ   r¸   Úto_pydatetimer  )rÊ   r¯   r~  r§  s       rJ   Ú_dt_to_pydatetimez%ArrowExtensionArray._dt_to_pydatetime©  s·   € Ý!ä�8‰8×Ñ˜DŸJ™J×4Ñ4Ô5ÜØ6°t·z±z×7OÑ7OÐ6Pð Q5ð 5óð ð �~‰~×'Ñ'Ó)ˆØ�;‰;×$Ñ$×)Ñ)¨TÒ1ÙSWÓXÑSWÈR˜B˜J‘D¨B×,<Ñ,<À%Ð,<Ó,HÑHÐSWˆDÐXÙ�d¤&Ô)Ð)ùò Ys   ÂCc                ó6  — |dk7  rt        d|›d�«      ‚ddddœj                  |d «      }|€t        d|›d�«      ‚|€ t        j                  | j                  «      }n,t        j
                  | j                  t        |«      ||¬«      }| j                  |«      S )	NrÛ   z
ambiguous=r  ÚearliestÚlatest)rÛ   Úshift_backwardÚshift_forwardznonexistent=)r  r  )rû   rë  rE   Úlocal_timestamprÂ   Úassume_timezoneÚstrrÿ   )rÊ   r¹   r  r  Únonexistent_pary   s         rJ   Ú_dt_tz_localizez#ArrowExtensionArray._dt_tz_localize¶  s°   € ð ˜ÒÜ%¨¨¨Ð4EÐ&FÓGÐGàØ(Ø%ñ
÷ ‰#ØØó
ð	 	ð Ð!Ü%¨¨¨Ð6GÐ&HÓIÐIØˆ:Ü×'Ñ'¨¯©Ó7‰Fä×'Ñ'Ø—‘¤ B£°9È.ôˆFð ×'Ñ'¨Ó/Ð/rL   c                ó  — | j                   j                  j                  €t        d«      ‚| j                   j                  j                  }| j
                  j                  t        j                  ||«      «      }| j                  |«      S )Nz?Cannot convert tz-naive timestamps, use tz_localize to localize)
r½   rµ   r¹   r  r¸   rÂ   r
   r`   r·   rÿ   )rÊ   r¹   Úcurrent_unitry   s       rJ   Ú_dt_tz_convertz"ArrowExtensionArray._dt_tz_convertÐ  so   € Ø�:‰:×#Ñ#×&Ñ&Ð.ÜØQóð ð —z‘z×/Ñ/×4Ñ4ˆØ—‘×$Ñ$¤R§\¡\°,ÀÓ%CÓDˆØ×'Ñ'¨Ó/Ð/rL   )rË   úpa.Array | pa.ChunkedArrayrõ  ÚNone)r½   zDtype | NonerÏ   r„  rõ  r	   )r½   r­   rÏ   r„  rõ  r	   )rõ  r�   rD   )rÑ   úpa.DataType | Nonerõ  z&pa.Array | pa.ChunkedArray | pa.Scalar)rÑ   r>  rõ  ú	pa.ScalarrÃ  )rÑ   r>  rÏ   r„  rõ  r<  )rR  r¦   )rõ  zIterator[Any])r^  znp.ufuncr_  r6  )NN)r½   úNpDtype | NonerÏ   úbool | Nonerõ  ú
np.ndarray)rõ  r	   )rõ  r=  )rõ  rÀ   )rõ  r6  )rõ  zSelf | npt.NDArray[np.object_])rõ  r„  )rõ  r<   )rõ  r´  )rõ  únpt.NDArray[np.bool_])r¶  zLiteral[True]rõ  r„  )r¶  r„  rõ  zbool | NAType)râ  r„  r	  r¨   rã  r6  rõ  rB  )r¶  r„  r_  r6  rõ  r´  )T)r¶  r„  rõ  r´  )
r_  r    r  ú
int | Noner  z#Literal['inside', 'outside'] | NonerÏ   r„  rõ  r	   )NT)r  zobject | ArrayLiker  rD  rÏ   r„  rõ  r	   )rË   r�   rõ  rC  )rõ  ztuple[np.ndarray, Any])r  r„  rõ  z!tuple[np.ndarray, ExtensionArray]r™  )r+  r´  rõ  r	   )rt   N)r  z$NumpyValueArrayLike | ExtensionArrayr-  zLiteral['left', 'right']r.  zNumpySorter | Nonerõ  znpt.NDArray[np.intp] | np.intp)FN)r  r©   r3  r„  r  r   rõ  rÀ   )rõ  r°   )rõ  r²   )rõ  rB  )r½   znpt.DTypeLike | NonerÏ   r„  r  r  rõ  rB  )rK  zLiteral['ignore'] | None)rè  )rN  zLiteral['first', 'last', False]rõ  rC  )r  r„  rõ  r¯   )r\  r6  r¶  r„  rõ  z$ArrowExtensionArray | ExtensionArray)r\  r6  r¶  r„  rõ  r?  )r\  r6  r¶  r„  r¢  r„  )
r»  rž   r_  r6  r¼  r6  râ  r„  r½  r„  )r»  rž   r_  r6  r¼  r6  râ  r„  r½  r„  rõ  r	   )rÑ  znpt.NDArray[np.float64]rÐ  r6  rõ  r	   )r  r„  rõ  r	   )r_  r¡   r»  r´  rÏ   r„  rõ  r	   )r÷  únpt.NDArray[np.bool_] | boolrt   úArrayLike | Scalarru   rF  rõ  zpa.Array)rË   r<  rÞ   rE  rý  rF  rõ  r<  )
r  r6  r  r„  r‘  r´  r  r´  r  znpt.NDArray[np.intp])r
  rš   rõ  zlist[list[Any]])r  r6  r3  r´  rõ  r	   )r  zint | Sequence[int]rõ  r	   )r¦  r6  rõ  r	   )r¦  r6  r'  r„  rõ  r	   r�  )r4  r6  rÜ   r6  rõ  r	   )r   T)r  r6  r3  r´  r'  r„  )Ú|N)r¦  r6  r½   r@  rë  )r   r6  rM  r´  rX  rD  rõ  r	   )re  z%Literal['NFC', 'NFD', 'NFKC', 'NFKD']rõ  r	   )r   r6  rM  r´  rõ  r	   )Nr  FN)
r  ú
str | Noner·  rD  r'  r„  rE  rA  rõ  r	   )Nr  )r  rH  r·  rD  rõ  r	   )r{  zdict[int, str]rõ  r	   )r~  r´  rõ  r	   )r¸   r6  rõ  r	   )r   r6  rõ  r	   )rÛ   rÛ   )r_  z!Literal['ceil', 'floor', 'round']r  rª   r  r«   rõ  r	   )r  rª   r  r«   rõ  r	   )r&  rH  rõ  r	   )rõ  r¯   )¡r†  Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rÍ   Úclassmethodr×   rý   rÿ   r  r  r  rÒ   rT  rY  r%  r]  rd  ri  rn  rq  rt  ry  r  r”  rš  rª  r³  r¹  rÁ  rÄ  Úpropertyr½   rÇ  rÉ  rÌ  rÏ  r&   r   rË  rÝ  rï  rõ  rú  rþ  rÏ   r  r  r   r/   r:  r  r  r$  r'  r*  r/  rG  r9  r7  r8  rB  r0  r   rF  rL  rU  rW  r^  rh  rs  rr  r   rÚ  r¤  r©  r¸  rÌ  rÄ  rÒ  r×  r°  rç  r³  rµ  r  r  r  r  r  rÎ  r  r  r   r)  r-  r1  r5  rA  rF  rT  r[  r`  rf  rj  rt  rw  r|  r†  r‹  r�  r“  r–  rš  r�  r¡  r¤  r¨  r¬  r¯  r²  r¶  r¹  Ú_dt_dayofweekÚ_dt_weekdayr½  Ú_dt_dayofyearrÀ  rÃ  rÆ  rÉ  rÐ  rÓ  r×  rÚ  rÜ  rÞ  Ú_dt_daysinmonthrã  ræ  ré  rì  rî  rñ  rô  r÷  rú  rü  rþ  r  r  r  r  r"  r(  r+  r.  r8  r;  Ú__classcell__)rb  s   @rJ   rÀ   rÀ   ú   s]  ø… ñ0ðd ÓØÓó6ð" à/3À%ñ	Ø ,ð	Ø;?ð	à	ò	ó ð	ð à=BñSEØ .ðSEØ6:ðSEà	òSEó ðSEòj$óL-ð\ à26ð1Ø/ð1à	/ò1ó ð1ð& ó%ó ð%ðN àEJðUØ/ðUØ>BðUà	#òUó ðUón_óBó(õð AEð5Ø#ð5Ø2=ð5à	ó5ó
Góó8óHò
ó
$ó5+ón
óH0óTLð6Cà	'óCó.ó(1ð òó ðð ò%ó ð%ó#õ/ð ò-ó ð-ó3ð Ø-0ÔHó ØHàÚBó ØBà$(õ 8<ðt Ø-0ÔHó ØHàÚBó ØBà$(õ 8<ðz Ø$Ø!ñ5ð ð5ð ð	5ð
 ð5ð 
ó5õ&-ô /ô/ó
8óFð !Ø:>Øñ"
ð ð"
ð ð	"
ð
 8ð"
ð ð"
ð 
õ"
ñH 	ˆ×	Ñ	Óð !Øð	&Cà!ð&Cð ð&Cð ð	&Cð
 
ô&Có  ð&CóP	0ó+ñ" 	ˆ×	!Ñ	!Ó"ð !%ð! àð! ð 
+ò! ó #ð! òF
ôTñ0 	ˆ×	$Ñ	$Ó%ð *0Ø%)ð	Xà3ðXð 'ðXð #ð	Xð
 
(òXó &ðXð8 !Øð	ZPàðZPð ðZPð ð	ZPð
 
óZPòxó@ó	Dõ*ñ
 	ˆ×	 Ñ	 Ó!ð '+ØØŸ>™>ð	;à#ð;ð ð;ð ð	;ð
 
ò;ó "ð;öz2ñ 	ˆ×	"Ñ	"Ó#à6=ð>Ø3ð>à	ò>ó $ð>ó.	3ô$EðL ò5ó ð5ð, ,0ñB0ØðB0Ø$(ðB0à	-õB0ðJ ,0ñ1Øð1Ø$(ð1à	-ó1ðf <@÷ Vðr ,0À%ñØðØ$(ðØ;?óðB ,0À%ñØðØ$(ðØ;?óô8ó6Xðz ØØØØñ>ð ð>ð ð	>ð
 ð>ð ð>ð õ>ðF ØØØØñ
ð ð
ð ð	
ð
 ð
ð ð
ð ð
ð 
ó
ó,%0ôN(5òTð5Wð #ð5Wð ð	5Wð ð5Wð 
ó5Wðn ð=Gà*ð=Gð !ð=Gð "ð	=Gð
 
ò=Gó ð=Gð~ ð)Kà*ð)Kð +ð)Kð )ð	)Kð
 
$ò)Kó ð)Kò\7ð<7ð ð<7ð ð	<7ð
 ð<7ð ð<7ð "õ<7ó|
ð /2¯n©nÈ$ó 0ò
0ò0ôWó
SóEóBó
Bó
Bô
Bô
<ôBô2ô0Bô
Bó
Bô
Bð ØØØ!ðRàðRð ðRð ð	Rð
 ðRð 
óRô"	
óBó
Bó@ð ò
ó ð
ð ò
ó ð
ð ò
ó ð
ð ò
ó ð
ð ò
ó ð
ð ò
ó ð
ð ò
ó ð
ó,ó0ó
0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð $€MØ!€Kàò0ó ð0ð $€Màò0ó ð0ó0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð (€Oàò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ò0ó ð0ð ñCó ðCð ñ-ó ð-ó0ó0ð $+Ø'.ð$0à1ð$0ð !ð	$0ð
 %ð$0ð 
ó$0ðR $+Ø'.ð	Lð !ðLð %ð	Lð
 
óLð $+Ø'.ð	Mð !ðMð %ð	Mð
 
óMð $+Ø'.ð	Mð !ðMð %ð	Mð
 
óMõ0õ0ô*ð  $+Ø'.ð	0ð !ð0ð %ð	0ð
 
ó0÷40rL   rÀ   c           	     óî  — t        | «      } t        | d   «      t        | «      }}t        j                  ||z  «      j	                  ||«      j
                  j	                  d«      }t        j                  | D ��cg c]  }|j                  j                  D ]  }|‘Œ Œ! c}}«      }|j                  |«      }t        |«      D �cg c]   }t        |j                  ||z  |«      «      ‘Œ" c}S c c}}w c c}w )zÒTranspose arrow extension arrays in a list, but faster.

    Input should be a list of arrays of equal length and all have the same
    dtype. The caller is responsible for ensuring validity of input data.
    r   r  )r‡  r  r
  r¶  r'  ÚTr`   rÇ   rÂ   rg  rG  rˆ  rÀ   rL  )ÚarraysÚnrowsÚncolsr  rÖ   r  r@  s          rJ   Útranspose_homogeneous_pyarrowrY  Ú  sÉ   € ô �&‹\€FÜ�v˜a‘y“>¤3 v£;ˆ5€EÜ�i‰i˜ ™Ó&×.Ñ.¨u°eÓ<×>Ñ>×FÑFÀrÓJ€GÜ
×
Ñ
©VÔV©V cÀÇÁ×AUÔAU¸šEÐAU˜E¨VÒVÓ
W€CØ
�(‰(�7Ó
€CÜFKÈEÄlÓSÁlÀÔ §	¡	¨!¨e©)°UÓ ;Õ<ÀlÑSÐSùó WùâSs   Á:$C,
Ã%C2)rd   rÁ   re   zpa.Array | pa.Scalarrõ  z,tuple[pa.ChunkedArray, pa.Array | pa.Scalar])rt   ú&pa.ChunkedArray | pa.Array | pa.Scalarru   rZ  rõ  rÁ   )r½   z'ArrowDtype | pa.DataType | Dtype | Nonerõ  r>  )rV  zSequence[ArrowExtensionArray]rõ  zlist[ArrowExtensionArray])žÚ
__future__r   r   r   rp  r�  r7  r„  Útypingr   r   r   r	   r
   r   rc  r°  Únumpyr
  Úpandas._configr   Úpandas._libsr   Úpandas._libs.missingr   Úpandas._libs.tslibsr   r   r   Úpandas.compatr   r   r   Úpandas.errorsr   Úpandas.util._decoratorsr   r   Úpandas.util._exceptionsr   Úpandas.core.dtypes.castr   r   r   Úpandas.core.dtypes.commonr   r   r   r   r    r!   r"   r#   r$   Úpandas.core.dtypes.dtypesr%   Úpandas.core.dtypes.missingr&   Úpandas.corer'   rT  r(   r)   r*   Úpandas.core.algorithmsr+   Úpandas.core.arrayliker,   Ú'pandas.core.arrays._arrow_string_mixinsr-   Úpandas.core.arrays._utilsr.   Úpandas.core.arrays.baser/   r0   Úpandas.core.arrays.maskedr1   Úpandas.core.arrays.string_r2   Úpandas.core.commonÚcoreÚcommonr±  Úpandas.core.constructionr3   Úpandas.core.indexersr4   r5   r6   r7   Úpandas.core.nanopsr8   Úpandas.io._utilr9   Úpandas.tseries.frequenciesr:   rC  r`   Úpyarrow.computerª  rE   Úpandas.compat.pyarrowr;   r<   rö   rl   rn   ÚgreaterÚ
less_equalÚgreater_equalr…  rF   rN   rP   r¡  rW   rY   r\   r®  rf   rz   r~   r‚   r‡   r¢  r™   r¼  Úcollections.abcrš   r›   rœ   Úpandas._typingr�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r]  r¯   r1  r°   r?  r²   r¾   rÀ   rY  rÓ  rL   rJ   Ú<module>r�     s  ðÝ "÷ó Û Û 	Û ÷÷ ó Û ã å $å Ý 0÷ñ ÷
ñ õ
 )÷õ 5÷ñ ÷

÷ 
õ 
õ 6Ý +÷ó õ -Ý *Ý IÝ >÷õ 6Ý 2ß  Ð  Ý 2÷ó õ 5å 0Ý 0âÛÝ å5å4ð �h‰hØ�l‰lØ�g‰gØ�j‰jØ�m‰mØ×Ññ€Oð —‘Ù1Ø�|‰|Ù/Ø�v‰vÙ)ñÐð —‘Ù3Ø�~‰~Ù1Ø�‰Ù2ñÐð&Ø$ð&Ø1Eð&à	5ó&ð Ø4ðà5ðð 
óð@Øˆr�~‰~ðàÑ1ðð 	ˆr×"Ñ"ðð 	Ñ6ð	ð
 	ˆr×"Ñ"ðð 	Ñ6ðð 	ÑBðð 	ÑCðð 	Ñ6ðð 	Ñ7ðð 	ˆ~ðð 	�ðð 	�.ðð 	�>ðð 	ˆr×Ñðð  	Ñ3ð!Ðñ& ÷õ
 ,÷÷ ÷ ÷ ó õ& 9åÝ:Ý<ðØ2ðàóñ, ˆOÓô\/0ØØ Øó\/0ó ð\/0ð~^TØ)ðTàôTrL   