
    iwc                         S SK r S SKr " S S5      r " S S\5      rS SKr " S S\R
                  5      r " S S	\5      rS
 rS r	\
S:X  a#  \ R                  " \	" \ R                  5      5        gg)    Nc                   6    \ rS rSrS r\S 5       rS rS rSr	g)	BitParser   c                     SU l         g )Nr   )_posselfs    A/home/kodi/my-venv/lib/python3.13/site-packages/pdfminer/ccitt.py__init__BitParser.__init__   s    	    c                     UnS n[        [        U5      5       H&  nSU:  a  XE   c  S S /XE'   XE   nX6   S:X  a  SnM$  SnM(     X$U'   g )Nr   1   )rangelen)klassrootvbitspbis          r
   addBitParser.add   s^    s4y!A1u4< $<ADDw#~ " !r   c                 N    U H  nS H  nU R                  X#-  5        M     M!     g N   @                   r   )
_parse_bitr	   datar   ms       r
   	feedbytesBitParser.feedbytes)   s)    A2& 3  	r   c                     U(       a  U R                   S   nOU R                   S   nU =R                  S-  sl        [        U[        5      (       a  X l         g U R	                  U5      U l         g Nr   r   )_stater   
isinstancelist_accept)r	   xr   s      r
   r&   BitParser._parse_bit/   sW    AAAA		Q	aK 	 ,,q/DKr   )r   r.   N)
__name__
__module____qualname____firstlineno__r   classmethodr   r*   r&   __static_attributes__ r   r
   r   r      s%      
