§
    ¢”jQ$  ã                  ó”  — d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZmZmZmZ 	 d dlmZ n# e$ r dZY nw xY wd dlmZ d dlmZ d d	lmZ d
gZ ej        d¦  «        ZdddœZded         › d�Zed„ ¦   «         Zd5d„Zd6d„Z d7d„Z!d8d"„Z"d9d&„Z#d:d*„Z$d;d,„Z%d<d.„Z&d=d2„Z' e ej(        d3¦  «        ¦  «        d>d4„¦   «         Z)dS )?é    )ÚannotationsN)Úcache)ÚchainÚcount)ÚDictÚIterableÚIteratorÚListÚOptionalÚSetÚTuple)Úetree)ÚttLib)Ú_add_method)ÚSVGDocumentÚsubset_glyphsz^glyph(\d+)$zhttp://www.w3.org/2000/svgzhttp://www.w3.org/1999/xlink)ÚsvgÚxlinkÚ{r   z}hrefc                ó8   — t          j        | t          ¬¦  «        S )N)Ú
namespaces)r   ÚXPathÚ
NAMESPACES)Úpaths    úc/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/subset/svg.pyÚxpathr       s   € õ Œ;�t­
Ð3Ñ3Ô3Ð3ó    Útreeúetree.ElementÚreturnúDict[str, etree.Element]c                óF   — d„  t          d¦  «        | ¦  «        D ¦   «         S )Nc                ó*   — i | ]}|j         d          |“ŒS )Úid)Úattrib)Ú.0Úels     r   ú
<dictcomp>z(group_elements_by_id.<locals>.<dictcomp>*   s    € ÐFÐFÐF BˆBŒI�dŒO˜RÐFÐFÐFr   z//svg:*[@id])r   )r   s    r   Úgroup_elements_by_idr)   &   s,   € ð GÐFÐ*?­%°Ñ*?Ô*?ÀÑ*EÔ*EÐFÑFÔFÐFr   Ú
style_attrÚstrúDict[str, str]c                ó@  — i }|                       d¦  «        D ]…}|                     d¦  «        dk    rD|                      d¦  «        \  }}|                     ¦   «         }|                     ¦   «         ||<   Œ_|                     ¦   «         rt          d|› �¦  «        ‚Œ†|S )Nú;ú:é   z Invalid CSS declaration syntax: )Úsplitr   ÚstripÚ
ValueError)r*   ÚresultÚdeclarationÚproperty_nameÚvalues        r   Úparse_css_declarationsr8   -   s¶   € ð €FØ!×'Ò'¨Ñ,Ô,ð Oð OˆØ×Ò˜SÑ!Ô! QÒ&Ð&Ø#.×#4Ò#4°SÑ#9Ô#9Ñ ˆM˜5Ø)×/Ò/Ñ1Ô1ˆMØ$)§K¢K¡M¤MˆF�=Ñ!Ð!Ø×ÒÑ Ô ð 	OÝÐMÀÐMÐMÑNÔNÐNð	Oà€Mr   úIterator[str]c              #  ó’  K  — t          d¦  «        }t          | g || ¦  «        ¦  «        D ]š}t          |¦  «        }|�|V — |j        }d|v r+i t	          |¦  «        ¥t          |j        d         ¦  «        ¥}dD ]J}||v rD||         }|                     d¦  «        r'|                     d¦  «        r|dd…         }|sJ ‚|V — ŒKŒ›d S )NzŠ.//svg:*[ starts-with(@xlink:href, '#') or starts-with(@fill, 'url(#') or starts-with(@clip-path, 'url(#') or contains(@style, ':url(#') ]Ústyle)Úfillz	clip-pathzurl(#ú)é   éÿÿÿÿ)r   r   Úhref_local_targetr%   Údictr8   Ú
startswithÚendswith)r   Ú!find_svg_elements_with_referencesr'   Úref_idÚattrsÚattrr7   s          r   Úiter_referenced_idsrH   ;   s  è è € õ
 ).ð	ñ)ô )Ð%õ �T�FÐ=Ð=¸dÑCÔCÑDÔDð !ð !ˆÝ" 2Ñ&Ô&ˆØÐØˆLˆLˆLà”	ˆØ�eÐÐØQ•t˜E‘{”{ÐQÕ&<¸R¼YÀwÔ=OÑ&PÔ&PÐQˆEØ)ð 	!ð 	!ˆDØ�uˆ}ˆ}Ø˜dœ�Ø×#Ò# GÑ,Ô,ð !°·²ÀÑ1DÔ1Dð !Ø" 1 R 4œ[�FØ!�M�M�MØ �L�L�Løð	!ð!ð !r   ÚelementsÚelement_idsúSet[str]ÚNonec                óÎ   — |}|r`t          ¦   «         }|D ]/}|| vrŒ|                     t          | |         ¦  «        ¦  «         Œ0||z  }|                     |¦  «         |}|°^d S d S ©N)ÚsetÚupdaterH   )rI   rJ   Ú	unvisitedÚ
referencedÚel_ids        r   Úclosure_element_idsrT   Y   sž   € ð
 €IØ
ð 	Ý"™uœuˆ
Øð 	Dð 	DˆEØ˜HÐ$Ð$àØ×ÒÕ1°(¸5´/ÑBÔBÑCÔCÐCÐCØ�kÑ!ˆ
Ø×Ò˜:Ñ&Ô&Ð&Øˆ	ð ð 	ð 	ð 	ð 	ð 	r   r'   Úretained_idsÚboolc                óþ   ‡— | j                              d¦  «        ‰v rdS t          ˆfd„| D ¦   «         ¦  «        rdS t          | ¦  «        dk    sJ ‚|                      ¦   «         }|�|                     | ¦  «         dS )Nr$   Tc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS © )Úsubset_elements)r&   ÚerU   s     €r   ú
<listcomp>z#subset_elements.<locals>.<listcomp>u   s#   ø€ Ð9Ð9Ð9°�O˜A˜|Ñ,Ô,Ð9Ð9Ð9r   r   F)r%   ÚgetÚanyÚlenÚ	getparentÚremove)r'   rU   Úparents    ` r   rZ   rZ   k   sŒ   ø€ ð 
„y‡}‚}�TÑÔ˜lÐ*Ð*àˆtõ Ð9Ð9Ð9Ð9°bÐ9Ñ9Ô9Ñ:Ô:ð ØˆtÝˆr‰7Œ7�aŠ<ˆ<ˆ<ˆ<Ø�\Š\‰^Œ^€FØÐØ�Š�bÑÔÐØˆ5r   r   Úglyph_index_mapúDict[int, int]c                ó   — t          | ¦  «        }i }|                     ¦   «         D ]§\  }}t                               |¦  «        }|sŒ"t	          |                     d¦  «        ¦  «        }|                     |¦  «        }|�||k    rŒbd|› �}	n0d|› �}	t          d¦  «        }
|	|v r|	› dt          |
¦  «        › �}	|	|v °|	||<   |	|j	        d<   Œ¨|S )Nr0   Úglyphú.r$   )
r)   ÚitemsÚGID_REÚmatchÚintÚgroupr]   r   Únextr%   )r   rc   rI   Úid_maprS   r'   ÚmÚ	old_indexÚ	new_indexÚnew_idÚns              r   Úremap_glyph_idsrt   ~   s   € õ
 $ CÑ(Ô(€HØ€FØ—^’^Ñ%Ô%ð !ð !‰	ˆˆrÝ�LŠL˜ÑÔˆØð 	ØÝ˜Ÿš ™
œ
‘O”Oˆ	Ø#×'Ò'¨	Ñ2Ô2ˆ	ØÐ Ø˜IÒ%Ð%ØØ(˜YÐ(Ð(ˆFˆFð
 !˜�[�[ˆFÝ�a‘”ˆAØ˜HÐ$Ð$Ø"Ð.Ð.¥T¨!¡W¤WÐ.Ð.�ð ˜HÐ$Ð$ð ˆˆu‰Ø ˆŒ	�$‰ˆà€Mr   úOptional[str]c                óª   — t           | j        v rD| j        t                    }|                     d¦  «        rt          |¦  «        dk    r
|dd …         S d S )Nú#r0   )Ú
XLINK_HREFr%   rB   r_   )r'   Úhrefs     r   r@   r@   ž   sO   € Ý�R”YÐÐØŒy�Ô$ˆØ�?Š?˜3ÑÔð 	¥C¨¡I¤I°¢M MØ˜˜˜”8ˆOØˆ4r   rn   c                óž   —  t          d¦  «        | ¦  «        D ]3}t          |¦  «        }|€J ‚||v r||         }d|› �|j        t          <   Œ4d S )Nz,.//svg:*[starts-with(@xlink:href, '#glyph')]rw   )r   r@   r%   rx   )r   rn   r'   Úold_idrr   s        r   Úupdate_glyph_href_linksr|   ¦   sn   € àC�eÐBÑCÔCÀCÑHÔHð 1ð 1ˆÝ" 2Ñ&Ô&ˆØÐ!Ð!Ð!Ø�VÐÐØ˜F”^ˆFØ$0¨ L LˆBŒI•jÑ!øð1ð 1r   ÚintsúIterable[int]úIterator[Tuple[int, int]]c              #  óæ   K  — t          t          t          | ¦  «        ¦  «        ¦  «        }	 t          |¦  «        x}}n# t          $ r Y d S w xY w|D ]}|dz
  |k    r|}Œ||fV — |x}}Œ||fV — d S )Nr0   )ÚiterÚsortedrO   rm   ÚStopIteration)r}   Úsorted_intsÚstartÚendÚvs        r   Úrangesrˆ   °   s°   è è € å•v�c $™iœiÑ(Ô(Ñ)Ô)€KðÝ˜;Ñ'Ô'Ð'ˆ��øÝð ð ð Øˆˆðøøøàð ð ˆØˆq‰5�CŠ<ˆ<ØˆCˆCà˜#�,ÐÐÐØˆOˆE�C�CØ�#ˆ,ÐÐÐÐÐs   ­? ¿
