Ë
    T^(h&Y  ã                   ó  — d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	 d dl
Z
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 “Zd,d!efd"„Zd!efd#„Z G d$„ d%«      Z G d&„ d'«      Z G d(„ d)«      Z G d*„ d+«      Zy)-é    N)ÚFraction)ÚIteratorÚListÚMatchÚOptionalÚUnionu   Å“Úoeu   Å’ÚOEõ   Ã¸Úoõ   Ã˜ÚOõ   Ã¦Úaeõ   Ã†ÚAEõ   ÃŸÚssu   áºžÚSSu   Ä‘Údu   Ä�ÚDõ   Ã°õ   Ã�õ   Ã¾Úthõ   Ãžu   Å‚Úlu   Å�ÚLÚsc                 ól   ‡‡— ˆfd„Šdj                  ˆfd„t        j                  d| «      D «       «      S )z‘
    Replace any other markers, symbols, and punctuations with a space, and drop any diacritics (category 'Mn' and some
    manual mappings)
    c                 óž   •— | ‰v r| S | t         v r	t         |    S t        j                  | «      dk(  ryt        j                  | «      d   dv ry| S )NÚMnÚ r   ÚMSPú )ÚADDITIONAL_DIACRITICSÚunicodedataÚcategory)ÚcharÚkeeps    €úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/models/whisper/english_normalizer.pyÚreplace_characterz8remove_symbols_and_diacritics.<locals>.replace_character3   sY   ø€ Ø�4‰<ØˆKØÔ*Ñ*Ü(¨Ñ.Ð.ä×!Ñ! $Ó'¨4Ò/Øä×!Ñ! $Ó'¨Ñ*¨eÑ3Øàˆó    r#   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­w©N© )Ú.0Úcr,   s     €r+   ú	<genexpr>z0remove_symbols_and_diacritics.<locals>.<genexpr>A   s   øè ø€ ÒR¨AÑ$ Q×'ÑRùs   ƒÚNFKD©Újoinr'   Ú	normalize)r   r*   r,   s    `@r+   Úremove_symbols_and_diacriticsr8   -   s,   ù€ ôð �7‰7ÓR´×1FÑ1FÀvÈqÓ1QÔRÓRÐRr-   c                 óZ   — dj                  d„ t        j                  d| «      D «       «      S )z[
    Replace any other markers, symbols, punctuations with a space, keeping diacritics
    r#   c              3   óX   K  — | ]"  }t        j                  |«      d    dv rdn|–— Œ$ y­w)r   r$   r%   N)r'   r(   )r1   r2   s     r+   r3   z!remove_symbols.<locals>.<genexpr>H   s,   è ø€ ÒoÈœ+×.Ñ.¨qÓ1°!Ñ4¸Ñ=‘3À1ÓDÑoùs   ‚(*ÚNFKCr5   ©r   s    r+   Úremove_symbolsr=   D   s(   € ð �7‰7ÑoÌk×NcÑNcÐdjÐlmÓNnÔoÓoÐor-   c                   ó*   — e Zd Zddedefd„Zdefd„Zy)ÚBasicTextNormalizerÚremove_diacriticsÚsplit_lettersc                 ó8   — |rt         nt        | _        || _        y r/   )r8   r=   ÚcleanrA   )Úselfr@   rA   s      r+   Ú__init__zBasicTextNormalizer.__init__L   s   € Ù6GÕ2Ì^ˆŒ
Ø*ˆÕr-   r   c                 ón  — |j                  «       }t        j                  dd|«      }t        j                  dd|«      }| j                  |«      j                  «       }| j                  r4dj                  t        j                  d|t        j                  «      «      }t        j                  dd|«      }|S )Nú[<\[][^>\]]*[>\]]r#   ú\(([^)]+?)\)r%   z\Xú\s+)	ÚlowerÚreÚsubrC   rA   r6   ÚregexÚfindallÚU©rD   r   s     r+   Ú__call__zBasicTextNormalizer.__call__P   s‡   € Ø�G‰G‹IˆÜ�F‰FÐ'¨¨QÓ/ˆÜ�F‰F�? B¨Ó*ˆØ�J‰J�q‹M×ÑÓ!ˆà×ÒØ—‘œŸ™ u¨a´·±Ó9Ó:ˆAä�F‰F�6˜3 Ó"ˆàˆr-   N)FF)Ú__name__Ú
__module__Ú__qualname__ÚboolrE   ÚstrrQ   r0   r-   r+   r?   r?   K   s!   „ ñ+¨$ð +Àtó +ð˜#ô r-   r?   c                   ób   ‡ — e Zd ZdZˆ fd„Zdee   dee   fd„Zdefd„Z	defd„Z
defd	„Zˆ xZS )
ÚEnglishNumberNormalizerav  
    Convert any spelled-out numbers into arabic numbers, while handling:

    - remove any commas
    - keep the suffixes such as: `1960s`, `274th`, `32nd`, etc.
    - spell out currency symbols after the number. e.g. `$20 million` -> `20000000 dollars`
    - spell out `one` and `ones`
    - interpret successive single-digit numbers as nominal: `one oh one` -> `101`
    c                 óÀ  •— t         ‰| �  «        h d£| _        t        g d¢d¬«      D ��ci c]  \  }}||“Œ
 c}}| _        | j                  j                  «       D ��ci c]  \  }}|dk(  rdn|dz   |df“Œ c}}| _        dd	d
