
    Kwgp                        d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZ ddlZ edddd      Zg g g g d	Z ed`i d
dddddddddddddddddddddd d!d"d#d$dd%d&d'd(d)d*d+d,d-d.Z eddd/d0d1d2d3d4d56	      Zded7<    ed8d9d:d;d<=      Zd> Zd? Z efd@Z! G dA dBe      Z" G dC dDe      Z#dE Z$ G dF dGe      Z% G dH dI      Z& e e&g dJg dKdL       e&g dMg dNdO       e&g dPg dQdR       e&g dSg dTdU       e&g dVg dWdX      Y      Z' edZd[d\d]d^Y      Z(e)d_k(  rddl*Z* e*jV                          yy)a)AcroForm    )		PDFObjectPDFArrayPDFDictionary	PDFString	pdfdocEncPDFName	PDFStreamPDFStreamFilterZCompress	escapePDF)stringWidth)Color	CMYKColorWhiterBlackeropaqueColorfp_str)isStrasNativeN)visiblehiddenvisibleNonPrintinghiddenPrintable)r   Z      i  readOnly   required   noExport   noToggleToOffi @  radioi   
pushButtoni   radiosInUnisoni   	multilinei   passwordi    
fileSelecti   doNotSpellChecki  @ doNotScrolli   combi   richTextcomboi   editi   sorti   multiSelecti    commitOnSelChangei             @         i   )		invisibler   nozoomnorotatenoviewreadonlylockedtogglenoviewlockedcontentsprintSDBIU)soliddashedbevelledinset
underlinedc                     t        | t        t        |               }|dk(  r-|sdg}nt        |t        t
        f      s|g}t        |      |d<   t        |      S )N)WrB   rH      rC   )dictr	   	_bsStyles
isinstancelisttupler   r   )borderWidthborderStyledashLends       Q/var/www/horilla/myenv/lib/python3.12/site-packages/reportlab/pdfbase/acroform.pybsPDFrY   G   sX    {WY{%;<=AHcGGT%L1iG'"#    c                 8    t        |       j                  dd      S )N%z\045)r   replace)ss    rX   escPDFr_   Q   s    Q<G,,rZ   c                 h    t        | t              s!| }d} |j                         D ]
  }| ||   z  }  | S )Nr   )rQ   intsplit)r^   rW   vxs       rX   	makeFlagsre   T   s=    a 	A1IA	HrZ   c                       e Zd Zd Zd Zy)PDFFromStringc                 D    t        |      st        d|z        || _        y )Nz$need a unicode/bytes argument not %r)r   
ValueError_s)selfr^   s     rX   __init__zPDFFromString.__init__]   s!    QxCaGHHrZ   c                 ,    t        | j                        S N)r   rj   )rk   documents     rX   formatzPDFFromString.formatb   s    !!rZ   N__name__
__module____qualname__rl   rp    rZ   rX   rg   rg   \   s    
"rZ   rg   c                       e Zd ZddZd Zy)
RadioGroupc                     |st        d      || _        t        |t              | _        g | _        || _        d | _        y )NzRadioGroup created with no name)ri   TUre   fieldFlagValuesFfkidsTV)rk   nametooltip
fieldFlagss       rX   rl   zRadioGroup.__init__f   s;    >??J7	rZ   c           	         | j                   }t        |      }|dk  rt        d| j                  |fz        t	        | j
                  t        | j                   D cg c]  }| c}      t        d      t        | j                              }| j                  rt        | j                        |d<   | j                  rt        | j                        |d<   t        |      j                  |      }|S c c}w )Nr    z#RadioGroup:%s has %d < 2 RadioBoxesBtn)r{   KidsFTr}   r~   ry   )r|   lenri   r}   rO   r{   r   r	   r   r~   ry   r   rp   )rk   docr|   rW   krs         rX   rp   zRadioGroup.formato   s    yyIQ3j!F$&&QR!STT77DII 6q 67U^dff%	 66GDFFO1S677Ytww/AdG!##C( !7s   	C1N) noToggleToOff required radiorq   ru   rZ   rX   rw   rw   e   s    rZ   rw   c                     t        | t              r%ddj                  d | j                  D              z  S t        | t              r| j
                  S t        |       S )Nz[%s]r   c              3   2   K   | ]  }t        |        y wrn   _pdfObjToStr).0es     rX   	<genexpr>z_pdfObjToStr.<locals>.<genexpr>   s      GQa Gs   )rQ   r   joinsequencerg   rj   str)objs    rX   r   r      sF    #h G#,, GHHH#m$vvs8OrZ   c                   B   e Zd Zddddddddd	d
dddZd Zed        Zd Zd Zd Z	d Z
d Z	 	 	 	 	 	 	 	 	 d;dZed<d       Zd Zd Zd Zed         Zed!        Zd" Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d=d%Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d>d&Zd' Zddddddd(d)dd*g g d+d,fd-Zd. Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d?d0Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d@d1Zd/dddddd(d)d#d#ddd$d/ddddddg fd2Zd/dddddd(d)d#d#ddd$d3ddddddg fd4Zd5 Zd6 Zd7 Z d8 Z!d9 Z"ed:        Z#y)Ar   HelvHeBoCourCoBoCoObCoBOHeObHeBOTimeTiBoTiItTiBI)	HelveticazHelvetica-BoldCourierzCourier-BoldzCourier-ObliquezCourier-BoldObliquezHelvetica-ObliquezHelvetica-BoldObliquezTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalicc                     i | _         t        j                  |      | _        i | _        g | _        i | _        i | _        i | _        d | _	        i | _
        y rn   )referenceMapweakrefref_canvfontsfields_radios_refMap
_pdfdocencsigFlagsextras)rk   canvkwdss      rX   rl   zAcroForm.__init__   sK    [[&

rZ   c                 n    | j                         }|"t        d| j                  j                  z        |S )Nz%s.canv is no longer available)r   ri   	__class__rr   )rk   r   s     rX   r   zAcroForm.canv   s2    

==@W@WWXXrZ   c                 .    d|d| j                   |   dS )Nz
/Font << /  >>)r   )rk   fs     rX   fontRefzAcroForm.fontRef   s    '(A77rZ   c           
      b   t        t        | j                  D cg c]  }| j                  |       c}            }| j                  r| j                  |d<   | j
                  rt        t        | j
                  j                                     }|D cg c]  }| j                  |       }}t        d|d   z        |d<   t        d| j                  ddj                  |      d	      |d
<   |j                  | j                         t!        |      j#                  |      }|S c c}w c c}w )N)FieldsSigFlagsz/%s 0 Tf 0 gr   DAz<< /Encoding
<<
/RLAFencoding
z
>>

z
>>DR)rO   r   r   getRefr   r   rR   sortedkeysr   r   rg   	encRefStrr   updater   r   rp   )rk   r   r   rW   FKFr   s          rX   rp   zAcroForm.format   s    !4;;"Ga4;;q>"GH ==$--!J-::fTZZ__./0B*,-Qa-A-A 67AdG#Y]YgYghlhqhqrsht$uvAdG	!##C( #H
 .s   D'D,c                     ||j                   dk(  ryt        |t              r|j                         S |j	                         S )Nr   ru   )alpharQ   r   cmykrgb)rk   cs     rX   
colorTuplezAcroForm.colorTuple   s6     91%a	2qvvx??rZ   c                 ^    | j                  |      }t        | t        |      dk(  rdz   S dz   S )Nr"   z kz rgr   r   r   rk   r   ts      rX   streamFillColorzAcroForm.streamFillColor   1    OOAqz3q619488%88rZ   c                 ^    | j                  |      }t        | t        |      dk(  rdz   S dz   S )Nr"   z Kz RGr   r   s      rX   streamStrokeColorzAcroForm.streamStrokeColor   r   rZ   squareNr   rG   rN   c           	      V   
 g j                   }
}|dk(  r |d        j                  |      } |d       |d k7  r j                  |      }|dz  }
|z
  }|}|	dk(  r	 |d       n"|	dv r|	dk(  rd	t        |      z  }nd
} |d       |	dv rMd|z  }
|z
  }|}t	        |d      }|}|dk7  r||}} j                  |      } j                  |      } |d        |d       nT|dk(  rN 
fd}
dz  } j                  |      } |d        | ||              |d        |d       |d k7  r |d        j                  |      }|dz  }
|z
  }|	dk(  r	 |d       n/|	dv r+|	dk(  rd}nd
} |d        | |||z
                |d        |d       |	dv rd|z  }
|z
  }t	        |d      }t        |d      }d}d}|	dk(  r||}}|dk7  r||}} j                  |      } j                  |      } |d        | |||z
  d|              |d         | |||z
  d|              |d!       |d"k(  r j                  |      } j                  |      } |d#       t        |   }|dk(  r/|dk(  r* | t        
|z
  z
  d$      dz                |d       n ||j                  

|z
                |d       d%j                  |j                        t               z  j                  d&d'      j                  d(d%      } j                  

|t        d)      *      S )+Nr   qz11 g 1 G %(streamFill)s 0 0 %(size)s %(size)s re f      ?rK   zC%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l srH   rJ   rI   rG   rH   z
 [%s ] 0 dr   zQ%(streamStroke)s%(dash)s %(borderWidth)s w %(hbw)s %(hbw)s %(smbw)s %(smbw)s re srI   rJ   r    rC   a5  %(bbs0)s %(borderWidth)s %(borderWidth)s m %(borderWidth)s %(smbw)s l %(smbw)s %(smbw)s l %(sm2bw)s %(sm2bw)s l %(_2bw)s %(sm2bw)s l %(_2bw)s %(_2bw)s l f %(bbs1)s %(smbw)s %(smbw)s m %(smbw)s %(borderWidth)s l %(borderWidth)s %(borderWidth)s l %(_2bw)s %(_2bw)s l %(sm2bw)s %(_2bw)s l %(sm2bw)s %(sm2bw)s l fQcirclec                 ,     j                   | fi |S rn   )circleArcStream)_r_casKwdsrk   sizes     rX   <lambda>z%AcroForm.checkboxAP.<locals>.<lambda>   s    (<(<(<T"(Px(P rZ   zq 1 g 1 G %(streamFill)sr   zGq %(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l s Qz	 [3 ] 0 dz*%(streamStroke)s%(dash)s %(borderWidth)s wr^   rN   )r   r   )r    rN   rJ   zq %(bbs0)s %(borderWidth)s wT)rotatedarcszS Q %(bbs1)s qzS QYesz'q %(textFillColor)s %(textStrokeColor)sr   r     r   

z<< /ProcSet [/PDF] >>	Resources)appendr   r   r   r   r   cbmarksmaxscaledRenderr   __self__varsr]   
makeStreamrg   )rk   keyvaluebuttonStyleshape	fillColorborderColor	textColorrT   rU   r   rV   streamds
streamFillstreamStrokehbwsmbwdash_2bwsm2bwbbs0bbs1casr   _3bwha0a1textFillColortextStrokeColorcbms   `         `                    rX   
checkboxAPzAcroForm.checkboxAP   s    (?3K--i8JFGD #55kB!#ok),`a $II"H,+fWo=!no"66[=D 4KEB"9S1D$DCx%)4d//5D//5D  S  T3KH_PCSA--i8J-.3q6N3K3KD s#55kB!#oK',de $II"H,*!GH3qu:&3Ks"66cEEB"9S1D!)C0DBB"G+%)4dCx%)4d11$7D11$7D9:3qwt<=+,3qwt<=5M%< 00;M"44Y?O<=+&Ch;#8sC47A.345ss''T"W563K))FOO,tv5>>tCHPPQWX\]dF)*AB   	rZ   Fc                    g j                   }|j                  j                  }| dz  }| dz  }| |z  } ||z  }||z  }t        d|z        }t        |      }t        |      }|rdnd}	 |d       d|v r |       dk(  r |d	        |d
       d|v r |       dk(  r |d        |d       d|v r |       dk(  r |d        |d       d|v r |       dk(  r |d        |d       dj	                  |j                        t               z  S )Nr   g      4@gh?z0.7071 0.7071 -0.7071 0.7071z1 0 0 1z%(mx)s %(hsize)s %(hsize)s cmr   r   z	%(r)s 0 mz#%(r)s %(cp)s %(cp)s %(r)s 0 %(r)s cz	0 %(r)s mz&-%(cp)s %(r)s -%(r)s %(cp)s -%(r)s 0 cr    z
-%(r)s 0 mz(-%(r)s -%(cp)s -%(cp)s -%(r)s 0 -%(r)s crN   z
0 -%(r)s mz%%(cp)s -%(r)s %(r)s -%(cp)s %(r)s 0 cr   )r   r   __len__r   r   r   )
r   r   r   r   Rrlenhsizer   cpmxs
             rX   r   zAcroForm.circleArcStream4  s   IIzz!!s
4K	
	QGaK 1Iu/6+I	
)*9vqy!K.349vqy!K.679vqy!L/899vqy!L/56yy$tv--rZ   c                     t         |   }||z
  x}}|dz  }t        t        |d|            }||kD  r|||z  z  }|d||z
  z  z   }	d}