AÁAzSVG c           
     óª  ‡‡‡— t           €t          d¦  «        ‚|j        Š|j        Š|j        Šg }| j        D �]€}ˆfd„t          |j        |j        dz   ¦  «        D ¦   «          	                    |j
        ¦  «        }|sŒGt          j        |j                             d¦  «        t          j        ddd¬¦  «        ¬¦  «        }t          |¦  «        }ˆfd	„|D ¦   «         }d
„ |D ¦   «         }t!          ||¦  «         t#          ||¦  «        sŒÔ|j        j        s t)          |‰¦  «        }	t+          ||	¦  «         t          j        ||j        j        ¬¦  «                             d¦  «        }
ˆfd„|D ¦   «         }t3          |¦  «        D ]/\  }}|                     t7          |
|||j        ¦  «        ¦  «         Œ0�Œ‚|| _        t;          | j        ¦  «        S )Nz.No module named 'lxml', required to subset SVGc                ó    •— h | ]
}‰|         ’ŒS rY   rY   )r&   ÚiÚglyph_orders     €r   ú	<setcomp>z subset_glyphs.<locals>.<setcomp>Î   s*   ø€ ð 
ð 
ð 
Ø ˆK˜ŒNð
ð 
ð 
r   r0   zutf-8TF)Ú	huge_treeÚremove_blank_textÚresolve_entities)Úparserc                ó    •— h | ]
}‰|         ’ŒS rY   rY   )r&   ÚgÚrev_orig_glyph_maps     €r   r�   z subset_glyphs.<locals>.<setcomp>é   s   ø€ Ð6Ð6Ð6¨!Ð" 1Ô%Ð6Ð6Ð6r   c                ó   — h | ]}d |› �’ŒS )rf   rY   )r&   r‹   s     r   r�   z subset_glyphs.<locals>.<setcomp>ê   s   € Ð1Ð1Ð1 q�{˜q�{�{Ð1Ð1Ð1r   )Úpretty_printc              3  ó(   •K  — | ]}‰|         V — Œd S rN   rY   )r&   r‹   rc   s     €r   ú	<genexpr>z subset_glyphs.<locals>.<genexpr>ö   s(   øè è € Ð5Ð5¨1�O AÔ&Ð5Ð5Ð5Ð5Ð5Ð5r   )r   ÚImportErrorÚorig_glyph_orderÚreverseOrigGlyphMaprc   ÚdocListÚrangeÚstartGlyphIDÚ
endGlyphIDÚintersectionÚglyphsÚ
fromstringÚdataÚencodeÚ	XMLParserr)   rT   rZ   ÚoptionsÚretain_gidsrt   r|   ÚtostringÚ
pretty_svgÚdecoderˆ   Úappendr   Ú
compressedrV   )ÚselfÚsÚnew_docsÚdocr¡   r   rI   ÚgidsrJ   rn   Únew_docÚnew_gidsr…   r†   rc   rŒ   r”   s                 @@@r   r   r   À   s"  øøø€ å€}ÝÐJÑKÔKÐKð Ô/€Kà)*Ô)>Ðà&'Ô&7€Oà"$€HØŒ|ð +Nñ +Nˆð
ð 
ð 
ð 
Ý$)¨#Ô*:¸C¼NÈQÑ<NÑ$OÔ$Oð
ñ 
ô 
ç
Š,�q”xÑ
 Ô
 ð 	ð ð 	àåÔð ŒH�OŠO˜GÑ$Ô$Ý”?ð
 ð #'ð "'ðñ ô ð	