ddddœ| j                  j                  «       D ��ci c]/  \  }}|dkD  r%|dk7  r |dk7  r||j                  d«      rdndz   |df“Œ1 c}}¥| _        i | j                  ¥| j                  ¥| _	        dddddddddœ| _
        | j                  j                  «       D ��ci c]  \  }}|j                  dd«      |df“Œ c}}| _        | j                  j                  «       D ��ci c]  \  }}|j                  dd «      |df“Œ c}}| _        i | j                  ¥| j                  ¥| _        d!d"d#d$d%d&d'd(d)d*d+d,d-œ| _        | j                  j                  «       D ��ci c]  \  }}|dz   |df“Œ c}}| _        | j                  j                  «       D ��ci c]  \  }}|dz   |df“Œ c}}| _        i | j                   ¥| j"                  ¥| _        h | j                  £| j                  £| j                  £| _        d.d.d/d/d0œ| _        d1d1d2d2d3d3d4d4d5œ| _        t-        t/        | j(                  j1                  «       «      t/        | j*                  j1                  «       «      z   «      | _        d6d7id7d8œ| _        h d9£| _        | j                  | j                  | j                  | j                  | j                  | j                  | j$                  | j(                  | j*                  | j4                  | j6                  fD ��ch c]  }|D ]  }|’Œ Œ c}}| _        d:d;h| _        y c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w )<N>   r   ÚohÚzero)ÚoneÚtwoÚthreeÚfourÚfiveÚsixÚsevenÚeightÚnineÚtenÚelevenÚtwelveÚthirteenÚfourteenÚfifteenÚsixteenÚ	seventeenÚeighteenÚnineteené   )Ústartra   Úsixesr   )r   r   )ro   Úst)é   Únd)é   Úrd)é   r   )é   r   )ÚzerothÚfirstÚsecondÚthirdÚfifthÚtwelfthru   rw   rx   ÚtÚhr   é   é   é(   é2   é<   éF   éP   éZ   )ÚtwentyÚthirtyÚfortyÚfiftyÚsixtyÚseventyÚeightyÚninetyÚyÚiesÚiethéd   éè  i@B i Êš;l    J)£l     �Iú5 l     ÈNÎZol     @=7M.cl      B¶3v^!< l      Pó „~Écegl       ©7§3M“e'l       (l