dt               z  S )N333333?ZapfDingbatsr   r   zCBT %(iFontName)s %(fs)s Tf %(dx)s %(dy)s Td %(fs)s TL (%(c)s) Tj ET)ZDSymsfloatr   r   )rk   r   r   r   	iFontNamerM   Hfswdxdys              rX   zdMarkzAcroForm.zdMarkP  sm    1IRAsU+ar23Q3!A#IB#qs)^TW[W]]]rZ   c                 L    | j                   j                  j                  |      S rn   )r   _doc	Referencerk   r   s     rX   r   zAcroForm.getRef\  s    yy~~'',,rZ   c                 |    t        | j                  |      j                  | j                  j                              S rn   )r   r   rp   r   r   r"  s     rX   	getRefStrzAcroForm.getRefStr_  s)    C(//		?@@rZ   c                 0   t        |t              s t        | t              st        |t              r5| xs t        dddd      |xs t        dddd      |xs t        dddd      fS | xs t        ddd      |xs t        ddd      |xs t        ddd      fS )	Nr   ?gQ?gjt?g?g?g`"?r   )rQ   r   r   )r   br   s      rX   	stdColorszAcroForm.stdColorsb  s    a	"j9&=AiAX-1Qq-q/IYq1S5I1KiPYZ^_defghPijj+s3s+Q-D%C2DaF]5QTUZ[\K]^^rZ   c                 ~    | dk7  r/| dk(  rt         nt        }|||fD cg c]  } ||d       c}\  }}}|||fS c c}w )NNr  r&  )r   r   )r   r   r'  r   funcr   s         rX   
varyColorszAcroForm.varyColorsi  sH    8 #X67D+,Qq'2QT!C[2EAa1u 3s   :c                    |r| j                   }|j                          |j                          |d k7  r*d|z  }|j                  |       |j	                  |	       d}ndx}}|d|z  z  }|d|z  z  }||z  }||z  }|j                  |
       |dk(  r|j                  |||||d       n+t        ||      dz  }|j                  ||z   ||z   ||d       |j                          y y )Nr   r   r   r    r   )strokefill)
