Ë
    ìì�i�C  ã                   ó  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
 ddl	mZ ddl	mZ ddl	mZ ddl	mZ dd	l	mZ dd
lmZ ddlmZ ddlmZ  G d„ de«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d «      Z G d!„ d"e
«      Z  G d#„ d$«      Z!d%„ Z"d&„ Z#e$d'k(  r# ejJ                   e#ejL                  «      «       yy)(a   Adobe character mapping (CMap) support.

CMaps provide the mapping between character codes and Unicode
code-points to character ids (CIDs).

More information is available on the Adobe website:

  http://opensource.adobe.com/wiki/display/cmap/CMap+Resources

é    Né   )ÚPSStackParser)ÚPSSyntaxError)ÚPSEOF)Ú	PSLiteral)Úliteral_name)ÚKWD)Úname2unicode)Úchoplist)Únunpackc                   ó   — e Zd Zy)Ú	CMapErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    út/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/pdfminer/cmapdb.pyr   r   !   s   „ Ør   r   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚCMapBaser   c                 ó.   — |j                  «       | _        y ©N)ÚcopyÚattrs©ÚselfÚkwargss     r   Ú__init__zCMapBase.__init__+   s   € Ø—[‘[“]ˆŒ
Ør   c                 ó@   — | j                   j                  dd«      dk7  S )NÚWModer   ©r   Úget©r   s    r   Úis_verticalzCMapBase.is_vertical/   s   € Ø�z‰z�~‰~˜g qÓ)¨QÑ.Ð.r   c                 ó"   — || j                   |<   y r   )r   )r   ÚkÚvs      r   Úset_attrzCMapBase.set_attr2   s   € Øˆ�
‰
�1‰Ør   c                  ó   — y r   r   )r   ÚcodeÚcids      r   Úadd_code2cidzCMapBase.add_code2cid6   ó   € Ør   c                  ó   — y r   r   ©r   r,   r+   s      r   Úadd_cid2unichrzCMapBase.add_cid2unichr9   r.   r   c                  ó   — y r   r   )r   Úcmaps     r   Úuse_cmapzCMapBase.use_cmap<   r.   r   N)
r   r   r   Údebugr   r%   r)   r-   r1   r4   r   r   r   r   r   '   s%   „ à€Eòò/òòòór   r   c                   óF   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  ddfd„Z	y)ÚCMapc                 ó>   — t        j                  | fi |¤Ž i | _        y r   )r   r   Úcode2cidr   s     r   r   zCMap.__init__D   s   € Ü×Ñ˜$Ñ) &Ò)ØˆŒØr   c                 ó>   — d| j                   j                  d«      z  S )Nz
<CMap: %s>ÚCMapNamer"   r$   s    r   Ú__repr__zCMap.__repr__I   s   € Ø˜dŸj™jŸn™n¨ZÓ8Ñ8Ð8r   c                 ón   ‡— t        |t        «      sJ ‚ˆfd„Š ‰| j                  |j                  «       y )Nc                 ó‚   •— |j                  «       D ]+  \  }}t        |t        «      ri }|| |<    ‰||«       Œ'|| |<   Œ- y r   )ÚitemsÚ
isinstanceÚdict)ÚdstÚsrcr'   r(   Údr   s        €r   r   zCMap.use_cmap.<locals>.copyO   sF   ø€ ØŸ)™)›+ò ‘��AÜ˜a¤Ô&Ø�AØ�C˜‘FÙ˜˜A•Jà�C˜’Fñr   )r@   r7   r9   )r   r3   r   s     @r   r4   zCMap.use_cmapL   s/   ø€ Ü˜$¤Ô%Ð%Ð%ô	ñ 	ˆT�]‰]˜DŸM™MÔ*Ør   c              #   óî   K  — | j                   rt        j                   d| ›d|›�«       | j                  }|D ]9  }||v r'||   }t        |t        «      sŒ|–— | j                  }Œ.| j                  }Œ; y ­w)Nzdecode: ú, )r5   Úloggingr9   r@   Úint)r   r+   rD   Úcs       r   ÚdecodezCMap.decodeZ   sl   è ø€ Ø�:Š:Ü�MŠMªd±DÐ9Ô:Ø�M‰MˆØò 	"ˆAØ�A‰vØ�a‘D�Ü˜a¤Õ%Ø’GØŸ™‘Aà—M‘M‘ð	"ð 	ùs   ‚AA5Á A5Nc                 óè   — |€| j                   }d}t        |j                  «       «      D ]F  \  }}||fz   }t        |t        «      r|j                  d||fz  «       Œ3| j                  |||¬«       ŒH y )Nr   zcode %r = cid %d
)Úoutr9   r+   )r9   Úsortedr?   r@   rH   ÚwriteÚdump)r   rL   r9   r+   r'   r(   rI   s          r   rO   z	CMap.dumph   sw   € ØÐØ—}‘}ˆHØˆDÜ˜XŸ^™^Ó-Ó.ò 	7‰FˆQ�Ø�a�T‘	ˆAÜ˜!œSÔ!Ø—	‘	Ð.°!°Q°Ñ7Õ8à—	‘	˜c¨A°A�	Õ6ð	7ð 	r   )
r   r   r   r   r<   r4   rJ   ÚsysÚstdoutrO   r   r   r   r7   r7   B   s(   „ òò
9òòð —z‘z¨D°tô 
r   r7   c                   ó   — e Zd Zd„ Zy)ÚIdentityCMapc                 óV   — t        |«      dz  }|rt        j                  d|z  |«      S y)Né   z>%dHr   )ÚlenÚstructÚunpack)r   r+   Úns      r   rJ   zIdentityCMap.decodey   s*   € Ü�‹I�q‰LˆÙÜ—=‘= ¨!¡¨TÓ2Ð2àr   N)r   r   r   rJ   r   r   r   rS   rS   w   s   „ ór   rS   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zej                  fd„Zy)Ú
UnicodeMapc                 ó>   — t        j                  | fi |¤Ž i | _        y r   )r   r   Ú
cid2unichrr   s     r   r   zUnicodeMap.__init__…   s   € Ü×Ñ˜$Ñ) &Ò)ØˆŒØr   c                 ó>   — d| j                   j                  d«      z  S )Nz<UnicodeMap: %s>r;   r"   r$   s    r   r<   zUnicodeMap.__repr__Š   s   € Ø! D§J¡J§N¡N°:Ó$>Ñ>Ð>r   c                 ón   — | j                   rt        j                   d| ›d|›�«       | j                  |   S )Nzget_unichr: rF   )r5   rG   r]   )r   r,   s     r   Ú
get_unichrzUnicodeMap.get_unichr�   s)   € Ø�:Š:Ü�MŠM²$¹Ð<Ô=Ø�‰˜sÑ#Ð#r   c                 ó†   — t        | j                  j                  «       «      D ]  \  }}|j                  d||fz  «       Œ y )Nzcid %d = unicode %r
)rM   r]   r?   rN   )r   rL   r'   r(   s       r   rO   zUnicodeMap.dump’   s@   € Ü˜TŸ_™_×2Ñ2Ó4Ó5ò 	8‰FˆQ�Ø�I‰IÐ-°°A°Ñ6Õ7ð	8àr   N)	r   r   r   r   r<   r`   rP   rQ   rO   r   r   r   r[   r[   ƒ   s   „ òò
?ò$ð
 —z‘zô r   r[   c                   ó   — e Zd Zd„ Zy)ÚFileCMapc                 óÖ   — t        |t        «      rt        |t        «      sJ ‚| j                  }|d d D ]   }t	        |«      }||v r||   }Œi }|||<   |}Œ" t	        |d   «      }|||<   y ©Néÿÿÿÿ)r@   ÚbytesrH   r9   Úord)r   r+   r,   rD   rI   Úts         r   r-   zFileCMap.add_code2cidœ   s€   € Ü˜$¤Ô&¬:°c¼3Ô+?Ð?Ð?Ø�M‰MˆØ�c�r�ò 	ˆAÜ�A“ˆAØ�A‰vØ�a‘D‘à�Ø��!‘Ø‘ð	ô ��R‘‹MˆØˆˆ!‰Ør   N)r   r   r   r-   r   r   r   rc   rc   š   s   „ ór   rc   c                   ó   — e Zd Zd„ Zy)ÚFileUnicodeMapc                 óT  — t        |t        «      sJ ‚t        |t        «      r#t        |j                  «      | j
                  |<   y t        |t        «      r |j                  dd«      | j
                  |<   y t        |t        «      rt        |«      | j
                  |<   y t        |«      ‚)NzUTF-16BEÚignore)
