§
    £”jh  ã                   ón  — d Z d                     ¦   «         ZdZddlmZ  G d„ d¦  «        Zdddd	œdd
dd	œd
d
dd	œdddd	œdddd	œgZd„ Zd„ Z	e
dk    r`dZeD ]]Z eed         ¦  «                             ed         ¦  «        Z eed         ¦  «                             ed         ¦  «        Zedz  ZŒ\dS dS )z
Arciv Stream  ciphering
zArcIV encode decodez1.0é    )Ú	isUnicodec                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚArcIVzâ
	performs 'ArcIV' Stream Encryption of S using key
	Based on what is widely thought to be RSA's ArcIV algorithm.
	It produces output streams that are identical.

	NB there is no separate decoder arciv(arciv(s,key),key) == s
	c                 ó<   — || _         |                      ¦   «          d S )N)Ú_keyÚreset)ÚselfÚkeys     úb/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/lib/arciv.pyÚ__init__zArcIV.__init__   s   € Ø€$„)Ø‡*‚*�,„,€,€,€,ó    c                 óÆ  — | j         }t          |¦  «        r|                     d¦  «        }t          t	          d¦  «        ¦  «        }t          t	          d¦  «        ¦  «        }t          |¦  «        }|D ]}|||z           dz  ||<   Œd}t	          d¦  «        D ]0}|||         z   ||         z   dz  }||         ||         c||<   ||<   Œ1|ddc| _        | _        | _        dS )z&restore the cipher to it's start stateÚutf8é   r   N)	r   r   ÚencodeÚlistÚrangeÚlenÚ_sboxÚ_iÚ_j)r	   r
   ÚsboxÚkÚlkÚiÚjs          r   r   zArcIV.reset   sí   € ð 	Œ	€#Ýˆs�^„^Ð-˜3Ÿ:š: fÑ-Ô-�SÝ	�e�C‰jŒjÑ	Ô	€$Ý
�5�‰:Œ:ÑÔ€!Ý
ˆ3�x„x€"Øð ð €aØ
ˆa�"‰fŒ+˜Ñ
€1€Q�4€4ð
 €!Ý�‰:Œ:ð 'ð '€aØ	ˆ$ˆqŒ'‰	�!�A”$‰˜#Ñ€1Ø˜1”g˜t AœwÐ€4ˆ�7ˆD�‰GˆGØ!% q¨!Ð€$„*ˆdŒg�t”w�w�wr   c                 ó   — | j         | j        | j        }}}t          |t          ¦  «        r"t          |                     d¦  «        ¦  «        n-t          |t          ¦  «        rt          |¦  «        n	|dd…         }t          |¦  «        }d}||k     rl|dz   dz  x| _        }|||         z   dz  x| _        }||         ||         c||<   ||<   ||         |||         ||         z   dz           z  ||<   |dz  }||k     °l|S )zn
		return the list of encoded bytes of B, B might be a string or a
		list of integers between 0 <= i <= 255
		r   Nr   é   r   )	r   r   r   Ú
isinstanceÚstrr   r   Úbytesr   )r	   ÚBr   r   r   ÚCÚnÚps           r   Ú_encodezArcIV._encode*   s  € ð
 Œz˜4œ7 D¤Gˆ1ˆ€$å *¨1­SÑ 1Ô 1Ða…dˆ1�8Š8�FÑÔÑÔÐÅ:ÈaÕPUÑCVÔCVÐ8`½¸Q¹¼¸Ð\]Ð^_Ð^_Ð^_Ô\`€!Ý	ˆ!�f„f€!Ø€!Ø	ˆ!Šˆà�a‘%˜3‘Ð€4„7ˆQØ�d˜1”g‘+ Ñ$Ð$€4„7ˆQà˜1”g˜t AœwÐ€4ˆ�7ˆD�‰Gà
ˆAŒ$��t˜A”w  a¤Ñ(¨CÑ/Ô0Ñ
0€1€Q�4Øˆ�6€1ð 	
ˆ!Šˆð 
€(r   c                 óF   — t          |                      |¦  «        ¦  «        S )zArcIV encode string S)r!   r&   )r	   ÚSs     r   r   zArcIV.encode?   s   € å	ˆt�|Š|˜A‰ŒÑ	Ô	Ðr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r&   r   © r   r   r   r   	   sZ   € € € € € ðð ðð ð ð,ð ,ð ,ð*ð ð ð* ð  ð  ð  ð  r   r   s   #Eg‰«Íïs   u·‡€™àÅ–)r
   ÚinputÚoutputs           s   t”ÂçKys   Þ‰A£7]:s   ï#Es
             s
   Ö¡A§ì<8ß½as   s   u•ÃæJ	xJÔR3ŽýšéI��=vS4I¶w�ÊØÇŠ�+©¬f]SÕœ&ÂÑÄ�Áë¾æmk¶¹¸GÂZ‘Dz•ç^NñgyÍè¿
•…2¯–‰DOÓw�˜ýËÔç&Vu ™Ì~£Äª££‡Ò;�»ÍB¡½1zCÝ¥«ˆ–®€Á‹
ömÿ1–ëxNIZÒÎ�×÷r¨G¶_b	;¹åºS/¯ìGPƒ#æq2}ùDD2ËsgÎÈ/]DÀÐgÖP uÍKpÞÝwë›#k[tG9mb‰t!Ô=ù´.Dn5Žœ©²NËïØç¨wï–��ì›=5¥X\°	)/ÍçµìfÙKä@U¦ÙÝÃo”‡÷Ë')BdE™…Á]S¡Œ†Lã¢·UW“˜�&R¬òãn#‘¾äÝSõý³[Ùœs]=›Ã5îžö›8g¿-{Ñê¥•Ø¿ÀoøÓ	ëlª l€zb>øL=3Á•Ò>ã ÄàU�WÈ"Ô¸ÅiØI®Õ�N×óyXkKö„íjŸt†Ô›œK­›¢K–«ù$7,Š�ÿ±U5I §z=µòá¹ŸÍ†`†:šÔ«ä¤‰4=ÝåB¦XU@ýh<¿ØÀš(MêÌLÞþX¾q7Tq&ÈÔž'U«·é@°Àc                 óF   — t          |¦  «                             | ¦  «        S )z.One-line shortcut for making an encoder object©r   r   ©Útextr
   s     r   r   r   È   s   € åˆc‰
Œ
×Ò˜$ÑÔÐr   c                 óF   — t          |¦  «                             | ¦  «        S )zOne-line shortcut for decodingr1   r2   s     r   Údecoder5   Ì   s   € õ 	ˆc‰
Œ
×Ò˜$ÑÔÐr   Ú__main__r
   r.   r/   r   N)r,   ÚsplitÚ__all__Ú__version__Úreportlab.lib.utilsr   r   Ú_TESTSr   r5   r)   r   ÚtÚor-   r   r   ú<module>r>      s~  ððð ð 	"×'Ò'Ñ)Ô)€Ø€Ø )Ð )Ð )Ð )Ð )Ð )ð8 ð 8 ð 8 ð 8 ð 8 ñ 8 ô 8 ð 8 ðv 
-Ø.Ø/ð	ð 	ð 
-Ø.Ø/ðð ð 
-Ø.Ø/ðð ð 
Ø6Ø7ðð ð 
-ð3ðh3ðmjð jð1C€ðJ ð  ð  ð ð  ð  ð
 ˆZÒÐØ€Ø
ð 	ð 	€QØ€eˆAˆeŒH�o„o×Ò˜Q˜wœZÑ(Ô(€!Ø€eˆAˆeŒH�o„o×Ò˜Q˜xœ[Ñ)Ô)€!Ø€q�&€!€!ð Ðð	ð 	r   