F3Y‘HqS )ÚhundredÚthousandÚmillionÚbillionÚtrillionÚquadrillionÚquintillionÚ
sextillionÚ
septillionÚ	octillionÚ	nonillionÚ	decillionú-ú+)ÚminusÚnegativeÚplusÚpositiveõ   Â£u   â‚¬ú$õ   Â¢)ÚpoundÚpoundsÚeuroÚeurosÚdollarÚdollarsÚcentÚcentsr±   ú%)ÚperÚpercent>   ÚandÚpointÚdoubleÚtripler\   Úones)ÚsuperrE   ÚzerosÚ	enumeraterº   ÚitemsÚones_pluralÚendswithÚones_ordinalÚones_suffixedÚtensÚreplaceÚtens_pluralÚtens_ordinalÚtens_suffixedÚmultipliersÚmultipliers_pluralÚmultipliers_ordinalÚmultipliers_suffixedÚdecimalsÚpreceding_prefixersÚfollowing_prefixersÚsetÚlistÚvaluesÚprefixesÚ	suffixersÚspecialsÚwordsÚliteral_words)rD   ÚiÚnameÚvalueÚmappingÚkeyÚ	__class__s         €r+   rE   z EnglishNumberNormalizer.__init__i   s  ø€ Ü‰ÑÔâ(ˆŒ
ô %ò GØô÷
á��4ð �!‰Gó
ˆŒ	ð W[×V_ÑV_×VeÑVeÓVg÷
ÙGRÀtÈU�t˜u’}‰G¨$°©*°u¸c°lÑBó
ˆÔð  ØØØØØ!ñ
ð $(§9¡9§?¡?Ó#4÷á�D˜%Ø˜1’9 ¨!¢°¸²ð ˜tŸ}™}¨SÔ1™°tÑ<¸uÀd¸mÑKóð
ˆÔð G × 0Ñ 0ÐF°D×4EÑ4EÐFˆÔð ØØØØØØØñ	
ˆŒ	ð W[×V_ÑV_×VeÑVeÓVg×hÁ{ÀtÈU˜DŸL™L¨¨eÓ4°u¸c°lÑBÓhˆÔØY]×YbÑYb×YhÑYhÓYj×kÉ+È$ÐPU˜TŸ\™\¨#¨vÓ6¸À¸ÑEÓkˆÔØF × 0Ñ 0ÐF°D×4EÑ4EÐFˆÔð ØØ Ø$Ø)Ø0Ø4Ø7Ø;Ø>ØBØFñ
ˆÔð PT×O_ÑO_×OeÑOeÓOg×"hÁÀÀe 4¨#¡:°°s¨|Ñ#;Ó"hˆÔØRV×RbÑRb×RhÑRhÓRj×#kÁ;À4È D¨4¡K°%¸°Ñ$>Ó#kˆÔ Ø$[ t×'>Ñ'>Ð$[À$×BZÑBZÐ$[ˆÔ!Ø=˜$Ÿ)™)Ð= d§i¡iÐ=°$·*±*Ð=ˆŒð ØØØñ	$
ˆÔ ð ØØØØØØØñ	$
ˆÔ ô œD ×!9Ñ!9×!@Ñ!@Ó!BÓCÄdÈ4×KcÑKc×KjÑKjÓKlÓFmÑmÓnˆŒà˜C�=Øñ
ˆŒò =ˆŒð
 —
‘
Ø—	‘	Ø×"Ñ"Ø—	‘	Ø×"Ñ"Ø× Ñ Ø×)Ñ)Ø×(Ñ(Ø×(Ñ(Ø—‘Ø—‘ð÷
àð ò
ð ò ð
Øó
ˆŒ
ð" $ V˜_ˆÕùóG
ùó
ùóùó$ iùÛkùó" #iùÛ#kùó6
s/   «N0ÁN6Â%4N<Ä/OÅ4OÇ,OÈ$OÎOrÕ   Úreturnc              #   ó  ‡‡K  — d Šd Šd}dt         fd„}dt        t         t        f   fˆˆfd„}t        |«      dk(  ry t	        |«      D �]'  \  }}|dk7  r||dz
     nd }|t        |«      dz
  k7  r||dz      nd }|rd}Œ6|d uxr t        j                  d|«      }	|d   | j                  v }