ñ 
ô 
ˆõ& (¨Ñ,Ô,ˆØ6Ð6Ð6Ð6¨vÐ6Ñ6Ô6ˆØ1Ð1¨DÐ1Ñ1Ô1ˆÝ˜H kÑ2Ô2Ð2å˜s KÑ0Ô0ð 	ØàŒyÔ$ð 	1Ý$ S¨/Ñ:Ô:ˆFÝ# C¨Ñ0Ô0Ð0å”. °1´9Ô3GÐHÑHÔH×OÒOÐPWÑXÔXˆà5Ð5Ð5Ð5°Ð5Ñ5Ô5ˆÝ  Ñ*Ô*ð 	Nð 	N‰JˆE�3Ø�OŠO�K¨°¸¸S¼^ÑLÔLÑMÔMÐMÐMñ	Nð €D„Lå�”ÑÔÐr   )r   r   r    r!   )r*   r+   r    r,   )r   r   r    r9   )rI   r!   rJ   rK   r    rL   )r'   r   rU   rK   r    rV   )r   r   rc   rd   r    r,   )r'   r   r    ru   )r   r   rn   r,   r    rL   )r}   r~   r    r   )r    rV   )*Ú
__future__r   ÚreÚ	functoolsr   Ú	itertoolsr   r   Útypingr   r   r	   r
   r   r   r   Úlxmlr   r™   Ú	fontToolsr   ÚfontTools.subset.utilr   ÚfontTools.ttLib.tables.S_V_G_r   Ú__all__Úcompileri   r   rx   r   r)   r8   rH   rT   rZ   rt   r@   r|   rˆ   ÚgetTableClassr   rY   r   r   ú<module>rÀ      sW  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GðØÐÐÐÐÐÐøØð ð ð ð €E€E€Eðøøøð
 Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ð Ð
€ð 
ˆŒ�OÑ	$Ô	$€ð (Ø+ðð €
ð .�*˜WÔ%Ð-Ð-Ð-€
ð ð4ð 4ñ „ð4ð
Gð Gð Gð Gðð ð ð ð!ð !ð !ð !ð<ð ð ð ð$ð ð ð ð&ð ð ð ð@ð ð ð ð1ð 1ð 1ð 1ðð ð ð ð  €Ð ˆUÔ  Ñ(Ô(Ñ)Ô)ð;ð ;ð ;ñ *Ô)ð;ð ;ð ;s   ¬3 ³=¼=