r@   rH   r   r
   Únamer]   rg   rJ   ÚchrÚ	TypeErrorr0   s      r   r1   zFileUnicodeMap.add_cid2unichr°   s‘   € Ü˜#œsÔ#Ð#Ð#Ü�dœIÔ&ä#/°·	±	Ó#:ˆD�O‰O˜CÑ ð 	ô ˜œeÔ$à#'§;¡;¨z¸8Ó#DˆD�O‰O˜CÑ ð
 	ô	 ˜œcÔ"Ü#& t£9ˆD�O‰O˜CÑ ð 	ô ˜D“/Ð!r   N)r   r   r   r1   r   r   r   rk   rk   ®   s   „ ór   rk   c                   ó   — e Zd Zd„ Zy)ÚPyCMapc                 óŠ   — t         j                  | |¬«       |j                  | _        |j                  rd| j
                  d<   y ©N)r;   r   r!   )r7   r   ÚCODE2CIDr9   ÚIS_VERTICALr   )r   rn   Úmodules      r   r   zPyCMap.__init__Ã   s7   € Ü�‰�d TˆÔ*ØŸ™ˆŒØ×ÒØ"#ˆD�J‰J�wÑØr   N©r   r   r   r   r   r   r   rr   rr   Á   s   „ ór   rr   c                   ó   — e Zd Zd„ Zy)ÚPyUnicodeMapc                 óš   — t         j                  | |¬«       |r!|j                  | _        d| j                  d<   y |j
                  | _        y rt   )r[   r   ÚCID2UNICHR_Vr]   r   ÚCID2UNICHR_H)r   rn   rw   Úverticals       r   r   zPyUnicodeMap.__init__Ï   sJ   € Ü×Ñ˜D¨4ÐÔ0ÙØ$×1Ñ1ˆDŒOØ"#ˆD�J‰J�wÑð 	ð %×1Ñ1ˆDŒOØr   Nrx   r   r   r   rz   rz   Í   s   „ ór   rz   c                   ó\   — e Zd Zi Zi Z G d„ de«      Zed„ «       Zed„ «       Z	edd„«       Z