r   	saveStateresetTransformssetLineWidthsetStrokeColorsetFillColorrectminr   restoreState)rk   rd   ywidthheightforceBorderr   rU   rT   r   r   r   r   r^   r   s                  rX   checkForceBorderzAcroForm.checkForceBorderp  s    99DNN  "D +o!!+.##K0CQsUNEaeOFHAHAi(h		!AeF!	;f%+AaC!AQA6+ rZ   r   rA   c                 T   |rdnd}| j                  |||      \  }}}| j                  }|r| j                  j                  |
|      \  }
}|j                  }i }dD ]  }i }| j	                  ||||      \  }}}dD ]  }| j                  ||||||||||	|      }|j                  | j                  v r| j                  |j                     }n*| j                  |      }|| j                  |j                  <   |||<    t        |      ||<   ~ t        t        d      |j                         t        |      t        |      t        |
||
|	z   ||	z   f      t        |      t        d      t        d      t        |t              t        |t               t        d	      
      }|rt#        |      |d<   |sdt%        | j&                        z  }|rt)        |||      |d<   t#        |      |d<   t        dt*        |   z  t        | j-                  |            t        | j-                  |                  } t        |       |d<   t        |      }| j                  j/                  |       | j&                  j1                  | j                  |             | j3                  |
||	|	||||||
       y )Nr   OffNDR)r   r>  	r   r   r   r   r   rT   rU   r   rV   r   WidgetAnnotr*  )r   Pr~   ASRectAPSubtypeTyper   r{   r  ry   AFF%03dBSr}   (%s)CABCBGMK)r(  r   absolutePositionr   r,  r  
_af_refstrr   r   r   rO   r	   thisPageRefr   re   annotationFlagValuesrz   r   r   r   rY   r  r   _addAnnotationr   r<  )!rk   checkedr   r   r   r   r   rT   rU   r   rd   r8  r   r   annotationFlagsr   r;  relativerV   initialValuer   r   rF  r   APVtCbCfCr   apr   CBrP  s!                                    rX   checkboxzAcroForm.checkbox  s   ( !(uU(,yY(W'	+iyy99--a2DAqii 	CCs9[KHBr"& __$'$)0;*/.002.00;0;)-,3 % & ==DLL0,,r}}5C++b/C25DLL/E
'( $C(BsG1	2 U^OO%L)\*1QtVAdF 34"2&!(+w'o.BCz/:#,  )BtHs4;;//D5[#I4D/3F;//DOOK89DOOI67
 !$42		  $4;;r?+a$tKk+VabklrZ   c                    || j                   vrYt        |||      }| j                  |      |_        || j                   |<   | j                  j                  |j                         n@| j                   |   }t        |t              }||j                  k7  rt        d|d|d      |st        d|d|      |r|nd}| j                  |||      \  }}}||k(  r@|j                  -|j                  |k7  r%t        d|d|d|j                        ||_        | j                  }|r| j                  j                  ||      \  }}|j                  }i }d	D ]  }i }| j                  ||||      \  }}}|dfD ]  }| j!                  |||k(  rd
nd|||||||	|
|      }|j"                  | j$                  v r| j$                  |j"                     } n*| j                  |      } | | j$                  |j"                  <   | ||<    t'        |      ||<   ~ t)        t+        d      |j-                         t+        |      t/        ||||
z   ||
z   f      t'        |      t+        d      t+        d      t        |t0              |j                  t+        d      
      }!t)        dt2        |   z  t/        | j5                  |            t/        | j5                  |                  }"|rt7        ||	|      |!d<   t'        |"      |!d<   t'        |!      }!| j                  j9                  |!       |j:                  j                  | j                  |!             | j=                  |||