r   r   c                   \%   \ rS rSrSS/r\R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \S	S
5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS 5        \R                  \S!S"5        \R                  \S#S$5        \R                  \S%S&5        SS/r\R                  \SS'5        \R                  \SS(5        \R                  \SS)5        \R                  \SS*5        \R                  \S+S,5        \R                  \S-S.5        \R                  \S/S05        \R                  \S1S25        \R                  \S3S45        \R                  \S5S65        \R                  \S7S85        \R                  \S9S:5        \R                  \S;S<5        \R                  \S=S5        \R                  \S>S?5        \R                  \S@SA5        \R                  \SBSC5        \R                  \SDSE5        \R                  \SFSG5        \R                  \SHSI5        \R                  \SJSK5        \R                  \SLSM5        \R                  \SNS5        \R                  \SOSP5        \R                  \SQSR5        \R                  \SSST5        \R                  \SUSV5        \R                  \SWSX5        \R                  \SYSZ5        \R                  \S[S\5        \R                  \S]S^5        \R                  \S_S`5        \R                  \SaSb5        \R                  \ScSd5        \R                  \SeSf5        \R                  \SgSh5        \R                  \SiSj5        \R                  \SkSl5        \R                  \SmSn5        \R                  \SoSp5        \R                  \SqSr5        \R                  \SsSt5        \R                  \SuSv5        \R                  \SwSx5        \R                  \SySz5        \R                  \S{S|5        \R                  \S}S~5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        SS/r\R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \S+S5        \R                  \S-S5        \R                  \S/S5        \R                  \S1S5        \R                  \S3S5        \R                  \S5S5        \R                  \S7SP5        \R                  \S9S5        \R                  \S;S5        \R                  \S=S|5        \R                  \S>S5        \R                  \S@S5        \R                  \SBS5        \R                  \SDS5        \R                  \SFS5        \R                  \SHS5        \R                  \SJS5        \R                  \SLGS 5        \R                  \SNGS5        \R                  \SOGS5        \R                  \SQGS5        \R                  \SSGS5        \R                  \SUGS5        \R                  \SWGS5        \R                  \SYGS5        \R                  \S[GS5        \R                  \S]GS	5        \R                  \S_GS
5        \R                  \SaGS5        \R                  \ScGS5        \R                  \SeGS5        \R                  \SgGS5        \R                  \SiGS5        \R                  \SkGS5        \R                  \SmGS5        \R                  \SoGS5        \R                  \SqGS5        \R                  \SsGS5        \R                  \SuGS5        \R                  \SwGS5        \R                  \SyGS5        \R                  \S{GS5        \R                  \S}GS5        \R                  \SGS5        \R                  \SGS5        \R                  \SGS5        \R                  \SGS5        \R                  \SGS5        \R                  \SGS5        \R                  \SGS 5        \R                  \SGS!5        \R                  \SGS"5        \R                  \SGS#5        \R                  \SGS$5        \R                  \SGS%5        \R                  \SGS&5        \R                  \SGS'5        \R                  \SGS(5        \R                  \SGS)5        \R                  \SGS*5        \R                  \SS5        \R                  \SGS+5        \R                  \SGS,5        \R                  \SGS-5        \R                  \SGS.5        \R                  \SGS/5        \R                  \SGS05        \R                  \SGS15        \R                  \SGS25        \R                  \SGS35        \R                  \SGS45        \R                  \SGS55        \R                  \SGS65        \R                  \SGS75        \R                  \SGS85        \R                  \SGS95        \R                  \SGS:5        \R                  \SGS;5        \R                  \SGS<5        \R                  \SGS=5        \R                  \SGS>5        \R                  \SGS?5        \R                  \SGS@5        \R                  \SGSA5        \R                  \SGSB5        \R                  \SGSC5        \R                  \SGSD5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        \R                  \SS5        SS/r	\R                  \	SS5        \R                  \	GSEGSE5        \R                  \	S
S
5        \R                  \	SS5        \R                  \	GSFGSF5        \R                  \	GSGGSH5        \R                  \	GSIS^5        \R                  \	GSJS\5        \R                  \	GSKGSL5        \R                  \	GSMGSN5        \R                  \	GSOGSP5        \R                  \	GSQGSR5        \R                  \	GSSGST5        \R                  \	GSUGSV5         " GSW GSX\
5      r " GSY GSZ\
5      r " GS[ GS\\
5      rGSnGS] jrGS^ rGS_ rGS` rGSa rGSb rGSc rGSd rGSe rGSf rGSg rGSh rGSi rGSj rGSk rGSl rGSmrg(o  CCITTG4Parser>   Nr   r   r   011010h001r   0001r%   000011000010   00000110000010u
0000001111x1
0000001000x2
0000001001x3
0000001010x4
0000001011x5
0000001100x6
0000001101x7
0000001110e0000000000010000000000010011010100011101111000r$   1011   1100   1110   1111r#   10011	   10100
   00111   01000   001000      110100   110101r"   101010   101011   0100111r   0001100   0001000   0010111      0000100   0101000   0101011   0010011   0100100   0011000   00000010   00000011   00011010r!   00011011!   00010010"   00010011#   00010100$   00010101%   00010110&   00010111'   00101000(   00101001)   00101010*   00101011+   00101100,   00101101-   00000100.   00000101/   000010100   000010111   010100102   010100113   010101004   010101015   001001006   001001017   010110008   010110019   01011010:   01011011;   01001010<   01001011=   0011001000110011?   00110100r    11011r   10010   010111   0110111i@  00110110i  00110111i  01100100i   01100101i@  01101000i  01100111i  	011001100i   	011001101i@  	011010010i  	011010011i  	011010100i   	011010101i@  	011010110i  	011010111i  	011011000i   	011011001i@  	011011010i  	011011011i  	010011000i   	010011001i@  	010011010i  011000i  	010011011i   00000001000i@  00000001100i  00000001101i  000000010010i   000000010011i@  000000010100i  000000010101i  000000010110i 	  000000010111i@	  000000011100i	  000000011101i	  000000011110i 
  000000011111
0000110111111000110010000110001010001000000101000011100000111	000011000
0000010111
00000110000000110011100001101000000011011000000011011100000101000000000101110000001100000001100101000001100101100001100110000001100110100000110100000000110100100000110101000000110101100001101001000001101001100001101010000001101010100001101011000001101011100000110110000000110110100001101101000001101101100000101010000000101010100000101011000000101011100000110010000000110010100000101001000000101001100000010010000000011011100000011100000000010011100000010100000000101100000000101100100000010101100000010110000000101101000000110011000000110011100001100100000001100100100000101101100000011001100000011010000000011010100000011011000000001101101000000100101000000010010110000001001100000000100110100000011100100000001110011000000111010000000011101010000001110110000000111011100000010100100000001010011000000101010000000010101010000001011010000000101101100000011001000000001100101010000100000000001T00T10T000	000000011T100	000000010T0000
0000000011T1000
0000000010T0000000000000011T1000000000000010c                       \ rS rSrSrg)CCITTG4Parser.EOFBi8  r:   Nr4   r5   r6   r7   r9   r:   r   r
   EOFBrc  8      r   re  c                       \ rS rSrSrg)CCITTG4Parser.InvalidDatai;  r:   Nrd  r:   r   r
   InvalidDatarh  ;  rf  r   ri  c                       \ rS rSrSrg)CCITTG4Parser.ByteSkipi>  r:   Nrd  r:   r   r
   ByteSkiprk  >  rf  r   rl  c                 f    [         R                  U 5        Xl        X l        U R	                  5         g N)r   r   width	bytealignreset)r	   ro  rp  s      r
   r   CCITTG4Parser.__init__A  s&    4 
"

r   c                     U H   n S H  nU R                  X#-  5        M     M"     g ! U R                   a&    U R                  U l        U R                  U l         MZ  U R                   a       g f = fr   )r&   rl  _parse_moder1   MODEr.   re  r'   s       r
   r*   CCITTG4Parser.feedbytesH  sm    A6AOOAE* 7  	 == (#//"ii99 s   (2A0A0/A0c                    US:X  a,  U R                  5         U R                  5         U R                  $ US:X  aA  SU l        U R                  U l        U R                  (       a  U R                  $ U R                  $ US:X  a  U R                  U l        U R                  $ US:X  a  U R                  e[        U[        5      (       a-  U R                  U5        U R                  5         U R                  $ U R                  U5      e)Nr   rA   r   rK   r[   )_do_pass_flush_lineru  _n1_parse_horiz1r1   _colorWHITEBLACK_parse_uncompressedUNCOMPRESSEDre  r/   int_do_verticalri  )r	   modes     r
   rt  CCITTG4Parser._parse_modeT  s    3;MMO99S[DH--DL{{zz!zz!S[33DL$$$S[))Oc""d#99""4((r   c                     Uc  U R                   eU =R                  U-  sl        US:  a,  SU l        SU R                  -
  U l        U R                  U l        U R                  (       a  U R                  $ U R                  $ )Nr    r   r   )ri  rz  _n2r|  _parse_horiz2r1   r}  r~  r	   ns     r
   r{  CCITTG4Parser._parse_horiz1l  se    9"""Ar6DHDKK-DK--DL;;::::r   c                 v   Uc  U R                   eU =R                  U-  sl        US:  ag  SU R                  -
  U l        U R                  U l        U R                  U R                  U R                  5        U R                  5         U R                  $ U R                  (       a  U R                  $ U R                  $ )Nr    r   )ri  r  r|  rt  r1   _do_horizontalrz  ry  ru  r}  r~  r  s     r
   r  CCITTG4Parser._parse_horiz2y  s    9"""Ar6DKK-DK++DL$((399[[::::r   c                    U(       d  U R                   eUR                  S5      (       aD  U R                  U l        [	        US   5      U l        U R                  USS  5        U R                  $ U R                  U5        U R                  $ )NTr   r%   )	ri  
startswithrt  r1   r  r|  _do_uncompressedru  r  )r	   r   s     r
   r  !CCITTG4Parser._parse_uncompressed  st    """??3++DLd1g,DK!!$qr(+99!!$'$$$r   c                 `    SR                  S U R                  S U R                    5       5      $ )N c              3   8   #    U  H  n[        U5      v   M     g 7frn  str.0r   s     r
   	<genexpr>*CCITTG4Parser._get_bits.<locals>.<genexpr>  s     D'C!s1vv'C   )join_curline_curposr   s    r
   	_get_bitsCCITTG4Parser._get_bits  s&    wwDt}}]dll'CDDDr   c                    US:  a%  SSR                  S U R                   5       5      -   $ [        U R                  5      U::  a%  SR                  S U R                   5       5      S-   $ SR                  S U R                  S U  5       5      S-   [        U R                  U   5      -   S-   SR                  S	 U R                  US