y)ÚCMapDBc                   ó   — e Zd Zy)úCMapDB.CMapNotFoundNr   r   r   r   ÚCMapNotFoundr‚   à   s   „ Ør   rƒ   c           	      óœ  — d|z  }t        j                  d|z  «       t        j                  j	                  dd«      t        j
                  j                  t        j
                  j                  t        «      d«      f}|D ]   }t        j
                  j                  ||«      }t        j
                  j                  |«      sŒCt        j                  |«      }	 t        t        |«      dt        j                  |j!                  «       «      «      |j#                  «        c S  t$        j'                  |«      ‚# |j#                  «        w xY w)Nú%s.marshal.gzzloading: %rÚ	CMAP_PATHz/usr/share/pdfminer/r3   r   )rG   ÚinfoÚosÚenvironr#   ÚpathÚjoinÚdirnameÚ__file__ÚexistsÚgzipÚopenÚtypeÚstrÚmarshalÚloadsÚreadÚcloser€   rƒ   )Úklassrn   ÚfilenameÚ
cmap_pathsÚ	directoryrŠ   Úgzfiles          r   Ú
_load_datazCMapDB._load_dataã   sä   € à" TÑ)ˆÜ�‰�] TÑ)Ô*Ü—j‘j—n‘n [Ð2HÓIÜ—g‘g—l‘l¤2§7¡7§?¡?´8Ó#<¸fÓEðHˆ
à#ò 		,ˆIÜ—7‘7—<‘< 	¨8Ó4ˆDÜ�w‰w�~‰~˜dÕ#ÜŸ™ 4›�ð#Ü¤ D£	¨2¬w¯}©}¸V¿[¹[»]Ó/KÓLà—L‘L—Nð		,ô ×%Ñ% dÓ+Ð+øð —L‘L•Nús   Ã6D9Ä9Ec                 óà   — |dk(  rt        d¬«      S |dk(  rt        d¬«      S 	 | j                  |   S # t        $ r Y nw xY w| j                  |«      }t	        ||«      x| j                  |<   }|S )Nz
Identity-Hr   )r!   z
Identity-Vr   )rS   Ú_cmap_cacheÚKeyErrorrœ   rr   )r—   rn   Údatar3   s       r   Úget_cmapzCMapDB.get_cmapô   s�   € à�<ÒÜ aÔ(Ð(Ø�\Ò!Ü aÔ(Ð(ð	Ø×$Ñ$ TÑ*Ð*øÜò 	Ùð	úà×Ñ Ó%ˆÜ)/°°dÓ);Ð;ˆ×Ñ˜$Ñ $Øˆs   ¤3 ³	?¾?c                 óØ   — 	 | j                   |   |   S # t        $ r Y nw xY w| j                  d|z  «      }dD �cg c]  }t        |||«      ‘Œ nc c}w c}x| j                   |<   }||   S )Nzto-unicode-%s)FT)Ú_umap_cacherŸ   rœ   rz   )r—   rn   r~   r    r(   Úumapss         r   Úget_unicode_mapzCMapDB.get_unicode_map  sz   € ð	Ø×$Ñ$ TÑ*¨8Ñ4Ð4øÜò 	Ùð	úà×Ñ °$Ñ 6Ó7ˆØP]Ö*^È1¬<¸¸dÀAÕ+FÑ*^ùÔ*^Ð^ˆ×Ñ˜$Ñ %Ø�X‰Ðs   ‚ ”	 Ÿ »AN©F)r   r   r   rž   r£   r   rƒ   Úclassmethodrœ   r¡   r¥   r   r   r   r€   r€   Û   sT   „ à€KØ€Kô�yô ð ñ,ó ð,ð  ñó ðð òó ñr   r€   c                   ó  — e Zd Zd„ Zd„ Z ed«      Z ed«      Z ed«      Z ed«      Z	 ed«      Z
 ed«      Z ed	«      Z ed
«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Zd„ Zy)Ú
CMapParserc                 óL   — t        j                  | |«       || _        d| _        y )NT)r   r   r3   Ú_in_cmap)r   r3   Úfps      r   r   zCMapParser.__init__  s#   € Ü×Ñ˜t RÔ(ØˆŒ	àˆŒØr   c                 óD   — 	 | j                  «        y # t        $ r Y y w xY wr   )Ú
nextobjectr   r$   s    r   ÚrunzCMapParser.run  s-   € ð	Ø�O‰OÔð 	øô ò 	ØØð	ús   ‚ “	žs	   begincmaps   endcmaps   usecmaps   defs   begincodespaceranges   endcodespaceranges   begincidranges   endcidranges   begincidchars
   endcidchars   beginbfranges
   endbfranges   beginbfchars	   endbfchars   beginnotdefranges   endnotdefrangec                 ó°  — || j                   u rd| _        | j                  «        y || j                  u rd| _        y | j                  sy || j                  u rA	 | j                  d«      \  \  }}\  }}| j                  j                  t        |«      |«       y || j                  u rO	 | j                  d«      \  \  }}| j                  j                  t        j                  t        |«      «      «       y || j                  u r| j                  «        y || j                   u r| j                  «        y || j"                  u r| j                  «        y || j$                  u �r| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D ]Þ  \  }
}}t)        |
t*        «      r7t)        |t*        «      r't)        |t,        «      rt/        |
«      t/        |«      k7  rŒO|
d d }|d d }||k7  rŒ_|
dd  }|dd  }t1        |«      }t1        |«      }t/        |«      }t3        ||z
  dz   «      D ]A  }|t5        j6                  d||z   «      | d  z   }| j                  j9                  |||z   «       ŒC Œà y || j:                  u r| j                  «        y || j<                  u r~| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D ]L  \  }}t)        |t*        «      sŒt)        |t*        «      sŒ(| j                  j9                  |t1        |«      «       ŒN y || j>                  u r| j                  «        y || j@                  u �rF| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D �]  \  }
}}t)        |
t*        «      r't)        |t*        «      rt/        |
«      t/        |«      k7  rŒ@t1        |
«      }t1        |«      }t)        |tB        «      r9t3        ||z
  dz   «      D ]$  }| j                  jE                  ||z   ||   «       Œ& ŒŸ|dd  }t1        |«      }|d d }t/        |«      }t3        ||z
  dz   «      D ]A  }|t5        j6                  d||z   «      | d  z   }| j                  jE                  ||z   |«       ŒC �Œ y || jF                  u r| j                  «        y || jH                  u r~| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D ]L  \  }}t)        |t*        «      sŒt)        |t*        «      sŒ(| j                  jE                  t1        |«      |«       ŒN y || jJ                  u r| j                  «        y || jL                  u r| j                  «        y | jO                  ||f«       y # t        $ r Y y w xY w# t        $ r Y y t        j                  $ r Y y w xY wc c}}w c c}}w c c}}w c c}}w )NTFrU   r   é   éüÿÿÿz>L)(ÚKEYWORD_BEGINCMAPr«   ÚpopallÚKEYWORD_ENDCMAPÚKEYWORD_DEFÚpopr3   r)   r   r   ÚKEYWORD_USECMAPr4   r€   r¡   rƒ   ÚKEYWORD_BEGINCODESPACERANGEÚKEYWORD_ENDCODESPACERANGEÚKEYWORD_BEGINCIDRANGEÚKEYWORD_ENDCIDRANGEr   r@   rg   rH   rV   r   ÚrangerW   Úpackr-   ÚKEYWORD_BEGINCIDCHARÚKEYWORD_ENDCIDCHARÚKEYWORD_BEGINBFRANGEÚKEYWORD_ENDBFRANGEÚlistr1   ÚKEYWORD_BEGINBFCHARÚKEYWORD_ENDBFCHARÚKEYWORD_BEGINNOTDEFRANGEÚKEYWORD_ENDNOTDEFRANGEÚpush)r   ÚposÚtokenÚ_r'   r(   ÚcmapnameÚ__ÚobjÚobjsÚsÚer,   ÚsprefixÚeprefixÚsvarÚevarÚs1Úe1ÚvlenÚiÚxr+   ÚvarÚbaseÚprefixs                             r   Ú
do_keywordzCMapParser.do_keyword0  sk  € Ø�D×*Ñ*Ñ*Ø ˆDŒMØ�K‰KŒMØØ�d×*Ñ*Ñ*Ø!ˆDŒMØØ�}Š}Øà�D×$Ñ$Ñ$ðØ#'§8¡8¨A£;Ñ ‘�!�Q™˜!˜QØ—	‘	×"Ñ"¤<°£?°AÔ6ð à�D×(Ñ(Ñ(ðØ#'§8¡8¨A£;Ñ ‘�!�XØ—	‘	×"Ñ"¤6§?¡?´<ÀÓ3IÓ#JÔKð
 à�D×4Ñ4Ñ4Ø�K‰KŒMØØ�D×2Ñ2Ñ2Ø�K‰KŒMØà�D×.Ñ.Ñ.Ø�K‰KŒMØØ�D×,Ñ,Ò,Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü'¨¨4Ó0ò 5‘��A�sÜ" 1¤eÔ,´J¸qÄ%Ô4HÜ! #¤sÔ+¬s°1«v¼¸Q»Ò/?ØØ˜C˜R˜&�Ø˜C˜R˜&�Ø˜gÒ%ØØ˜˜�v�Ø˜˜�v�Ü˜T“]�Ü˜T“]�Ü˜4“y�ä˜r "™u Q™w›ò 5�AØ¤§¡¨D°"°Q±$Ó 7¸¸¸Ð ?Ñ?�AØ—I‘I×*Ñ*¨1¨c°!©eÕ4ñ5ð5ð" à�D×-Ñ-Ñ-Ø�K‰KŒMØØ�D×+Ñ+Ñ+Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü'¨¨4Ó0ò ?‘��dÜ˜d¤EÕ*¬z¸#¼uÕ/EØ—I‘I×*Ñ*¨4´¸³Õ>ð?ð à�D×-Ñ-Ñ-Ø�K‰KŒMØØ�D×+Ñ+Ò+Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü (¨¨DÓ 1ó :‘��A�tÜ" 1¤eÔ,´J¸qÄ%Ô4HÜ�q“6œS ›VÒ#Ø Ü˜Q“Z�Ü˜Q“Z�ä˜d¤DÔ)Ü" 2 b¡5¨¡7›^ò @˜ØŸ	™	×0Ñ0°°A±°t¸A±wÕ?ñ@ð ˜r˜s˜)�CÜ" 3›<�DØ! # 2˜Y�FÜ˜s›8�DÜ" 2 b¡5¨¡7›^ò :˜Ø"¤6§;¡;¨t°T¸!±VÓ#<¸d¸U¸VÐ#DÑD˜ØŸ	™	×0Ñ0°°A±°qÕ9ò:ð:ð$ à�D×,Ñ,Ñ,Ø�K‰KŒMØØ�D×*Ñ*Ñ*Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü'¨¨4Ó0ò A‘��dÜ˜c¤5Õ)¬j¸¼uÕ.EØ—I‘I×,Ñ,¬W°S«\¸4Õ@ðAð à�D×1Ñ1Ñ1Ø�K‰KŒMØØ�D×/Ñ/Ñ/Ø�K‰KŒMØà�	‰	�3˜�,ÔØøôE !ò ØØðûô !ò Øð ô ×&Ñ&ò ØØðüó 8ùó0 8ùó 8ùó2 8sC   Á?V Â(AV Å5W Ê2WÍWÓWÖ	VÖVÖ	V=Ö(V=Ö<V=N)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   r©   r©     sÃ   „ òòñ ˜LÓ)ÐÙ˜*“o€OÙ˜*“o€OÙ�f“+€KÙ"%Ð&<Ó"=ÐÙ #Ð$8Ó 9ÐÙÐ 0Ó1ÐÙ˜nÓ-ÐÙ˜Ó/ÐÙ˜]Ó+ÐÙ˜Ó/ÐÙ˜]Ó+ÐÙ˜nÓ-ÐÙ˜LÓ)ÐÙ"Ð#6Ó7ÐÙ Ð!2Ó3Ðóqr   r©   c                   ó4   — e Zd Zi fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚCMapConverterc                 óJ   — || _         i | _        i | _        i | _        i | _        y r   )Ú	enc2codecr9   r%   Úcid2unichr_hÚcid2unichr_v)r   râ   s     r   r   zCMapConverter.__init__¨  s+   € Ø"ˆŒØˆŒØˆÔØˆÔØˆÔØr   c                 ó6   — | j                   j                  «       S r   )r9   Úkeysr$   s    r   Úget_encszCMapConverter.get_encs°  s   € Ø�}‰}×!Ñ!Ó#Ð#r   c                 óH  — |j                  d«      r|d }}n|dk(  rd\  }}n