|
r|dd  n|}t        j                  d|«      r„ ||«      }|€t        d	«      ‚‰�Ct        ‰t         «      r)‰j                  d
«      rt        ‰«      t        |«      z   ŠŒÒ |‰«      –— |
r|d   n‰Š|j                  dk(  r|j                  Š�Œ|Š�Œ|| j                  vr‰�
 |‰«      –—  ||«      –— �Œ,|| j                  v rt        ‰xs d«      dz   Š�ŒN|| j                  v rÇ| j                  |   }‰€|Š�Œqt        ‰t         «      s|| j                  v r?|| j                   v r|dk  r‰d d t        |«      z   Š�Œµt        ‰«      t        |«      z   Š�ŒÎ|dk  r(‰dz  dk(  r‰|z  Š�Œât        ‰«      t        |«      z   Š�Œû‰dz  dk(  r‰|z  Š�Œ
t        ‰«      t        |«      z   Š�Œ#|| j"                  v �r.| j"                  |   \  }}‰€ |t        |«      |z   «      –— nÿt        ‰t         «      s|| j                  v rS|| j                   v r"|dk  r |‰d d t        |«      z   |z   «      –— n± |t        ‰«      t        |«      z   |z   «      –— nŽ|dk  rE‰dz  dk(  r |t        ‰|z   «      |z   «      –— ng |t        ‰«      t        |«      z   |z   «      –— nD‰dz  dk(  r |t        ‰|z   «      |z   «      –— n" |t        ‰«      t        |«      z   |z   «      –— d Š�Œ`|| j                   v rf| j                   |   }‰€|Š�Œƒt        ‰t         «      rt        ‰«      t        |«      z   Š�Œ¬‰dz  dk(  r‰|z  Š�Œ»t        ‰«      t        |«      z   Š�ŒÔ|| j$                  v r§| j$                  |   \  }}‰€ |t        |«      |z   «      –— �Œt        ‰t         «      r$ |t        ‰«      t        |«      z   |z   «      –— �ŒB‰dz  dk(  r |t        ‰|z   «      |z   «      –— �Œe |t        ‰«      t        |«      z   |z   «      –— �Œ‰|| j&                  v r| j&                  |   }‰€|Š�Œ¬t        ‰t         «      s‰dk(  r> |‰«      }|�||z  nd }|�|j                  dk(  r|j                  Š�Œñ |‰«      –— |Š�Œÿ‰dz  dz  }‰dz  }|||z  z   Š�Œ|| j(                  v rÎ| j(                  |   \  }}‰€ |t        |«      |z   «      –— nŸt        ‰t         «      rd |‰«      }|�||z  nd }|�0|j                  dk(  r! |t        |j                  «      |z   «      –— nL |‰«      –—  |t        |«      |z   «      –— n+‰dz  dz  }‰dz  }|||z  z   Š |t        ‰«      |z   «      –— d Š�Œò|| j*                  v r9‰�
 |‰«      –— || j                  v s|	r| j*                  |   Š�Œ- ||«      –— �Œ9|| j,                  v r)‰�| j,                  |   Š |‰«      –— �Œd ||«      –— �Œp|| j.                  v r|‰�n| j.                  |   }t        |t0        «      r7||v r |t        ‰«      ||   z   «      –— d}�ŒÀ |‰«      –—  ||«      –— �ŒÖ |t        ‰«      |z   «      –— �Œî ||«      –— �Œú|| j2                  v �r|| j                  vr|	s‰�
 |‰«      –—  ||«      –— �Œ1|dk(  r(|| j&                  vs�ŒF‰�
 |‰«      –—  ||«      –— �Œ^|dk(  s|dk(  r{|| j                  v s|| j                  v rG|dk(  rdnd}| j                  j5                  |d«      }t        ‰xs d«      t        |«      |z  z   Šd}�ŒË‰�
 |‰«      –—  ||«      –— �Œã|dk(  r&|| j6                  v s|	s�Œút        ‰xs d«      d
z   Š�Œt        d|› �«      ‚t        d|› �«      ‚ ‰� |‰«      –— y y ­w)NFr   c                 ó8   — 	 t        | «      S # t        $ r Y y w xY wr/   )r   Ú
ValueErrorr<   s    r+   Úto_fractionz:EnglishNumberNormalizer.process_words.<locals>.to_fractionØ   s#   € ðÜ “{Ð"øÜò Ùðús   ‚
 �	˜Úresultc                 ó4   •— t        | «      } ‰�‰| z   } d Šd Š| S r/   )rV   )râ   ÚprefixrÙ   s    €€r+   Úoutputz5EnglishNumberNormalizer.process_words.<locals>.outputÞ   s*   ø€ ä˜“[ˆFØÐ!Ø &™�ØˆEØˆFØˆMr-   r   ro   z^\d+(\.\d+)?$zConverting the fraction failedú.r#   Ú0é
   éÿÿÿÿr”   r•   Tr¶   r¸   r¹   rs   ru   r·   zUnexpected token: )rV   r   ÚintÚlenr½   rK   ÚmatchrÒ   rà   Ú
