+
     i$  c                  s2   ^ RI Ht ^ RIt^ RIt^RIHtHt R R lt ! R R]P                  4      t ! R R	]P                  4      t
]P                  ! ]P                  ]]4       ]P                  ! R
]
4       ]P                  ! ]P                  RR.4       R# )    )annotationsN)Image	ImageFilec                    V ^8  d   QhRRRR/# )   prefixbytesreturnZbool format   ":/usr/lib64/python3.14/site-packages/PIL/FitsImagePlugin.py__annotate__r      s     ( (E (d (    c                s$    V P                  R 4      # )   SIMPLE)
startswith)r   s   &r   _acceptr      s    Y''r   c                  sB    ] tR t^tRtRtR R ltR R ltR R ltRt	R	# )
FitsImageFileZFITSc               s    V ^8  d   QhRR/# )r   r   ZNoner	   r
   r   r   r   FitsImageFile.__annotate__   s     +V +Vt +Vr   c                	s   / pR pRp V P                   P                  ^P4      pV'       g   Rp\        V4      hVR,          P                  4       pVR9   d   RpMV'       d   V'       g   EMVR8X  dv   V P                   P	                  \
        P                  ! V P                   P                  4       R,          4      R,          4       V'       g   V P                  V4      w  r7pR pK  V'       d   K  VR,          P                  R4      ^ ,          P                  4       p	V	P                  R	4      '       d   V	R
,          P                  4       p	V'       g&   \        V4      '       d   V	R8w  d   Rp\        V4      hWV&   EKy  V'       g   Rp\        V4      hXV P                   P                  4       ^P,
          ,          p\        P                  ! VRV P                   ,           VX4      .V n        R# )F TzTruncated FITS file:N   Ns   ENDi@  :r   NNs   /s   =:i   NN   TzNot a FITS filezNo image dataN)r      XTENSIONr    r    )ZfpreadZOSErrorZstripZseekmathZceilZtell_parse_headersZsplitr   r   ZSyntaxErrorZ
ValueErrorr   Z_Tilesizetile)
selfheadersZheader_in_progressdecoder_nameZheaderZmsgZkeywordoffsetargsvalues
   &         r   _openZFitsImageFile._open   s|    ')"WW\\"%F+cl"Rj&&(G22%)"!3F"TYYtww||~'<=DE#151D1DW1M.L$%*"2J$$T*1-335E%%b	)GG$4$4'!#&&$G!CS/!$'',,.2%%__\6DII3EvtTU	r   c               s$    V ^8  d   QhRRRRRR/# )r   r    dict[bytes, bytes]r   r   r   ztuple[int, int] | Noner	   r
   r   r   r   r   H   s)     
V 
V)
V38
V	
Vr   c                	s    \        WR ,           ,          4      pV^ 8X  d   R# V^8X  d   ^\        WR,           ,          4      3# \        WR,           ,          4      \        WR,           ,          4      3# )s   NAXISNs   NAXIS1s   NAXIS2)int)r   r    r   Znaxiss   &&& r   	_get_sizeZFitsImageFile._get_sizeH   sd     GX-./A:A:c'9"45666w	123S)AS9T5UUUr   c               r   )r   r    r&   r   z&tuple[str, int, tuple[str | int, ...]]r	   r
   r   r   r   r   T   s     '* '*)'*	/'*r   c                	sR   R pRp^ pVP                  R4      R8X  d{   VP                  R4      R8X  de   VR,          R8X  dW   V P                  W4      ;'       g    Rp\        VR,          4      pV^ ,          V^,          ,          V^,          ,          pR	pR
pV P                  W4      pV'       g   R# Wpn        \        WR,           ,          4      pV^8X  d	   RV n        M,V^8X  d	   RV n        MV^ 8X  d	   RV n        MVR9   d   RV n        VR8X  d   V P
                  ^ R3pMV3pW4V3# )r   Zrawr   s
   'BINTABLE's   ZIMAGEr   s   ZCMPTYPEs
   'GZIP_1  's   BITPIXs   Z	fits_gzipZLzI;16ZIZFr   )r   r    r	   )ii)Zgetr(   r'   _size_modeZmode)	r   r    r   r!   r"   Zno_prefix_sizenumber_of_bitsr   r#   s	   &&       r   r   ZFitsImageFile._parse_headersT   s'    KK$5I&$.$5!^^G<FFN !34N#A&)::nPQ>QRFF&L~~g.
Wi%789QDJr!DJr!DJz)DJ 5 IIq"%D"$DT))r   )r,   r+   r   N)
__name__
__module____qualname____firstlineno__r   Zformat_descriptionr%   r(   r   __static_attributes__r	   r   r   r   r      s$    F+VZ
V'* '*r   r   c                  s&    ] tR t^~tRtR R ltRtR# )FitsGzipDecoderTc               r   )r   bufferz$bytes | Image.SupportsArrayInterfacer   ztuple[int, int]r	   r
   r   r   r   ZFitsGzipDecoder.__annotate__   s      A o r   c           
     	sX   \         P                  ! V P                  P                  4       4      p. p^ p\	        V P
                  ^ ,          ^,          ^4      p\        V P                  P                  4       Fm  p\        4       p\        V P                  P                  4       F,  pWrV^V,
          ,           V^,            ,          pV^,          pK.  	  VP                  V4       Ko  	  T P                  \        VRRR1,           UU	u. uF  qw F  qNK  	  K  	  up	p4      4       R# u up	pi )r    Nr*   )r*   r    )gzipZ
decompressZfdr   Zminr#   ZrangeZstateZysizeZ	bytearrayZxsizeZappendZ
set_as_rawr   )
r   r4   r$   Zrowsr"   r-   ZyZrowZxZpixels
   &&        r   decodeZFitsGzipDecoder.decode   s    /TYYq\Q.2tzz''(A+C4::++,Vq>'9:VaZHH! - KK ) 	TrT
L
uuu
LMN Ms   D&r	   N)r.   r/   r0   r1   Z	_pulls_fdr6   r2   r	   r   r   r3   r3   ~   s    I r   r3   r)   z.fitz.fits)Z
__future__r   r5   r   r   r   r   r   r   Z	PyDecoderr3   Zregister_openr   Zregister_decoderZregister_extensionsr	   r   r   <module>r7      s    #   (d*I'' d*Ni)) .   M((- A   {O 4   -..0A Br   