|dz   |dz   }}|| j                  v r| j                  |   }ni }|| j                  |<   d }|rAd| j                  |<   || j                  v r| j                  |   }||fS i }|| j                  |<   ||fS )Nz-HÚH)ré   ÚVz-VT)Úendswithr9   r%   )r   ÚencÚhmapencÚvmapencÚhmapÚvmaps         r   Úget_mapszCMapConverter.get_maps³  sÃ   € Ø�<‰<˜ÔØ"% t�g‰WØ�CŠZØ!+ÑˆW‘gà"% d¡(¨C°©H�gˆWØ�d—m‘mÑ#Ø—=‘= Ñ)‰DàˆDØ%)ˆD�M‰M˜'Ñ"ØˆÙØ(,ˆD×Ñ˜WÑ%Ø˜$Ÿ-™-Ñ'Ø—}‘} WÑ-�ð �dˆ|Ðð �Ø)-�—‘˜gÑ&Ø�dˆ|Ðr   c           
      ó‚  ‡ — d }|D �]™  }|j                  «       j                  d«      \  }}}|sŒ*|j                  d«      }|€|d   dk(  sJ ‚|}ŒJdd„}ˆ fd„}d„ }t        |d   «      }	i }
i }t	        ||«      D ]í  \  }}|dk(  rŒ|dk(  rŒg }g }|j                  d	«      D ]j  }|j                  d
«      }|r|d d }	 t        j                  |d«      }|r|j                  |«        ||||«       ŒP|j                  |«        ||
||«       Œl ‰ j                  |«      \  }}|r)|€J ‚|D ]  } ||||	d«       Œ |D ]  } ||||	d«       Œ ŒÓ|D ]  } ||||	«        ||||	«       Œ Œï |
r ||
«      ‰ j                  |	<   |s|
s�Œ� ||xs |
«      ‰ j                  |	<   �Œœ y #  t        t        |d«      g«      }Y ŒëxY w)Nú#ú	r   ÚCIDc                 ón   — |d d D ]  }|| v r| |   } Œi }|| |<   |} Œ |d   }|s|| vs| |   |k(  r|| |<   y re   r   )Údmapr+   r,   ÚforceÚbrD   s         r   ÚputzCMapConverter.load.<locals>.putÔ  sd   € Ø˜c˜r˜ò !�AØ˜D‘yØ# A™w™à˜Ø"#˜˜Q™Ø ™ð!ð ˜‘H�Ù˜a t™m°°Q±¸3²Ø!�D˜‘GØr   c                 óÄ   •— 	 ‰j                   |   }|j                  |d«      }t        |«      dk(  r|| vrd| |<   | |xx   dz  cc<   y # t        $ r Y y t        $ r Y y w xY w)NÚstrictr   r   )râ   rJ   rV   rŸ   ÚUnicodeError)Úunimaprì   r+   ÚcodecrI   r   s        €r   ÚaddzCMapConverter.load.<locals>.addá  s|   ø€ ð
Ø ŸN™N¨3Ñ/�EØŸ™ E¨8Ó4�AÜ˜1“v ’{Ø F™?Ø()˜F 1™IØ˜q›	 Q™›	ð
 øô	  ò Øð ô $ò ØØðús   ƒAA	 Á		AÁAÁAc                 óP   — t        | j                  «       d„ d¬«      }|d   \  }}|S )Nc                 ó*   — | d   t        | d   «       fS )Nr   r   )rh   )rÚ   s    r   ú<lambda>z2CMapConverter.load.<locals>.pick.<locals>.<lambda>ò  s   €  1 Q¡4¬¨Q¨q©T«¨