isinstancerÀ   ÚdenominatorÚ	numeratorrÕ   r¼   rº   rÃ   rÂ   rÇ   rÈ   rË   rÍ   rÎ   rÓ   ÚdictrÔ   ÚgetrÌ   )rD   rÕ   Úskiprá   rå   r×   ÚcurrentÚprevÚnextÚnext_is_numericÚ
has_prefixÚcurrent_without_prefixÚfrº   ÚsuffixrÃ   Ú
multiplierÚpÚbeforeÚresidualÚrepeatsrä   rÙ   s                        @@r+   Úprocess_wordsz%EnglishNumberNormalizer.process_wordsÓ   s�  ùè ø€ Ø $ˆØ+/ˆØˆð	œ3ó 	ð	œ5¤¤c ™?ö 	ô ˆu‹:˜Š?Øä# EÓ*ó C	A‰JˆAˆwØ#$¨¢6�5˜˜Q™’<¨tˆDØ#$¬¨E«
°Q©Ò#6�5˜˜Q™’<¸DˆDÙØ�Øà"¨$Ð.ÒS´2·8±8Ð<LÈdÓ3SˆOØ  ™ t§}¡}Ð4ˆJÙ4> W¨Q¨R¡[ÀGÐ"Ü�x‰xÐ(Ð*@ÔAáÐ 6Ó7�Ø�9Ü$Ð%EÓFÐFàÐ$Ü! %¬Ô-°%·.±.ÀÔ2Eä # E£
¬S°«\Ñ 9˜Ø á$ U›mÒ+á'1˜ š°v�Ø—=‘= AÒ%ØŸK™K’Eà2’EØ §
¡
Ñ*àÐ$Ù  ›-Ò'Ù˜W“oÔ%Ø˜DŸJ™JÑ&Ü˜EšK RÓ(¨3Ñ.’Ø˜DŸI™IÑ%Ø—y‘y Ñ)�à�=Ø ’EÜ ¤sÔ+¨t°t·y±yÑ/@Ø˜tŸy™yÑ(¨T°BªYØ % c r 
¬S°«YÑ 6šä # E£
¬S°«YÑ 6šØ˜B’YØ˜r‘z Q’Ø ™šä # E£
¬S°«YÑ 6šà˜s‘{ aÒ'Ø ™šä # E£
¬S°«YÑ 6šØ˜D×.Ñ.Ò.à#×1Ñ1°'Ñ:‘��fØ�=Ù ¤ T£¨VÑ!3Ó4Ó4Ü ¤sÔ+¨t°t·y±yÑ/@Ø˜tŸy™yÑ(¨T°BªYÙ$ U¨3¨B Z´#°d³)Ñ%;¸fÑ%DÓEÓEá$¤S¨£Z´#°d³)Ñ%;¸fÑ%DÓEÓEØ˜B’YØ˜r‘z Q’Ù$¤S¨°©Ó%6¸Ñ%?Ó@Ó@á$¤S¨£Z´#°d³)Ñ%;¸fÑ%DÓEÓEà˜s‘{ aÒ'Ù$¤S¨°©Ó%6¸Ñ%?Ó@Ó@á$¤S¨£Z´#°d³)Ñ%;¸fÑ%DÓEÒEØ’Ø˜DŸI™IÑ%Ø—y‘y Ñ)�Ø�=Ø ’EÜ ¤sÔ+Ü ›J¬¨T«Ñ2’Eà˜s‘{ aÒ'Ø ™šä # E£
¬S°«YÑ 6šØ˜D×.Ñ.Ñ.à#×1Ñ1°'Ñ:‘��fØ�=Ù ¤ T£¨VÑ!3Ó4Ô4Ü ¤sÔ+Ù ¤ U£¬c°$«iÑ!7¸&Ñ!@ÓAÔAà˜s‘{ aÒ'Ù$¤S¨°©Ó%6¸Ñ%?Ó@Ô@á$¤S¨£Z´#°d³)Ñ%;¸fÑ%DÓEÔEØ˜D×,Ñ,Ñ,Ø!×-Ñ-¨gÑ6�
Ø�=Ø&’EÜ ¤sÔ+¨u¸ªzÙ# EÓ*�AØ*+¨-˜˜Jš¸T�AØ�}¨¯©¸!Ò);Ø !§¡šá$ U›mÒ+Ø *šà" d™]¨TÑ1�FØ$ t™|�HØ" X°
Ñ%:Ñ:’EØ˜D×5Ñ5Ñ5Ø%)×%>Ñ%>¸wÑ%GÑ"�
˜FØ�=Ù ¤ Z£°6Ñ!9Ó:Ó:Ü ¤sÔ+Ù# EÓ*�AØ*+¨-˜˜Jš¸T�AØ�}¨¯©¸!Ò);Ù$¤S¨¯©Ó%5¸Ñ%>Ó?Ó?á$ U›mÒ+Ù$¤S¨£_°vÑ%=Ó>Ó>à" d™]¨TÑ1�FØ$ t™|�HØ" X°
Ñ%:Ñ:�EÙ ¤ U£¨fÑ!4Ó5Ò5Ø’Ø˜D×4Ñ4Ñ4àÐ$Ù  ›-Ò'à˜4Ÿ:™:Ñ%©Ø!×5Ñ5°gÑ>’Fá  ›/Ô)Ø˜D×4Ñ4Ñ4àÐ$Ø!×5Ñ5°gÑ>�FÙ  ›-Ô'á  ›/Ô)Ø˜DŸN™NÑ*àÐ$Ø!Ÿ^™^¨GÑ4�FÜ! &¬$Ô/Ø 6™>Ù"(¬¨U«°f¸T±lÑ)BÓ"CÒCØ#'šDá"(¨£-Ò/Ù"(¨£/Ô1á$¤S¨£Z°&Ñ%8Ó9Ô9á  ›/Ô)Ø˜DŸM™MÒ)Ø˜tŸz™zÑ)±/àÐ(Ù$ U›mÒ+Ù  ›/Ô)Ø Ò%à 4×#3Ñ#3Ó3Ø Ð,Ù"(¨£-Ò/Ù$ W›oÔ-Ø Ò(¨G°xÒ,?Ø˜tŸy™yÑ(¨D°D·J±JÑ,>Ø'.°(Ò':¡!À˜Ø#Ÿy™yŸ}™}¨T°1Ó5˜Ü # E¢K¨RÓ 0´3°t³9¸wÑ3FÑ F˜Ø#šà Ð,Ù"(¨£-Ò/Ù$ W›oÔ-Ø Ò'Ø˜tŸ}™}Ñ,³Ü # E¢K¨RÓ 0°3Ñ 6šô %Ð'9¸'¸Ð%CÓDÐDô !Ð#5°g°YÐ!?Ó@Ð@ðGC	AðJ ÐÙ˜“-Óð ùs   „^	bÞB2bá?br   c                 óR  — g }t        j                  d|«      }t        |«      D ]ª  \  }}t        |j	                  «       «      dk(  rŒ#|t        |«      dz
  k(  r|j                  |«       ŒF|j                  |«       |j                  d¬«      d   }|| j                  v s|| j                  v r|j                  d«       Œš|j                  d«       Œ¬ d	j                  |«      }t        j                  d