-   S   5       5      -   $ )Nr   z[]r  c              3   8   #    U  H  n[        U5      v   M     g 7frn  r  r  s     r
   r  -CCITTG4Parser._get_refline.<locals>.<genexpr>  s     >1Ar  c              3   8   #    U  H  n[        U5      v   M     g 7frn  r  r  s     r
   r  r    s     9=a3q66=r  c              3   8   #    U  H  n[        U5      v   M     g 7frn  r  r  s     r
   r  r    s     >,=qCFF,=r  []c              3   8   #    U  H  n[        U5      v   M     g 7frn  r  r  s     r
   r  r    s     @,?qCFF,?r  r   )r  _refliner   r  )r	   r   s     r
   _get_reflineCCITTG4Parser._get_refline  s    q5>>>>>1$7794==99$>>GG>DMM"1,=>>DMM!,-..12GG@DMM!A#$,?@@A Br   c                     SU l         [        R                  " SS/U R                  -  5      U l        U R	                  5         U R
                  U l        U R                  U l        g )Nr   r   r   )	_yarrayro  r  _reset_linert  r1   ru  r.   r   s    r
   rq  CCITTG4Parser.reset  sL    C!TZZ8''iir   c                 H    [        USR                  S U 5       5      5        g )Nr  c              3   8   #    U  H  n[        U5      v   M     g 7frn  r  r  s     r
   r  ,CCITTG4Parser.output_line.<locals>.<genexpr>  s     .AQr  )printr  )r	   yr   s      r
   output_lineCCITTG4Parser.output_line  s    a.../r   c                     U R                   U l        [        R                  " SS/U R                  -  5      U l         SU l        SU l        g )Nr   r   r?   )r  r  r  ro  r  r|  r   s    r
   r  CCITTG4Parser._reset_line  s:    C!TZZ8r   c                    U R                   U R                  ::  ah  U R                  U R                  U R                  5        U =R                  S-  sl        U R                  5         U R                  (       a  U R                  eg Nr   )ro  r  r  r  r  r  rp  rl  r   s    r
   ry  CCITTG4Parser._flush_line  sW    ::%TWWdmm4GGqLG~~mm#r   c                    U R                   S-   n US:X  a/  U R                  S:X  a  U R                  U   U R                  :w  a  O`OXU[        U R                  5      :X  a  OEU R                  US-
     U R                  :X  a  U R                  U   U R                  :w  a  OUS-  nM  X!-  n[	        SU R                   5      n[	        S[        U R                  U5      5      nX#:  a,  [        X#5       H  nU R                  U R                  U'   M     O0X2:  a+  [        X25       H  nU R                  U R                  U'   M     X l         SU R                  -
  U l        g r-   )	r  r|  r  r   maxminro  r   r  )r	   dxrM   x0r2   s        r
   r  CCITTG4Parser._do_vertical  s#    \\!^QwKK1$r):dkk)Is4==))--1%4--#t{{2!GB  	DLL!C

B'(72]#';;a  #W2]#';;a  #mr   c                    U R                   S-   n US:X  a/  U R                  S:X  a  U R                  U   U R                  :w  a  O`OXU[        U R                  5      :X  a  OEU R                  US-
     U R                  :X  a  U R                  U   U R                  :w  a  OUS-  nM   US:X  a/  U R                  S:X  a  U R                  U   U R                  :X  a  O`OXU[        U R                  5      :X  a  OEU R                  US-
     U R                  :w  a  U R                  U   U R                  :X  a  OUS-  nM  [	        U R                   U5       H  nU R                  U R
                  U'   M     Xl         g r-   )r  r|  r  r   r   r  )r	   rM   r2   s      r
   rx  CCITTG4Parser._do_pass  sF    \\!^QwKK1$r):dkk)Is4==))--1%4--#t{{2!GB  QwKK1$r):dkk)Is4==))--1%4--#t{{2!GB  t||R(A#{{DMM! )r   c                    U R                   S:  a  SU l         U R                   n[        U5       H<  n[        U R                  5      U::  a    O"U R                  U R                  U'   US-  nM>     [        U5       H?  n[        U R                  5      U::  a    O%SU R                  -
  U R                  U'   US-  nMA     X0l         g )Nr   r   )r  r   r   r  r|  )r	   n1n2r2   _s        r
   r  CCITTG4Parser._do_horizontal  s    <<!DLLLrA4==!Q&#{{DMM!FA	 
 rA4==!Q& }DMM!FA	 
 r   c                     U HJ  n[        U5      U R                  U R                  '   U =R                  S-  sl        U R                  5         ML     g r  )r  r  r  ry  )r	   r   cs      r
   r  CCITTG4Parser._do_uncompressed  sA    A*-a&DMM$,,'LLAL  	r   )r1   r|  r  r  rz  r  r  r.   r  rp  ro  F)r4   r5   r6   r7   ru  r   r   r}  r~  r  	Exceptionre  ri  rl  r   r*   rt  r{  r  r  r  r  rq  r  r  ry  r  rx  r  r  r9   r:   r   r
   r<   r<   >   s   $<DMM$S!MM$U#MM$U#MM$U#MM$V$MM$X&MM$X&MM$Y'MM$Y'MM$\*MM$l+MM$l+MM$l+MM$l+MM$l+MM$l+MM$l+MM$784LEMM%z*MM%x(MM%v&MM%v&MM%v&MM%v&MM%v&MM%v&MM%w'MM%w'MM%w'MM%w'MM%x(MM%x(MM%x(MM%x(MM%x(MM%x(MM%y)MM%y)MM%y)MM%y)MM%y)MM%y)MM%y)MM%y)MM%y)MM%y)MM%y)MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%w'MM%w'MM%x(MM%y)MM%z*MM%z*MM%z*MM%z*MM%z*MM%z*MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%{+MM%x(MM%{+MM%}-MM%}-MM%}-MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.4LEMM%|,MM%u%MM%t$MM%t$MM%u%MM%v&MM%v&MM%w'MM%x(MM%x(MM%y)MM%y)MM%y)MM%z*MM%z*MM%{+MM%|,MM%|,MM%|,MM%}-MM%}-MM%}-MM%}-MM%}-MM%}-MM%}-MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%|,MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%/MM%}-MM%}-MM%}-MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.MM%~.$<LMM,S)MM,d+MM,u-MM,/MM,1MM,2MM,z2MM,z2MM,4MM,4MM,6MM,6MM,-8MM,-8y i 9 
)0
%EB6:$r   r<   c                   z    \ 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)TestCCITTG4Parseri  c                     [        [        U5      5      nU Vs/ s H  n[        U5      PM     snUl        UR	                  5         U$ s  snf rn  )r<   r   r  r  r  )r	   r   parserr  s       r
   
get_parserTestCCITTG4Parser.get_parser  s@    s4y)+/04a3q640 1s   Ac                     U R                  S5      nUR                  S5        U R                  UR                  S5        g )NrR  r   r  r  assertEqualr  r	   r  s     r
   test_b1TestCCITTG4Parser.test_b1  s5    )A+r   c                     U R                  S5      nUR                  S5        U R                  UR                  S5        g )N10000r?   r   r  r  s     r
   test_b2TestCCITTG4Parser.test_b2"  s5    )B+r   c                     U R                  S5      nUR                  5         U R                  UR                  S5        U R                  UR	                  5       S5        g )Nr^   rG   111r  rx  r  r  r  r  s     r
   test_b3TestCCITTG4Parser.test_b3(  sJ    *+))+U3r   c                     U R                  S5      nUR                  S5        U R                  UR                  S5        U R                  UR	                  5       S5        g )NrR  r%   r   r  r  r  r  r  r  s     r
   test_b4TestCCITTG4Parser.test_b4/  sN    )B+))+T2r   c                    U R                  S5      nUR                  SS5        U R                  UR                  S5        UR	                  S5        U R                  UR                  S5        U R                  UR                  5       S5        g )N11111111100r   rG   r   rk   
0001111111)r  r  r  r  r  r  r  s     r
   test_b5TestCCITTG4Parser.test_b56  sr    /a#+A,))+\:r   c                    U R                  S5      nUR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        U R                  UR	                  5       S5        g )Nr  r   r   rb   r  r  s     r
   test_e1TestCCITTG4Parser.test_e1?  p    )A+A+))+W5r   c                    U R                  S5      nUR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        U R                  UR	                  5       S5        g )Nrh   r   r   r%   rb   r  r  r  s     r
   test_e2TestCCITTG4Parser.test_e2H  r  r   c                    U R                  S5      nSUl        UR                  S5        U R                  UR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        U R                  UR                  5       S5        g )N011111r   r   rE   r$   rd   011100r  r|  r  r  r  r  r  s     r
   test_e3TestCCITTG4Parser.test_e3Q  s    *A*+B*+A+))+X6r   c                 t   U R                  S5      nUR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        U R                  UR	                  5       S5        g )Nr  r   r   rE   rG   rb   rh   r  r  s     r
   test_e4TestCCITTG4Parser.test_e4_  s    )A+B+A+))+W5r   c                 (   U R                  S5      nSUl        UR                  S5        U R                  UR                  S5        UR                  S5        U R                  UR                  S5        U R                  UR                  5       S5        g )Nr   r   r   rG   rd   r  r  r  s     r
   test_e5TestCCITTG4Parser.test_e5j  sw    *A+A+))+X6r   c                    U R                  S5      nUR                  5         U R                  UR                  S5        UR	                  S5        U R                  UR                  S5        U R                  UR                  5       S5        g )N11001r$   r   rb   11111)r  rx  r  r  r  r  r  s     r
   test_e6TestCCITTG4Parser.test_e6t  sl    )+A+))+W5r   c                     U R                  S5      nSUl        SUl        UR                  SS5        U R	                  UR                  S5        U R	                  UR                  5       S5        g )N
0000000000r%   r   rd   rk   
1111000000)r  r  r|  r  r  r  r  s     r
   test_e7TestCCITTG4Parser.test_e7}  s^    .a#,))+\:r   c                 8   U R                  S5      nSUl        SUl        UR                  S5        U R	                  UR                  S5        UR                  SS5        U R	                  UR                  S5        U R	                  UR                  5       S5        g )N	001100000r   r   r%   rf   ri   	101111111)r  r  r|  r  r  r  r  r  s     r
   test_e8TestCCITTG4Parser.test_e8  s    -A+a#+))+[9r   c                    U R                  S5      nUR                  5         U R                  UR                  S5        UR                  5         U R                  UR                  S5        U R                  UR	                  5       S5        g )N10101r%   r$   rg   r  r  s     r
   test_m1TestCCITTG4Parser.test_m1  sh    )++))+V4r   c                     U R                  S5      nUR                  S5        UR                  S5        UR                  S5        UR                  SS5        U R                  UR	                  5       S5        g )Nrx   r?   r   011101)r  r  r  r  r  r  s     r
   test_m2TestCCITTG4Parser.test_m2  sf    *BBAa#))+X6r   c                     U R                  S5      nUR                  S5        UR                  5         UR                  S5        UR                  S5        U R                  UR	                  5       S5        g )N10111011r?   r   00000001)r  r  rx  r  r  r  s     r
   test_m3TestCCITTG4Parser.test_m3  s`    ,BAA))+Z8r   r:   N)r4   r5   r6   r7   r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r9   r:   r   r
   r  r    sW    		r   r  c                   *    \ rS rSrSS jrS rS rSrg)CCITTFaxDecoderi  c                 F    [         R                  XUS9  X0l        SU l        g )Nrp  r   )r<   r   reversed_buf)r	   ro  rp  r!  s       r
   r   CCITTFaxDecoder.__init__  s$    ti@ 	r   c                     U R                   $ rn  )r"  r   s    r
   closeCCITTFaxDecoder.close  s    yyr   c                 X   [         R                   " SS/[        U5      S-   S-  -  5      nU R                  (       a  U Vs/ s H  nSU-
  PM
     nn[        U5       H#  u  pTU(       d  M  X5S-  ==   SUS-     -  ss'   M%     U =R                  UR                  5       -  sl        g s  snf )NBr   rf   r#   r   r   )r  r   r!  	enumerater"  tostring)r	   r  r   bytesr   r   s         r
   r  CCITTFaxDecoder.output_line  s    C!s4y{Q&6!78==!%&AAaCD&oFQqd<QUCC & 			U^^%%	 's    B')r"  r!  N)FF)r4   r5   r6   r7   r   r%  r  r9   r:   r   r
   r  r    s    r   r  c                    UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUS:X  a  [        X4US9nO[        U5      eUR                  U 5        UR	                  5       $ )NKColumnsEncodedByteAlignBlackIs1r?   )rp  r!  )getr  
ValueErrorr*   r%  )r(   paramsr.  colsrp  r!  r  s          r
   ccittfaxdecoder6    sq    

3A::i D

-.Izz*%HBw XNm
T<<>r   c                 r   U SS  (       d  [         R                  " 5       $  " S S[        5      nU SS   Hn  n[        US5       nUR	                  S5      u    pEpgnU" [        U5      5      nUR                  UR                  5       5        UR                  5         S S S 5        Mp     g ! , (       d  f       M  = f)Nr   c                   *    \ rS rSrSS jrS rS rSrg)main.<locals>.Parseri  c                 x    SS K n[        R                  XUS9  UR                  U R                  S45      U l        g )Nr   r   i  )pygamer<   r   Surfacero  img)r	   ro  rp  r;  s       r
   r   main.<locals>.Parser.__init__  s4    ""4)"D~~tzz4&89DHr   c                     [        U5       HH  u  p4U(       a  U R                  R                  X14S5        M+  U R                  R                  X14S5        MJ     g )N)   r@  r@  )r   r   r   )r)  r=  set_at)r	   r  r   r2   r   s        r
   r   main.<locals>.Parser.output_line  sB    #D/HHOOQFO<HHOOQFI6	 *
 r   c                 X    SS K nUR                  R                  U R                  S5        g )Nr   zout.bmp)r;  imagesaver=  )r	   r;  s     r
   r%  main.<locals>.Parser.close  s     LLdhh	2r   )r=  Nr  )r4   r5   r6   r7   r   r  r%  r9   r:   r   r
   Parserr9    s    			r   rG  rb.)	unittestmainr<   opensplitr  r*   readr%  )	argvrG  pathfpr  kwrA   r  s	            r
   rK  rK    s    8}} * QR$!%CQaACF^FRWWY'LLN	    s   AB''
B6	__main__)sysr  r   r<   rJ  TestCaser  r  r6  rK  r4   exitrO  r:   r   r
   <module>rX     sx     
& &VOI Ob 
V)) Vvm ,
B z388DN3r   