|
|||	|||
       y )N)r   r   zradio..z created with different flagsz
bad value z for radio.r>  z% sets initial value conflicting with r?  r   r@  r   rA  rB  r*  )
r   rC  rD  rE  rF  rG  rH  r   Parentr  rK  rL  rJ  rP  )r   rw   r   _refr   r   re   rz   r{   ri   r(  r~   r   rQ  r   r,  r  rR  r   r   rO   r	   rS  r   rT  r  r   rY   rU  r|   r<  )#rk   r   selectedr   r   r   r   r   rT   rU   r   rd   r8  r   r   rW  r   r;  rX  rV   grouprY  r   r   rF  r   rZ  r[  r\  r]  rc   r^  r   RBrP  s#                                      rX   r$   zAcroForm.radio  s3   * t||#tGzJEU+EJ!&DLLKKuzz*LL&E":o>J588# tTY!Z[[E$GHH (ue(,yY(W'	+iww"77E>$[_`efkfmfm%nooyy99--a2DAqii 	CCs9[KHBr"E] __$'-.XE50;*/.002.00;0;)-,3 % & ==DLL0,,r}}5C++b/C25DLL/A'( $C(BsG1	2 U^OO%\*1QtVAdF 34"2&!(+w'o.BC#, F;//DOOK89DOOI67
 5[#I4 $42		  $

$++b/*a$tKk+VabklrZ   c                 ~   t        g d      |d<   t        dd||g      |d<   t        d      |d<   t        d      |d<   d	|d
<   t        t        |      || j                  j
                  j                  rt               gnd       }|dj                  d t        |j                               D              z   |_        |S )N)      ?        rj  ri  rj  rj  Matrixr   BBoxFormrG  XObjectrH  r   FormType)filtersr   c              3   B   K   | ]  \  }}|d t        |        yw)=Nr   )r   r   rc   s      rX   r   z&AcroForm.makeStream.<locals>.<genexpr>P  s     (d31QAl1o)F(ds   )r   r	   r
   r   r   r   compressionr   r   r   itemsrR  )rk   r9  r:  r   rC   r^   s         rX   r   zAcroForm.makeStream>  s     89(a%/0&	v)I&&	*a :>))..:T:T356Z^ dii(dRXYZY`Y`YbRc(deerZ   x   $   	textfieldz0.600006 0.756866 0.854904 rgz0 gc           
         g j                   }t        |      r| j                  |      } |d       |
d k7  rP|
dkD  rKt        |      r@|
dz  }||
z
  }||
z
  }d|
z  }|dv r2||z
  }||z
  }|dk(  rd}|s|rd}nd	}nd
}d	} |d       n
dx}x}}
|}|}d}t        |      rH|
rF| j                  |      }|dk(  r	 |d       n'|dv r#|dk(  rdt	        |      z  } d}nd|
z  }  |d       d|
z  }!||!z
  }"||!z
  }#| j                  |	      }$ |d       d|z  }%|dk(  r`t        |#|%z        }&|#t        |&      z  }%|&t        |      kD  rd}'t        |      }&nGt        |      dk  r)|r|d   nd}'|'r.|'|&k  rd}'n&t        |      |&z
  }(|'|(k\  r|(}'n|d   |&k  rd}'n|d   }'t        |      })|'|&z   }(|(|)kD  r|(|)z
  }'t        |)|'|&z         }*|r?|'}(||z
  |%z
  }) ||       |(|*k  r(|(|v r |dt	        |)      z         |)|%z  })|(dz  }(|(|*k  r(|'}(||z
  |z
  }) |d       |(|*k  r |d       |(|'k(  r |d        ||(|v r|nd        |dt	        |)      d t        ||(         d!       |)|%z  })|(dz  }( |d"       |(|*k  r_nS |d       ||z
  |z
  }) |d#       |j                  d$      D ]  }+ |d|)d t        |+      d!       |)|%z  })!  |d"       t	        |%      }% |d%       d$j                  |j                        t               z  j                  d&d'      j                  d(d$      }| j                  |||t!        d)t               z        *      S )+Nz,%(streamFill)s
0 0 %(width)s %(height)s re
fr   r   r    r   rI   z1 gz-0.250977 0.749023 -0.250977 rgz.75293 gz	.501953 ga)  %(bbs0)s
%(borderWidth)s %(borderWidth)s m
%(borderWidth)s %(bwh)s l
%(bww)s %(bwh)s l
%(bw2w)s %(bw2h)s l
%(_2bw)s %(bw2h)s l
%(_2bw)s %(_2bw)s l
f
%(bbs1)s
%(bww)s %(bwh)s m
%(bww)s %(borderWidth)s l
%(borderWidth)s %(borderWidth)s l
%(_2bw)s %(_2bw)s l
%(bw2w)s %(_2bw)s l
%(bw2w)s %(bw2h)s l
fr   rK   zD%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(width)s %(hbw)s l sr   rH   z
[%s ] 0 d
z[] 0 dz
%s wz>%(streamStroke)s
%(dash)s
%(hbw)s %(hbw)s %(bww)s %(bwh)s re
sr"   z5/Tx BMC 
q
%(_2bw)s %(_2bw)s %(w4bw)s %(h4bw)s re
W
nr  listboxr   z(%%(_2bw)s %s %%(w4bw)s %%(leading)s re
fz0 g
0 G
%(undash)sBTz/%(iFontName)s %(fontSize)s Tfz%(textFill)sz	%(_4bw)s z Td
(z) TjETz.BT
/%(iFontName)s %(fontSize)s Tf
%(textFill)sr   zQ
EMC
r   r   r   z/<< /ProcSet [/PDF /Text] /Font %(rFontName)s >>r   )r   r   r   r   r   ra   r  r   r6  r_   rb   r   r   r   r]   r   rg   ),rk   r   r   r  	rFontNamefontSizer   r   r   r   rT   rU   r9  r:  rV   wkindlabelsrE   sel_bgsel_fgr   r   r   bwwbwhr   bw2wbw2hr  r  undashr   r   _4bww4bwh4bwtextFillleadingnoptsi0ir8  ilimlines,                                               rX   txAPzAcroForm.txAPS  s   * y!--i8JCDQ;{3Kc/C+%C;&C[=D22t|}*, D K@)&D%D  R  S'((C($CC{#11+>LL(]^ EE(*VG_<D%F#k1DZ[}t|}''	2JK.)W%E5<'GS[ FQQqTA%xK%/q5!"BQ4:B1BFAU
AsQBqE?DTMG+vfAvJVTUYVWLAFA f A(A)*D&tb5;<av^<VAYvfQi?PQRWQt D& )*!D(AEFD) Qvd|DEW 4L/z))FOO,tv5>>tCHPPQWX\]vv)*[^b^d*de   	rZ   c                     |d}|| j                   vrt        d|z        | j                   |   }| j                  t        d|d|d| j                  d            }|| j
                  vr|| j
                  |<   ||fS )Nr   z7form font name, %r, is not one of the standard 14 fontsz<< /BaseFont /z /Subtype /Type1 /Name /z /Type /Font /Encoding r   )formFontNamesri   r$  rg   r   r   )rk   fontNamefnr   s       rX   makeFontzAcroForm.makeFont  s    "H4---VYaabb)nn] DNN,4 5 6TZZ DJJrNBwrZ   r   c                 2
   | j                  |      \  }}|d}| j                  |||      \  }}}| j                  }|r| j                  j                  |	|
      \  }	}
|j                  }d|d|d}t        |t              }|dk7  rd}|dk(  r|t        d   z  }g }g }g }g } g }!t        |t        t        f      st        |d	|d
      |D ]  }"t        |"      r|j                  t        |"             |"}#nqt        |"t        t        f      rJt        |"      dk(  r|"d   x}"}#n|"\  }#}"|j                  t        t        |"      t        |#      g             nt        |d|"d
      |j                  |"       |!j                  |#        t        |      }|rt        |t        t        f      s|g}|D ]n  }"|"|vr.|"|!vrt!        |d|"d|d|!      ||!j#                  |"         }"| j                  |j#                  |"             |j                  t        |"             p | j%                          |t        d   z  rt        |      dk(  r|dk(  r	|!| d      }n|d d }|d d }t        |      dk(  r|d   n
t        |      }t'        |!| |      }$n8t        |      }n,g x} }i }$d}t        |      st        d|z        t        |      }i }dD ]  }%| j)                  |%|||      \  }&}'}( | j*                  |%||||f|(|'|&|||||d$})|)j,                  | j.                  v r| j.                  |)j,                     }*n*| j1                  |)      }*|*| j.                  |)j,                  <   |*||%<    t'        t3        |      |j5                         ||t        |	|
|	|z   |
|z   f      t7        |      t3        d      t3        d      t        |t8              |t        d||| j;                  |      fz              }!|r||!d<   | rt        |       |!d<   |r||!d<   |rt        |      |!d<   |sdt        | j<                        z  }t        |      |!d <   t'        t        | j?                  |            !      }+|r-tA        |||      |!d"<   t        | j?                  |            |+d#<   t7        |+      |!d$<   t7        |!      }!| j                  jC                  |!       | j<                  j                  | j1                  |!             | jE                  |	|
|||d%||||
       y )&N   z<</r   z>>rw  Chchoicer.   z	 options=z is wrong typer   r   z option z value z is not in option
values z
or labels r1   )r  rE   r~  Txz textfield value=%r is wrong typer*  )r   r   r   rT   rU   r9  r:  rV   rA  rB  z/%s %d Tf %s)r   rC  r~   DVrE  rF  rG  rH  r   r{   r   OptrE   MaxLenry   rI  r}   )rO  rJ  rN  rP  r   )#r  r(  r   rQ  r   re   rz   rQ   rR   rS   	TypeErrorr   r   r   r   r   ri   indexr0   rO   r,  r  rR  r   r   r	   rS  r   rT  r   r   r   rY   rU  r<  ),rk   r   r   r   r   rT   rU   r9  r:  rd   r8  r   r   rW  r   r;  rX  maxlenr  r}  r~  optionsrV   r|  r  r   r   r{   r   r~   r  rF  rE   TFrc   llbextrasr   r[  r\  r]  r^  r   rP  s,                                               rX   
_textfieldzAcroForm._textfield  s	   0  $}}X6	9H(,yY(W'	+iyy99--a2DAqii$-i8	z/2+ Bhog..ACBABgtEl3w OPP 8JJy|,A4,/1vqyaD!!JJx1il(CDE#E!$LMM		!		! 3-C!%e5"GE +A{B;",hmnoprsu-v"ww "288A;AHHRXXa[)HHYq\*+ _];;E
Ah "1Q4 %bq	"1AFAIAaD8A;rAE:e$LAHB< BU JKK% A 	Cs9[KHBr"!%%$ ')(*&((3(3"'#)&- 'B  }},ll2==1kk"o.1R]]+BsG/	2 R[OO%1QuWQvX 67"2&!(+w'o.BC^y4CWCWXaCb.ccd C5	bg!BxL )BtHs4;;//DD/3DOOI67
 [W=BtH <=BtH $42		  $4;;r?+a%{8KP[\ghqrrZ   c                 N    | j                  |||||||||	|
||||||||||d      S )Nrw  )r   r   r   r   rT   rU   r9  r:  rd   r8  r   r   rW  r   r;  rX  r  r  r}  rV   r~  r  )rk   r   r   r   r   rT   rU   r9  r:  rd   r8  r   r   rW  r   r;  rX  r  r  r}  rV   s                        rX   rw  zAcroForm.textfieldz  sY    , #'#'' /%'!!!!+   	rZ   c                 P    | j                  |||||||||	|
||||||||||d|      S )Nry  r   r   r   r   rT   rU   r9  r:  rd   r8  r   r   rW  r   r;  rX  r  r  r}  rV   r~  r  r  rk   r   r   r   r   rT   rU   r9  r:  rd   r8  r   r   rW  r   r;  rX  r  r}  rV   r  r  s                         rX   ry  zAcroForm.listbox  s\    . #'#'' /%'!!!!-   	rZ   r.   c                 P    | j                  |||||||||	|
||||||||||d|      S )Nr  r  r  r  s                         rX   r  zAcroForm.choice  s\    . #'#'' /%'!!!!-   	rZ   c                 2    d|d<    | j                   di | y)zSsame as checkbox except the x and y are relative to the canvas coordinate transformTrX  Nru   )r`  rk   r   s     rX   checkboxRelativezAcroForm.checkboxRelative  s    ZrZ   c                 2    d|d<    | j                   di | y)zPsame as radio except the x and y are relative to the canvas coordinate transformTrX  Nru   )r$   r  s     rX   radioRelativezAcroForm.radioRelative  s    Z

TrZ   c                 2    d|d<    | j                   di | yzTsame as textfield except the x and y are relative to the canvas coordinate transformTrX  Nru   rw  r  s     rX   textfieldRelativezAcroForm.textfieldRelative      ZrZ   c                 2    d|d<    | j                   di | yr  r  r  s     rX   listboxRelativezAcroForm.listboxRelative  r  rZ   c                 2    d|d<    | j                   di | yr  r  r  s     rX   choiceRelativezAcroForm.choiceRelative  r  rZ   c                 p    | j                   st        d      | _         | j                  | j                         S )Na  <</Type /Encoding /Differences [24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde 39 /quotesingle 96 /grave 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction /guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron 160 /Euro 164 /currency 166 /brokenbar 168 /dieresis /copyright /ordfeminine 172 /logicalnot /.notdef /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu 183 /periodcentered /cedilla /onesuperior /ordmasculine 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis]>>)r   rg   r$  )rk   s    rX   r   zAcroForm.encRefStr  s/    +  -M  NDO~~doo..rZ   )	r   r   NNNr   rG      rN   ))r   r   r    rN   F)Fcheckr   NNNr   rG   r  r   r   NNrA   r   FFrN   )NFr   r   NNNr   rG   r  r   r   NNrA   r   FFrN   )r   NNNr   rG   ru  rv  r   r   NNrA   r   FFd   NNNNrN   )r   NNNr   rG   ru  rv  r   r   NNrA   r   FFr  NNrN   )$rr   rs   rt   r  rl   propertyr   r   rp   r   r   r   r  staticmethodr   r  r   r$  r(  r,  r<  r`  r$   r   r  r  r  rw  ry  r  r  r  r  r  r  r   ru   rZ   rX   r   r      s    !%#!'"
M	  8@99 % #fP . .6	^-A _ _   2 # # '%!%Qmh $ # '9!'amF6  #!6'}~
  # '!-Zsz  # '!),^  # '!+.`  # '"!+.`



 / /rZ   r   c                   @    e Zd Zdj                         ZdZddZddZy)CBMarkzm l c h)r   r   rN   r   c                 d    || _         |\  | _        | _        | _        | _        || _        || _        y rn   )opsxminyminxmaxymaxpointsslack)rk   r  r  boundsr  s        rX   rl   zCBMark.__init__)  s-    28/	$)DIdi
rZ   c           	         |d|z  z
  x}}| j                   | j                  | j                  z
  }| j                  z
  }| j                  t        ||      z  }|d|z  z
  t        |      z  |d|z  z
  t        |      z  t              x|z  }|z  }|||z
  dz  z   |||z
  dz  z   fd}fd}	| j                  }
| j                  }g j                  }d}| j                  }| j                  D ]L  }||   }t        |      D ],  } | |||                 | |	||dz                   |dz  }.  ||
|          N  |d       dj                  |j                        S )	a  
        >>> print(cbmarks['check'].scaledRender(20))
        12.97075 14.68802 m 15.00139 17.16992 l 15.9039 18.1727 17.93454 18.67409 19.2883 18.67409 c 19.46379 18.27298 l 17.13231 15.51532 l 11.91783 8.62117 l 8.307799 3.030641 l 7.430362 1.526462 l 7.305014 1.275766 7.154596 .97493 6.9039 .824513 c 6.577994 .674095 5.825905 .674095 5.47493 .674095 c 4.672702 .674095 4.497214 .674095 4.321727 .799443 c 4.071031 .97493 3.945682 1.325905 3.770195 1.67688 c 3.218663 2.830084 2.240947 5.337047 2.240947 6.590529 c 2.240947 7.016713 2.491643 7.21727 2.817549 7.442897 c 3.344011 7.818942 4.0961 8.245125 4.747911 8.245125 c 5.249304 8.245125 5.299443 7.818942 5.449861 7.417827 c 5.951253 6.239554 l 6.026462 6.038997 6.252089 5.337047 6.527855 5.337047 c 6.778552 5.337047 7.079387 5.913649 7.179666 6.089136 c 12.97075 14.68802 l h f
        >>> print(cbmarks['cross'].scaledRender(20))
        19.9104 17.43931 m 12.41908 10 l 19.9104 2.534682 l 18.37572 1 l 10.9104 8.491329 l 3.445087 1 l 1.910405 2.534682 l 9.427746 10 l 1.910405 17.46532 l 3.445087 19 l 10.9104 11.50867 l 18.37572 19 l 19.9104 17.43931 l h f
        >>> print(cbmarks['circle'].scaledRender(20))
        1.872576 9.663435 m 1.872576 14.64958 5.936288 18.61357 10.89751 18.61357 c 15.8338 18.61357 19.87258 14.59972 19.87258 9.663435 c 19.87258 4.727147 15.8338 .688366 10.89751 .688366 c 5.936288 .688366 1.872576 4.677285 1.872576 9.663435 c h f
        >>> print(cbmarks['star'].scaledRender(20))
        10.85542 18.3253 m 12.90361 11.84337 l 19.84337 11.84337 l 14.25301 7.650602 l 16.42169 1 l 10.85542 5.096386 l 5.289157 1 l 7.481928 7.650602 l 1.843373 11.84337 l 8.759036 11.84337 l 10.85542 18.3253 l h f
        >>> print(cbmarks['diamond'].scaledRender(20))
        17.43533 9.662031 m 15.63282 7.484006 l 10.85118 .649513 l 8.422809 4.329624 l 5.919332 7.659249 l 4.267038 9.662031 l 6.16968 12.0153 l 10.85118 18.64951 l 12.75382 15.4701 15.00695 12.49096 17.43533 9.662031 c h f
        r    r   c                 ,    t        | z
  z  z         S rn   r   )rc   r  sxr  s    rX   r   z%CBMark.scaledRender.<locals>.<lambda>J      ${2~. rZ   c                 ,    t        | z
  z  z         S rn   r   )rc   r  syr  s    rX   r   z%CBMark.scaledRender.<locals>.<lambda>K  r  rZ   r   r   r   r   )r  r  r  r  r  r6  r  opNamesopCountr   r  r  ranger   r   )rk   r   r   rM   r  r  hr  xscyscr  r  Cr  r  opr   _r  r  r  r  r  r  s                     @@@@@@rX   r   zCBMark.scaledRender/  s    qtAyyyyIIdNIIdN

3q8#!E'k58#!E'k58#b*R	R	RQ^Q^..,,,,II(( 	BA1X #fQi.!#fQqSk"#Q gbkN	 	
#xx

##rZ   N)g?)r   )rr   rs   rt   rb   r  r  rl   r   ru   rZ   rX   r  r  %  s    ooGG+$rZ   r  )r   r   r    r   r   r   r   r   r    r    r    r    r    r    r    r    r   r    r    r   rN   )T  "  i  i  C  i  i    i  r    i  it  r  i  i0  i  Q                     i      r     r     r  |   r  u   ik   r  f      _      I   r  "      r     r     ,      9   i  N     l   !     r     r     r     r8                  r     r     r              r  r  )r  ir  i  )r   r   r   r   r   r   r   r   r   r   r   r   r   rN   )  x  i  Z  r  ;     r   }  i   ^   r   #   r  iD  r  r  iy  r    r  i  r  r  r  r  )r  r   r  r  )r   r    r    r    r    rN   )r  r  r  r     r    r  S  r    i   r  r  r     r  r  r  r  r  r     r  r  )r  r  r  r  )r   r   r   r   r   r   r   r   r   r   r   rN   )  r  i      r   i&    i  r  r  r     r  i  r"  r  r   iB  r   r  r  )r  r  r!  r  )
r   r   r   r   r   r   r   r   r    rN   )0  r  i  i  )  r        r  i
  r  r  n   i  r%  r  iu  iB  i  i  r$  r  )r  r  r$  r  )r  crossr   stardiamond45r  r*  u__main__ru   ),__all__reportlab.pdfbase.pdfdocr   r   r   r   r   r	   r
   r   r   reportlab.pdfbase.pdfmetricsr   reportlab.lib.colorsr   r   r   r   r   reportlab.lib.rl_accelr   reportlab.lib.utilsr   r   r   rO   visibilitiesorientationsrz   rT  rP   rY   r_   re   rg   rw   r   r   r  r   r  rr   doctesttestmodru   rZ   rX   <module>r:     s`  ] ] ] 4 O O ) / #$ !	 	     !&	
  # "' " ! # #( $  !$ %& '( )* $+, %*-2 "!!!%#'
  # W 	- ' "I " 8[/y [/z5$ 5$n S g$
 > M"
 & S$
 8 B$
 2 B$+
6 #CsC@zGOO rZ   