ó
    Eñi(G  ã                   ót   • S r SSKrSSKJr  SSKJrJr  \\R                  4r
S r " S S5      rS	 rS
 rS rg)z0Indexing mixin for sparse array/matrix classes.
é    Né   )Ú	isintlike)ÚsparrayÚissparsec                  óž   • [         R                  " U 6 n[        X5       H*  u  p#UR                  R                  UR                  l        M,     U$ )a  
Same as np.broadcast_arrays(a, b) but old writeability rules.

NumPy >= 1.17.0 transitions broadcast_arrays to return
read-only arrays. Set writeability explicitly to avoid warnings.
Retain the old writeability rules, as our Cython code assumes
the old behavior.
)ÚnpÚbroadcast_arraysÚzipÚflagsÚ	writeable)Úarraysr	   ÚxÚas       ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/sparse/_index.pyÚ_broadcast_arraysr   
   sC   € ô ×*Ò*¨FÐ3ÐÜÐ$Ö-‰ˆØŸG™G×-Ñ-ˆ�‰Öñ .àÐó    c                   óœ   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)Ú
IndexMixiné   zK
This class provides common dispatching and validation logic for indexing.
c                 óˆ
  • [        XR                  U R                  5      u  p#  n[        U5      S:”  a  [	        SU R                   S35      e[        U5      S:X  Ga6  US   n[        U[        R                  5      (       a   UR                  S:X  a  UR                  5       n[        U[        5      (       a  U R                  U5      nO8[        U[        5      (       a  U R                  U5      nOU R                  U5      n[        U [        5      (       d  U$ UR                  S:X  a[  US:w  aU  [        U5      S:X  a  U R                  U/X0R                   S9$ [        U5      S:X  a  U R                  U//X0R                   S9$ UR#                  U5      $ Uu  px[        U[        5      (       a¡  [        U[        5      (       a  U R%                  Xx5      nGO|[        U[        5      (       a  U R'                  Xx5      nGOTUR(                  S:X  a  U R+                  Xx5      nGO1UR(                  S:X  a  U R+                  Xx5      nGO[	        S5      e[        U[        5      (       a¤  [        U[        5      (       a  U R-                  Xx5      nGOÆ[        U[        5      (       a9  U[        S 5      :X  a  Xx:X  a  U R/                  5       nGO‹U R1                  Xx5      nGOxUR(                  S:X  a  U R3                  Xx5      nGOU[	        S5      e[        U[        5      (       a  U R5                  Xx5      nGO"[        U[        5      (       a  U R7                  Xx5      nOûUR(                  S:X  a_  UR                  S   S:X  aL  UR(                  S:X  d  UR                  S   S:X  a)  U R9                  US S 2S4   UR#                  S	5      5      nOŒ[;        Xx5      u  pxUR                  UR                  :w  a  [	        S
5      eUR<                  S:X  a9  U R                  [        R>                  " U5      R                  U R                   S9nOU RA                  Xx5      n[        U [        5      (       d]  US:X  d  [        U5      S:X  a  UR(                  S:w  a  U$ [        U5      S:X  a  SU-   nX6R                  :X  a  U$ UR#                  U5      $ UR                  U:w  ap  U R                  S:X  aO  [        U5      S:w  a@  UR                  S:X  a  U RC                  U/US9$ URE                  5       R#                  U5      $ UR#                  U5      $ U$ )Né   z/Indexing that leads to >2D is not supported by z% format. Try converting to COO formatr   r   © )ÚshapeÚdtypezindex results in >2 dimensionséÿÿÿÿú'number of row and column indices differ©r   )r   Úlil)r   )#Ú_validate_indicesr   ÚformatÚlenÚ
IndexErrorÚ
isinstancer   ÚndarrayÚitemÚ	INT_TYPESÚ_get_intÚsliceÚ
_get_sliceÚ
_get_arrayr   Ú	__class__r   ÚreshapeÚ_get_intXintÚ_get_intXsliceÚndimÚ_get_intXarrayÚ_get_sliceXintÚcopyÚ_get_sliceXsliceÚ_get_sliceXarrayÚ_get_arrayXintÚ_get_arrayXsliceÚ_get_columnXarrayr   ÚsizeÚ
atleast_2dÚ_get_arrayXarrayÚ_coo_containerÚtocoo)	ÚselfÚkeyÚindexÚ	new_shapeÚ_ÚidxÚresÚrowÚcols	            r   Ú__getitem__ÚIndexMixin.__getitem__   s;  € Ü!2°3¿
¹
ÀDÇKÁKÓ!PÑˆ˜!˜QÜˆy‹>˜AÓÜÐNØ $§¡˜}Ð,QðSó Tð Tô ˆu‹:˜Œ?Ø˜‘(ˆCÜ˜#œrŸz™z×*Ñ*Ø—9‘9 “?ØŸ(™(›*�CÜ˜#œy×)Ñ)Ø—m‘m CÓ(‘Ü˜C¤×'Ñ'Ø—o‘o cÓ*‘à—o‘o cÓ*�ô ˜d¤G×,Ñ,Ø�
à�y‰y˜B‹ 9°£?Ü�y“> QÓ&ØŸ>™>¨3¨%°yÏ
É
˜>ÐSÐSÜ�y“> QÓ&ØŸ>™>¨C¨5¨'¸Ï*É*˜>ÐUÐUØ—;‘;˜yÓ)Ð)ð ‰ˆô �cœ9×%Ñ%Ü˜#œy×)Ñ)Ø×'Ñ'¨Ó1’Ü˜C¤×'Ñ'Ø×)Ñ)¨#Ó3’Ø—‘˜Q“Ø×)Ñ)¨#Ó3’Ø—‘˜Q“Ø×)Ñ)¨#Ó3’ä Ð!AÓBÐBÜ˜œU×#Ñ#Ü˜#œy×)Ñ)Ø×)Ñ)¨#Ó3’Ü˜C¤×'Ñ'Øœ% ›+Ó%¨#«*ØŸ)™)›+’Cà×/Ñ/°Ó9’CØ—‘˜Q“Ø×+Ñ+¨CÓ5’ä Ð!AÓBÐBä˜#œy×)Ñ)Ø×)Ñ)¨#Ó3’Ü˜C¤×'Ñ'Ø×+Ñ+¨CÓ5‘à—(‘(˜a“- C§I¡I¨a¡L°AÓ$5Ø—x‘x 1“}¨¯	©	°!©¸Ó(9à×,Ñ,¨S²°A°©Y¸¿¹ÀB»ÓH‘ô -¨SÓ6‘�Ø—9‘9 §	¡	Ó)Ü$Ð%NÓOÐOØ—8‘8˜q“=ØŸ.™.¬¯ª°sÓ);×)AÑ)AÈÏÉ˜.ÐT‘Cà×/Ñ/°Ó9�Cô ˜$¤×(Ñ(Ø˜B‹¤3 y£>°QÓ#6¸3¿8¹8Àq»=à�
Ü�9‹~ Ó"à  9Ñ,�	à#§y¡yÓ0�3ÐL°c·k±kÀ)Ó6LÐLð �9‰9˜	Ó!à�{‰{˜eÓ#¬¨I«¸!Ó(;Ø—9‘9 “?Ø×.Ñ.°¨u¸iÐ.ÐHÐHØ—y‘y“{×*Ñ*¨9Ó5Ð5Ø—;‘;˜yÓ)Ð)Øˆ
r   c                 ó4  • [        XR                  U R                  5      u  p4  n[        U5      S:X  GaÆ  US   n[	        U5      (       a  UR                  5       nO[        R                  " X R                  S9n[        U[        5      (       a:  UR                  S:w  a  [        S5      eU R                  XbR                  S   5        g [        U[        5      (       a¤  [!        UR#                  U R                  S   5      6 n[        U5      nUS:X  a3  UR                  S:X  a#  U R                  US   UR                  S   5        g [        R$                  " UR#                  U R                  S   5      6 nUR                  n	OUR'                  5       R                  n	UR'                  5       R                  U	:w  a   [        R(                  " X&R                  5      nUR                  S:w  a  U R+                  Xb5        g Uu  p«[        U
[        5      (       a�  [        U[        5      (       az  [	        U5      (       a  UR                  5       nO[        R                  " X R                  S9nUR                  S:w  a  [        S5      eU R-                  X«UR                  S   5        g [        U
[        5      (       a7  [        R$                  " U
R#                  U R                  S   5      6 S S 2S 4   n
O[        R.                  " U
5      n
[        U[        5      (       aP  [        R$                  " UR#                  U R                  S   5      6 S S S 24   nU
R0                  S:X  a	  U
S S 2S 4   n
O[        R.                  " U5      n[3        X«5      u  pÍUR                  UR                  :w  a  [5        S5      e[	        U5      (       Ga$  SUR                  ;   a  g UR0                  S:X  a
  US    nUS    nUR7                  SS9R9                  UR:                  SS9nUR                  S   S:H  =(       a    UR                  S   S:g  nUR                  S   S:H  =(       a    UR                  S   S:g  nU(       d   UR                  S   UR                  S   :X  a'  U(       d+  UR                  S   UR                  S   :X  d  [        S	5      eUR=                  5         U R?                  XÍU5        g [        R                  " X R                  S9nUR'                  5       R                  UR'                  5       R                  :w  a   [        R(                  " X,R                  5      nUR                  S:X  a  g UR9                  UR                  5      nU RA                  XÍU5        g )
Nr   r   r   z&Trying to assign a sequence to an itemr   F)r2   Tzshape mismatch in assignment)!r   r   r    r!   r   Útoarrayr   Úasarrayr   r#   r&   r8   Ú
ValueErrorÚ_set_intÚflatr(   ÚrangeÚindicesÚarangeÚsqueezeÚbroadcast_toÚ
_set_arrayÚ_set_intXintÚ
atleast_1dr/   r   r"   r<   r,   Ú_shape_as_2dÚsum_duplicatesÚ_set_arrayXarray_sparseÚ_set_arrayXarray)r=   r>   r   r?   r@   rA   rB   Ú	idx_rangeÚNÚ	idx_shaperD   rE   ÚiÚjÚbroadcast_rowÚbroadcast_cols                   r   Ú__setitem__ÚIndexMixin.__setitem__   s  € Ü!2°3¿
¹
ÀDÇKÁKÓ!PÑˆ˜!˜Qô ˆu‹:˜Œ?Ø˜‘(ˆCä˜�{‰{Ø—I‘I“K‘ä—J’J˜q¯
©
Ñ3�ä˜#œy×)Ñ)Ø—6‘6˜Q“;Ü$Ð%MÓNÐNØ—‘˜c§6¡6¨!¡9Ô-Øä˜#œu×%Ñ%ô " 3§;¡;¨t¯z©z¸!©}Ó#=Ð>�	Ü˜	“N�Ø˜“6˜aŸf™f¨›kØ—M‘M )¨A¡,°·±°q±	Ô:ØÜ—i’i §¡¨T¯Z©Z¸©]Ó!;Ð<�ØŸI™I‘	àŸK™K›M×/Ñ/�	à�y‰y‹{× Ñ  IÓ-Ü—O’O A§y¡yÓ1�Ø�v‰v˜‹{Ø—‘ Ô'Øð ‰ˆä�cœ9×%Ñ%¬*°S¼)×*DÑ*DÜ˜�{‰{Ø—I‘I“K‘ä—J’J˜q¯
©
Ñ3�Ø�v‰v˜‹{Ü Ð!IÓJÐJØ×Ñ˜c¨¯©¨q©	Ô2Øä�cœ5×!Ñ!Ü—)’)˜SŸ[™[¨¯©°A©Ó7Ð8º¸D¸ÑA‰Cä—-’- Ó$ˆCä�cœ5×!Ñ!Ü—)’)˜SŸ[™[¨¯©°A©Ó7Ð8¸ºq¸ÑAˆCØ�x‰x˜1‹}Øš!˜T˜'‘l�øä—-’- Ó$ˆCä  Ó*‰ˆØ�7‰7�a—g‘gÓÜÐFÓGÐGä�A�;Š;Ø�A—G‘G‹|ØØ�v‰v˜‹{à�d‘G�Ø�d‘G�Ø—‘˜U�Ð#×+Ñ+¨A¯N©NÀÐ+ÐFˆAØŸG™G A™J¨!™O×?°·±¸±
¸a±ˆMØŸG™G A™J¨!™O×?°·±¸±
¸a±ˆMÞ" a§g¡g¨a¡j°A·G±G¸A±JÓ&>Þ" a§g¡g¨a¡j°A·G±G¸A±JÓ&>Ü Ð!?Ó@Ð@Ø×ÑÔØ×(Ñ(¨¨qÕ1ô —
’
˜1§J¡JÑ/ˆAØ�y‰y‹{× Ñ  A§I¡I£K×$5Ñ$5Ó5Ü—O’O A§w¡wÓ/�Ø�v‰v˜‹{ØØ—	‘	˜!Ÿ'™'Ó"ˆAØ×!Ñ! !¨Õ*r   c                 ó²   • U R                   u  p#[        U5      nX* :  d  X:¼  a  [        SU S35      eUS:  a  X-  nU R                  U[	        S5      5      $ )zGReturn a copy of row i of the matrix, as a (1 x n) row vector.
        úindex (ú) out of ranger   N)r   Úintr"   r.   r(   ©r=   r]   ÚMr[   s       r   Ú_getrowÚIndexMixin._getrowÚ   s\   € ð �z‰z‰ˆÜ�‹FˆØˆr‹6�Q“VÜ˜w q c¨Ð8Ó9Ð9Øˆq‹5Ø‰FˆAØ×"Ñ" 1¤e¨D£kÓ2Ð2r   c                 ó²   • U R                   u  p#[        U5      nX* :  d  X:¼  a  [        SU S35      eUS:  a  X-  nU R                  [	        S5      U5      $ )zMReturn a copy of column i of the matrix, as a (m x 1) column vector.
        rd   re   r   N)r   rf   r"   r1   r(   rg   s       r   Ú_getcolÚIndexMixin._getcolå   s\   € ð �z‰z‰ˆÜ�‹FˆØˆr‹6�Q“VÜ˜w q c¨Ð8Ó9Ð9Øˆq‹5Ø‰FˆAØ×"Ñ"¤5¨£;°Ó2Ð2r   c                 ó   • [        5       e©N©ÚNotImplementedError©r=   rB   s     r   r'   ÚIndexMixin._get_intð   ó   € Ü!Ó#Ð#r   c                 ó   • [        5       ero   rp   rr   s     r   r)   ÚIndexMixin._get_sliceó   rt   r   c                 ó   • [        5       ero   rp   rr   s     r   r*   ÚIndexMixin._get_arrayö   rt   r   c                 ó   • [        5       ero   rp   ©r=   rD   rE   s      r   r-   ÚIndexMixin._get_intXintù   rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r0   ÚIndexMixin._get_intXarrayü   rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r.   ÚIndexMixin._get_intXsliceÿ   rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r1   ÚIndexMixin._get_sliceXint  rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r3   ÚIndexMixin._get_sliceXslice  rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r4   ÚIndexMixin._get_sliceXarray  rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r5   ÚIndexMixin._get_arrayXint  rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r6   ÚIndexMixin._get_arrayXslice  rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r7   ÚIndexMixin._get_columnXarray  rt   r   c                 ó   • [        5       ero   rp   rz   s      r   r:   ÚIndexMixin._get_arrayXarray  rt   r   c                 ó   • [        5       ero   rp   ©r=   rB   r   s      r   rL   ÚIndexMixin._set_int  rt   r   c                 ó   • [        5       ero   rp   r�   s      r   rS   ÚIndexMixin._set_array  rt   r   c                 ó   • [        5       ero   rp   ©r=   rD   rE   r   s       r   rT   ÚIndexMixin._set_intXint  rt   r   c                 ó   • [        5       ero   rp   r”   s       r   rY   ÚIndexMixin._set_arrayXarray   rt   r   c                 óœ   • [         R                  " UR                  5       U R                  S9n[	        X15      u  p4U R                  XU5        g )Nr   )r   rJ   rI   r   r   rY   )r=   rD   rE   r   rA   s        r   rX   Ú"IndexMixin._set_arrayXarray_sparse#  s8   € ä�JŠJ�q—y‘y“{¨$¯*©*Ñ5ˆÜ  Ó(‰ˆØ×Ñ˜c¨Õ*r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rF   ra   ri   rl   r'   r)   r*   r-   r0   r.   r1   r3   r4   r5   r6   r7   r:   rL   rS   rT   rY   rX   Ú__static_attributes__r   r   r   r   r      sy   † ñò`òDY+òv	3ò	3ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$ò$õ+r   r   c           	      ó–	  • [        U5      nU [        L a  [        S5      4U-  U/ / 4$ [        U [        5      (       d  U /n Sn/ nSn[        U 5       Hç  u  pxU[        L a  Ub  [        S5      eUnM   Uc  UR                  U5        M6  [        U[        5      (       d  [        U5      (       a  UR                  U5        US-  nMs  [        Xƒ5      =n	b!  UR                  U	5        XiR                  -  nM¢  [        U5      (       a  [        S5      eUR                  [        R                  " U5      5        US-  nMé     Xc:”  a  [        SU  SU SU S	35      eX6-
  [        S5      /-  n
U
(       a"  Uc  UR                  U
5        OUSU U
-   XTS -   n/ nSn/ n/ n/ n/ n[        U5       GH  u  pxUc-  UR                  [        U5      5        UR                  S5        M6  [        U[        5      (       aM  UR                  U5        X   n[        [        UR!                  U5      6 5      nUR                  U5        US-  nM˜  [        U5      (       ac  X   nU* Us=::  a  U:  d  O  [        S
U S35      e[#        US:  a  UU-   OU5      nUR                  U5        UR                  U5        US-  nGM  UR$                  R&                  S:X  aš  XÈR                  -   nXU nUR(                  U:w  a  [        SU SU SUR(                   35      eUR                  UR+                  5       5        UR                  [        UU5      5        UR                  [        UU5      5        UnGM¿  X   n[-        UUU5      nUR                  U5        UR                  U5        UR                  U5        US-  nGM     [        U5      S:”  ay  U Vs/ s H  o}U   R(                  PM     nn [        R.                  " U6 n[        U5      US   US   -
  S-   :w  a  [5        U5      U-   nOYUS   nUSU [5        U5      -   UUS -   nO<[        U5      S:X  a-  XÞS      R(                  nUS   nUSU [5        U5      -   UUS -   n[	        U5      [	        U5      UU4$ s  snf ! [0         a)    SR3                  S U 5       5      nSU 3n[        U5      ef = f)a�  Returns four sequences: (index, requested shape, arrays, nones)

index : tuple of validated idx objects. bool arrays->nonzero(),
        arrays broadcast, ints and slices as they are, Nones removed
requested shape : the shape of the indexed space, including Nones
arr_pos : position within index of all arrays or ints (for array fancy indexing)
none_pos : insert positions to put newaxis coords in indexed space.
Nr   z(an index can only have a single ellipsisr   zoIndexing with sparse matrices is not supported except boolean indexing where matrix and index are equal shapes.z<Too many indices for array or tuple index out of range. Key z needs zD. Array is ÚDrd   re   Úbzbool index z has shape z instead of Ú c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fro   )Ústr)Ú.0Úshps     r   Ú	<genexpr>Ú$_validate_indices.<locals>.<genexpr>¡  s   é € Ð=²*¨3œc #Ÿh˜h²*ùs   ‚zLshape mismatch: indexing arrays could not be broadcast together with shapes r   )r!   ÚEllipsisr(   r#   ÚtupleÚ	enumerater"   Úappendr   Ú_compatible_boolean_indexr/   r   r   rJ   ÚextendrN   rO   rf   r   Úkindr   ÚnonzeroÚ
_asindicesÚbroadcast_shapesrK   ÚjoinÚlist)r>   Ú
self_shapeÚself_formatÚ	self_ndimÚ	ellps_posÚ	index_1stÚprelim_ndimr]   rB   ÚixÚellip_slicesr\   Ú
index_ndimr?   Úarray_indicesÚnone_positionsÚarr_int_posÚMsÚ	len_slicer[   Útmp_ndimÚ	mid_shapeÚ
arr_shapesÚ	arr_shapeÚshapesÚmsgÚarr_poss                              r   r   r   *  sÕ  € ô �J“€Ià
Œh‚Ü�d“ˆ~ 	Ñ)¨:°r¸2Ð=Ð=ä�cœ5×!Ñ!Øˆeˆð €IØ€IØ€KÜ˜C–.‰ˆØ”(Š?ØÑ$Ü Ð!KÓLÐLØŠIØ‰[Ø×Ñ˜SÖ!Ü˜œU×#Ñ#¤y°§~¡~Ø×Ñ˜SÔ!Ø˜1ÑŠKÜ-¨cÓ=Ð=ˆbÑJà×Ñ˜RÔ ØŸ7™7Ñ"ŠKÜ�c�]‰]äð$ó%ð %ð
 ×ÑœRŸZšZ¨›_Ô-Ø˜1ÑŠKñ- !ð. ÓÜðØ�%�w˜{˜m¨<¸	°{À!ðEó
ð 	
ð Ñ+´°d³¨}Ñ<€LÞØÑØ×Ñ˜\Õ*à! * 9Ð-°Ñ<¸yÈÐ?TÑTˆIð €IØ€JØ€EØ€MØ€NØ€Kä˜I×&‰ˆØ‰;Ø×!Ñ!¤# i£.Ô1Ø×Ñ˜QÖÜ˜œU×#Ñ#Ø�L‰L˜ÔØÑ'ˆBÜœE 3§;¡;¨r£?Ð3Ó4ˆIØ×Ñ˜YÔ'Ø˜!‰OŠJÜ�s�^‰^ØÑ&ˆAØ�B˜#•M •MÜ  7¨3¨%¨~Ð!>Ó?Ð?Ü  q£�c˜A’g¨cÓ2ˆCØ�L‰L˜ÔØ×Ñ˜zÔ*Ø˜!‰O‹Jà�Y‰Y�^‰^˜sÓ"Ø!§H¡HÑ,ˆHØ"¨hÐ7ˆIØ�y‰y˜IÓ%Ü Ø! !  K°	¨{¸,ÀsÇyÁyÀkÐRóð ð �L‰L˜Ÿ™›Ô'Ø× Ñ ¤ z°8Ó!<Ô=Ø×Ñœu Z°Ó:Ô;Ø!‹JàÑ&ˆAÜ˜S ! [Ó1ˆCØ�L‰L˜ÔØ×Ñ˜zÔ*Ø× Ñ  Ô,Ø˜!‰O‹JñI 'ôJ ˆ=Ó˜AÓÙ.;Ó<ªm¨˜A‘h—n”n©mˆ
Ð<ð	"Ü×+Ò+¨ZÐ8ˆIô ˆ{Ó ¨B¡°+¸a±.Ñ @À1Ñ DÓEÜ˜Y›¨)Ñ3‰Ià! !‘nˆGØ! ( 7Ð+¬d°9«oÑ=À	È'È(Ð@SÑS‰IÜ	ˆ]Ó	˜qÓ	 Ø¨Ñ*Ñ+×1Ñ1ˆ	Ø˜a‘.ˆØ˜h˜wÐ'¬$¨y«/Ñ9¸IÀgÀhÐ<OÑOˆ	Ü�‹<œ˜yÓ)¨;¸ÐFÐFùò' =øô ó 	"Ø—X‘XÑ=±*Ó=Ó=ˆFð+Ø+1¨(ð4ˆCä˜S“/Ð!ð		"ús   ÏRÏ"R Ò3Sc                 ó\  •  [         R                  " U 5      nUS:w  a  UR                  S;  d  US:X  a(  UR                  S:X  a  [        SUR                   35      eUS:X  a  U$ UR                  S:X  a  U$ UR                  5       nXQ:¼  a  [        SU S	35      eUR                  5       nUS:  aS  Xa* :  a  [        SU S	35      eX0L d  UR                  R                  (       d  UR                  5       nX3S:  ==   U-  ss'   U$ ! [        [        [        4 a  n[        S5      UeSnAff = f)
zƒConvert `idx` to a valid index for an axis with a given length.

Subclasses that need special validation can override this method.
zinvalid indexNÚcoo)r   r   r   z$Index dimension must be 1 or 2. Got r   rd   re   )r   rJ   rK   Ú	TypeErrorÚMemoryErrorr"   r/   r8   ÚmaxÚminr   Úowndatar2   )rB   Úlengthr    r¼   ÚeÚmax_indxÚmin_indxs          r   r²   r²   ³  s  € ð
1Ü�ZŠZ˜‹_ˆð �ƒ˜2Ÿ7™7¨&Ó0°F¸e³OÈÏÉÐSTËÜÐ?ÀÇÁ¸yÐIÓJÐJð �ƒØˆ	à	‡w�w�!ƒ|Øˆ	ð �v‰v‹x€HØÓÜ˜7 8 *¨NÐ;Ó<Ð<à�v‰v‹x€HØ�!ƒ|Ø�gÓÜ˜w x j°Ð?Ó@Ð@ØŠ9˜BŸH™H×,×,Ø—‘“ˆBØ
�‰6‹
�fÑ‹
Ø€Iøô3 œ	¤;Ð/ó 1Ü˜Ó)¨qÐ0ûð1ús   ‚D ÄD+ÄD&Ä&D+c                 óT  • [        U S5      (       dk   [        [        U 5      S5      n[        U5       H/  n[	        U[
        5      (       a    O[        [        U5      S5      nM1     g[        R                  " U 5      n U R                  R                  S:X  a  U $ g! [         a     gf = f)zICheck for boolean array or array-like. peek before asarray for array-liker/   Nr¢   )ÚhasattrÚnextÚiterrN   r#   ÚboolrÍ   r   Ú
asanyarrayr   r°   )rB   Údesired_ndimr¼   rA   s       r   r®   r®   Ö  s–   € ô �3˜×Ñð		Ü”d˜3“i Ó&ˆBÜ˜<Ö(�Ü˜b¤$×'Ñ'ÙÜœ$˜r›( DÓ)’ñ )ð
 ô �mŠm˜CÓ ˆà
‡y�y‡~�~˜ÓØˆ
Øøô ó 	Ùð	ús   “9B ÁB Â
B'Â&B')rž   Únumpyr   Ú_sputilsr   Ú_baser   r   rf   Úintegerr&   r   r   r   r²   r®   r   r   r   Ú<module>rá      sF   ðñã Ý ß $à�"—*‘*Ð€	ò÷N+ñ N+òbFGòR óFr   