Ð"3€ r   T)ÚkeyÚreverser   )rM   r?   )rþ   ÚcharsrI   rË   s       r   Úpickz CMapConverter.load.<locals>.pickï  s/   € ÜØ—L‘L“NÙ3¸dôD�ð ˜a™‘��1Ø�r   Ú*ú,r(   rf   Úhexé   Tr¦   )ÚstripÚ	partitionÚsplitrH   Úziprë   ÚcodecsrJ   rg   Úappendrñ   rã   rä   )r   r¬   ÚencsÚlinerË   Úvaluesrú   r   r  r,   Úunimap_hÚunimap_vrì   ÚvalueÚhcodesÚvcodesr+   r~   rï   rð   s   `                   r   ÚloadzCMapConverter.loadÉ  s&  ø€ ØˆØó T	DˆDØŸ™›×/Ñ/°Ó4‰JˆT�!�AÙ˜Ø—Z‘Z Ó%ˆFØˆ|Ø˜a‘y EÒ)Ð)Ð)Ø�Øóôòô �f˜Q‘i“.ˆCØˆHØˆHÜ" 4¨Ó0ò  -‘��UØ˜%’< Ø˜C’< ð �Ø�Ø!ŸK™K¨Ó,ò 1�DØ#Ÿ}™}¨SÓ1�HÙØ# C R˜y˜ð6Ü%Ÿ}™}¨T°5Ó9˜ñ  ØŸ™ dÔ+Ù˜H c¨4Õ0àŸ™ dÔ+Ù˜H c¨4Õ0ð1ð  $Ÿ}™}¨SÓ1‘��tÙØÐ+Ð+Ð+Ø &ò 3˜Ù˜D $¨¨TÕ2ð3à &ò 3˜Ù˜D $¨¨TÕ2ñ3ð !'ò -˜Ù˜D $¨Ô,Ù˜D $¨Õ,ñ-ð= -ñF Ù)-¨h«�×!Ñ! #Ñ&Ù›8Ù)-¨hÒ.B¸(Ó)C�×!Ñ! #Ó&ðiT	Dðl 	øð76Ü$¤c¨$°£m _Ó5šús   Â=F$Æ$F>	c                 óÌ   — t        | j                  j                  |d«      | j                  j                  |«      ¬«      }|j	                  t        j                  |«      «       y )NF)rv   ru   )rA   r%   r#   r9   rN   r“   Údumps)r   r¬   rì   r    s       r   Ú	dump_cmapzCMapConverter.dump_cmap#  sN   € ÜØ×(Ñ(×,Ñ,¨S°%Ó8Ø—]‘]×&Ñ& sÓ+ô
ˆð 	�‰”—‘˜tÓ$Ô%Ør   c                 óŽ   — t        | j                  | j                  ¬«      }|j                  t	        j
                  |«      «       y )N)r}   r|   )rA   rã   rä   rN   r“   r  )r   r¬   r    s      r   Údump_unicodemapzCMapConverter.dump_unicodemap+  s8   € ÜØ×*Ñ*Ø×*Ñ*ô