d|«      }t        j                  dd|«      }t        j                  dd|«      }|S )Nz\band\s+a\s+half\br   ro   rs   )Úmaxsplitré   z
point fivez
and a halfr%   z([a-z])([0-9])z\1 \2z([0-9])([a-z])z([0-9])\s+(st|nd|rd|th|s)\bú\1\2)rK   Úsplitr½   rë   ÚstripÚappendÚrsplitrÌ   rÈ   r6   rL   )rD   r   ÚresultsÚsegmentsr×   ÚsegmentÚ	last_words          r+   Ú
preprocessz"EnglishNumberNormalizer.preprocess²  s  € àˆä—8‘8Ð1°1Ó5ˆÜ# HÓ-ò 	1‰JˆAˆwÜ�7—=‘=“?Ó# qÒ(ØØ”C˜“M AÑ%Ò%Ø—‘˜wÕ'à—‘˜wÔ'Ø#ŸN™N°A˜NÓ6°rÑ:�	Ø §¡Ñ-°¸d×>NÑ>NÑ1NØ—N‘N <Õ0à—N‘N <Õ0ð	1ð �H‰H�WÓˆô �F‰FÐ$ h°Ó2ˆÜ�F‰FÐ$ h°Ó2ˆô �F‰FÐ1°7¸AÓ>ˆàˆr-   c                 ó¸   — dt         fd„}dt         fd„}t        j                  d||«      }t        j                  d||«      }t        j                  dd|«      }|S )NÚmc                 óÆ   — 	 | j                  d«      }| j                  d«      }t        | j                  d«      «      }|› |› d|d›�S # t        $ r | j                  cY S w xY w)Nro   rs   ru   ræ   Ú02d)Úgrouprê   rà   Ústring)r  ÚcurrencyÚintegerr²   s       r+   Úcombine_centsz:EnglishNumberNormalizer.postprocess.<locals>.combine_centsÐ  sa   € ð ØŸ7™7 1›:�ØŸ'™' !›*�Ü˜AŸG™G A›J›�Ø"˜ G 9¨A¨e°C¨[Ð9Ð9øÜò  Ø—x‘x’ð ús   ‚AA ÁA ÁA c                 ót   — 	 dt        | j                  d«      «      › �S # t        $ r | j                  cY S w xY w)Nrª   ro   )rê   r  rà   r  )r  s    r+   Úextract_centsz:EnglishNumberNormalizer.postprocess.<locals>.extract_centsÙ  s9   € ð ØœC §¡¨£
›OÐ,Ð-Ð-øÜò  Ø—x‘x’ð ús   ‚ Ÿ7¶7u,   ([â‚¬Â£$])([0-9]+) (?:and )?Â¢([0-9]{1,2})\bu   [â‚¬Â£$]0.([0-9]{1,2})\bz	\b1(s?)\bzone\1)r   rK   rL   )rD   r   r  r  s       r+   Úpostprocessz#EnglishNumberNormalizer.postprocessÏ  s\   € ð	 œUó 	 ð	 œUó 	 ô �F‰FÐBÀMÐSTÓUˆÜ�F‰FÐ.°¸qÓAˆô �F‰F�< ¨1Ó-ˆàˆr-   c                 ó´   — | j                  |«      }dj                  d„ | j                  |j                  «       «      D «       «      }| j	                  |«      }|S )Nr%   c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr/   r0   )r1   Úwords     r+   r3   z3EnglishNumberNormalizer.__call__.<locals>.<genexpr>ê  s   è ø€ ÒX˜dÀtÑGW”TÑXùs   ‚Š)r  r6   r   r  r  rP   s     r+   rQ   z EnglishNumberNormalizer.__call__è  sJ   € Ø�O‰O˜AÓˆØ�H‰HÑX d×&8Ñ&8¸¿¹»Ó&CÔXÓXˆØ×Ñ˜QÓˆàˆr-   )rR   rS   rT   Ú__doc__rE   r   rV   r   r   r  r  rQ   Ú__classcell__)rÜ   s   @r+   rX   rX   ^   sR   ø„ ñôh-ðT]  4¨¡9ð ] °¸#±ó ] ð~˜Có ð:˜Só ð2˜#÷ r-   rX   c                   ó"   — e Zd ZdZd„ Zdefd„Zy)ÚEnglishSpellingNormalizerz~
    Applies British-American spelling mappings as listed in [1].

    [1] https://www.tysto.com/uk-us-spelling-list.html
    c                 ó   — || _         y r/   )rÚ   ©rD   Úenglish_spelling_mappings     r+   rE   z"EnglishSpellingNormalizer.__init__÷  s	   € Ø/ˆ�r-   r   c                 óT   ‡ — dj                  ˆ fd„|j                  «       D «       «      S )Nr%   c              3   óV   •K  — | ]   }‰j                   j                  ||«      –— Œ" y ­wr/   )rÚ   rñ   )r1   r  rD   s     €r+   r3   z5EnglishSpellingNormalizer.__call__.<locals>.<genexpr>û  s"   øè ø€ ÒK¸˜Ÿ™×(Ñ(¨¨t×4ÑKùs   ƒ&))r6   r  rP   s   ` r+   rQ   z"EnglishSpellingNormalizer.__call__ú  s   ø€ Ø�x‰xÓKÀÇÁÃÔKÓKÐKr-   N)rR   rS   rT   r  rE   rV   rQ   r0   r-   r+   r  r  ð  s   „ ñò0ðL˜#ô Lr-   r  c                   ó   — e Zd Zd„ Zdefd„Zy)ÚEnglishTextNormalizerc                 óR  — 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"“i d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“¥dEdFdGdHdIdJdKdLdMdNdOdPdLdQdRdSœ¥| _        t        «       | _        t	        |«      | _        y )TNz\b(hmm|mm|mhm|mmm|uh|um)\bz	\bwon't\bzwill notz	\bcan't\bzcan notz	\blet's\bzlet usz	\bain't\bÚaintz	\by'all\bzyou allz	\bwanna\bzwant toz	\bgotta\bzgot toz	\bgonna\bzgoing toz\bi'ma\bzi am going toz\bimma\bz