ˆð 	�‰”—‘˜tÓ$Ô%Ør   N)	r   r   r   r   rç   rñ   r  r  r  r   r   r   rà   rà   ¦  s%   „ à!#ó ò$òò,Xòtór   rà   c                 óÚ  — t        |«      }|D ]5  }t        d|z  «       t        |«      5 }|j                  |«       d d d «       Œ7 g }|j	                  «       D ]w  }d|z  }	t
        j                  j                  | |	«      }t        d|z  «       t        j                  |d«      5 }|j                  ||«       d d d «       |j                  |«       Œy d|z  }	t
        j                  j                  | |	«      }t        d|z  «       t        j                  |d«      5 }|j                  |«       d d d «       |j                  |«       |S # 1 sw Y   �ŒDxY w# 1 sw Y   ŒŸxY w# 1 sw Y   Œ5xY w)Nzreading: %r...r…   zwriting: %r...Úwbzto-unicode-%s.marshal.gz)rà   Úprintr�   r  rç   rˆ   rŠ   r‹   r�   r  r  r  )
ÚoutdirÚregnamerâ   ÚpathsÚ	converterrŠ   r¬   Úfilesrì   Úfnames
             r   Úconvert_cmapr)  4  sV  € Ü˜iÓ(€Iàò ˆÜÐ Ñ%Ô&Ü�$‹Zð 	˜2Ø�N‰N˜2Ô÷	ð 	ðð
 €EØ×!Ñ!Ó#ò ˆØ #Ñ%ˆÜ�w‰w�|‰|˜F EÓ*ˆÜÐ Ñ%Ô&Ü�Y‰Y�t˜TÓ"ð 	) bØ×Ñ  CÔ(÷	)à�‰�TÕðð '¨Ñ0€EÜ�7‰7�<‰<˜ Ó&€DÜ	Ð
˜TÑ
!Ô"Ü	�‰�4˜Ó	ð & "Ø×!Ñ! "Ô%÷&à	‡L�L�ÔØ€L÷%	ñ 	ú÷	)ð 	)ú÷&ð &ús#   ªEÂ$EÄE!ÅE	ÅE	Å!E*c                 óÆ   — | dd  }|D ]K  }t        |d«      5 }t        «       }t        ||«      j                  «        |j	                  «        d d d «       ŒM y # 1 sw Y   ŒXxY w)Nr   Úrb)r�   rk   r©   r¯   rO   )ÚargvÚargsr(  r¬   r3   s        r   Úmainr.  O  sk   € Ø��ˆ8€DØò ˆÜ�%˜Óð 	 "Ü!Ó#ˆDä�t˜RÓ ×$Ñ$Ô&Ø�I‰IŒK÷		ð 	ðð ÷	ð 	ús   —5AÁA 	Ú__main__)'Ú__doc__rP   rˆ   Úos.pathr�   r  r“   rW   rG   Úpsparserr   r   r   r   r   r	   Ú
encodingdbr
   Úutilsr   r   Ú	Exceptionr   r   r7   rS   r[   rc   rk   rr   rz   r€   r©   rà   r)  r.  r   Úexitr,  r   r   r   ú<module>r7     s   ðñ	ó Û 	Û Û Û Û Û Û Ý #Ý #Ý Ý Ý "Ý Ý $Ý Ý ô	�	ô 	÷ñ ô60ˆ8ô 0ôj�8ô ô�ô ô.ˆtô ô(�Zô ô&ˆTô ô	�:ô 	÷/ñ /ôhR�ô R÷nKñ Kò\ò6ð ˆzÒØ€C‡H�H‰T�#—(‘(‹^Õð r   