\bwoulda\bz
would havez
\bcoulda\bz
could havez\bshoulda\bzshould havez	\bma'am\bÚmadamz\bmr\bzmister z\bmrs\bzmissus z\bst\bzsaint z\bdr\bzdoctor z\bprof\bz
professor z\bcapt\bzcaptain z\bgov\bz	governor z\bald\bz	alderman z\bgen\bzgeneral z\bsen\bzsenator z\brep\bzrepresentative z\bpres\bz
president z\brev\bz	reverend z\bhon\bz
honorable z\basst\bz
assistant z	\bassoc\bz
associate z\blt\bzlieutenant z\bcol\bzcolonel z\bjr\bzjunior z\bsr\bzsenior zesquire z	 had beenz	 has beenz	 had gonez	 has gonez	 had donez has gotz notz arez isz wouldz willz havez am)z\besq\bz	'd been\bz	's been\bz	'd gone\bz	's gone\bz	'd done\bz's got\bzn't\bz're\bz's\bz'd\bz'll\bz't\bz've\bz'm\b)Úignore_patternsÚ	replacersrX   Ústandardize_numbersr  Ústandardize_spellingsr!  s     r+   rE   zEnglishTextNormalizer.__init__ÿ  s  € Ø<ˆÔð6
à˜*ð6
ð ˜)ð6
ð ˜(ð	6
ð
 ˜&ð6
ð ˜)ð6
ð ˜)ð6
ð ˜(ð6
ð ˜*ð6
ð ˜ð6
ð ˜ð6
ð ˜<ð6
ð ˜<ð6
ð ˜Mð6
ð ˜'ð6
ð" �yð#6
ð$ ˜	ð%6
ð& �xñ'6
ð( �yð)6
ð* ˜ð+6
ð, ˜ð-6
ð. ˜ð/6
ð0 ˜ð16
ð2 ˜
ð36
ð4 ˜
ð56
ð6 Ð)ð76
ð8 ˜ð96
ð: ˜ð;6
ð< ˜ð=6
ð> ˜ð?6
ð@ ˜,ðA6
ðB �}ðC6
ðD ˜
ðE6
ðF �yðG6
ðH �yñI6
ðJ #à%Ø%Ø%Ø%Ø%Ø#àØØØØØØØòk6
ˆŒôn $;Ó#<ˆÔ Ü%>Ð?WÓ%XˆÕ"r-   r   c                 ó¨  — |j                  «       }t        j                  dd|«      }t        j                  dd|«      }t        j                  | j                  d|«      }t        j                  dd|«      }| j                  j                  «       D ]  \  }}t        j                  |||«      }Œ t        j                  dd|«      }t        j                  dd	|«      }t        |d
¬«      }| j                  |«      }| j                  |«      }t        j                  dd	|«      }t        j                  dd|«      }t        j                  dd|«      }|S )NrG   r#   rH   z\s+'ú'z	(\d),(\d)r  z\.([^0-9]|$)z \1u
   .%$Â¢â‚¬Â£)r*   u   [.$Â¢â‚¬Â£]([^0-9])z	([^0-9])%z\1 rI   r%   )	rJ   rK   rL   r*  r+  r¾   r8   r,  r-  )rD   r   ÚpatternÚreplacements       r+   rQ   zEnglishTextNormalizer.__call__;  s  € Ø�G‰G‹Iˆä�F‰FÐ'¨¨QÓ/ˆÜ�F‰F�? B¨Ó*ˆÜ�F‰F�4×'Ñ'¨¨QÓ/ˆÜ�F‰F�7˜C Ó#ˆà$(§N¡N×$8Ñ$8Ó$:ò 	0Ñ ˆG�[Ü—‘�w ¨QÓ/‰Að	0ô �F‰F�< ¨!Ó,ˆÜ�F‰F�? F¨AÓ.ˆÜ)¨!°,Ô?ˆà×$Ñ$ QÓ'ˆØ×&Ñ& qÓ)ˆô �F‰FÐ)¨6°1Ó5ˆÜ�F‰F�< ¨Ó+ˆä�F‰F�6˜3 Ó"ˆàˆr-   N)rR   rS   rT   rE   rV   rQ   r0   r-   r+   r&  r&  þ  s   „ ò:Yðx˜#ô r-   r&  )r#   )rK   r'   Ú	fractionsr   Útypingr   r   r   r   r   rM   r&   rV   r8   r=   r?   rX   r  r&  r0   r-   r+   ú<module>r4     s(  ðó  
Û Ý ß 9Õ 9ã ðØˆ$ðàˆ$ðð 	ˆ#ðð 	ˆ#ð	ð
 	ˆ$ðð 	ˆ$ðð 	ˆ$ðð 
ˆ4ðð 	ˆ#ðð 	ˆ#ðð 	ˆ#ðð 	ˆ#ðð 	ˆ$ðð 	ˆ$ðð 	ˆ#ðð  	ˆ#ð!Ð ñ(S Só Sð.p�có p÷ñ ÷&Oñ O÷dLñ L÷Uò Ur-   