+
    œ°³jX_  ã            	       ój  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^RIHt ^RIH	t	 ]	P                  ! ]4      tRRRR/tR t ! R	 R
]4      t RtRt]R]RRRRRR3	t]P&                  ! RRP)                  ]4      ,          ]P*                  ]P,                  ,          ]P.                  ,          4      t]P&                  ! R4      t]P&                  ! ]]P*                  ]P,                  ,          ]P.                  ,          4      t]P&                  ! R4      tRR ltR R lt ! R R4      tR tR t R!R lt!R
.t"R# )"z!Tokenization classes for BERTweetN)ÚPreTrainedTokenizer)ÚloggingÚ
vocab_fileú	vocab.txtÚmerges_fileú	bpe.codesc                óŠ   € \        4       pV ^ ,          pV R,           F  pVP                  W#34       TpK  	  \        V4      pV# )zy
Return set of symbol pairs in a word.

Word is represented as tuple of symbols (symbols being variable-length strings).
:é   NN)ÚsetÚadd)ÚwordÚpairsÚ	prev_charÚchars   &   Ús/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/bertweet/tokenization_bertweet.pyÚ	get_pairsr   $   sH   € ô ‹E€EØ�Q•€IØ�R—�ˆØ�	‰	�9Ð#Ô$ØŠ	ñ ô �‹J€EØ€Ló    c                   óš   a a€ ] tR t^4t oRt]tRV 3R llt]R 4       t	R t
R tR tR tR tR	 tR
 tR tRV3R lR lltR tRtVtV ;t# )ÚBertweetTokenizera8	  
Constructs a BERTweet tokenizer, using Byte-Pair-Encoding.

This tokenizer inherits from [`PreTrainedTokenizer`] which contains most of the main methods. Users should refer to
this superclass for more information regarding those methods.

Args:
    vocab_file (`str`):
        Path to the vocabulary file.
    merges_file (`str`):
        Path to the merges file.
    normalization (`bool`, *optional*, defaults to `False`):
        Whether or not to apply a normalization preprocess.
    bos_token (`str`, *optional*, defaults to `"<s>"`):
        The beginning of sequence token that was used during pretraining. Can be used a sequence classifier token.

        <Tip>

        When building a sequence using special tokens, this is not the token that is used for the beginning of
        sequence. The token used is the `cls_token`.

        </Tip>

    eos_token (`str`, *optional*, defaults to `"</s>"`):
        The end of sequence token.

        <Tip>

        When building a sequence using special tokens, this is not the token that is used for the end of sequence.
        The token used is the `sep_token`.

        </Tip>

    sep_token (`str`, *optional*, defaults to `"</s>"`):
        The separator token, which is used when building a sequence from multiple sequences, e.g. two sequences for
        sequence classification or for a text and a question for question answering. It is also used as the last
        token of a sequence built with special tokens.
    cls_token (`str`, *optional*, defaults to `"<s>"`):
        The classifier token which is used when doing sequence classification (classification of the whole sequence
        instead of per-token classification). It is the first token of the sequence when built with special tokens.
    unk_token (`str`, *optional*, defaults to `"<unk>"`):
        The unknown token. A token that is not in the vocabulary cannot be converted to an ID and is set to be this
        token instead.
    pad_token (`str`, *optional*, defaults to `"<pad>"`):
        The token used for padding, for example when batching sequences of different lengths.
    mask_token (`str`, *optional*, defaults to `"<mask>"`):
        The token used for masking values. This is the token used when training this model with masked language
        modeling. This is the token which the model will try to predict.
c                óð  <€  ^ RI Hp WÀn        Wn        W n        / V n        ^ V P                  \        V4      &   ^V P                  \        V	4      &   ^V P                  \        V4      &   ^V P                  \        V4      &   V P                  V4       V P                  P                  4        UUu/ uF  w  rÞWíbK	  	  uppV n        \        VRR7      ;_uu_ 4       pVP                  4       P                  R4      RR pRRR4       X Uu. uF  p\!        VP                  4       RR 4      NK!  	  pp\#        \%        V\'        \)        V4      4      4      4      V n        / V n        W0n        \1        4       V n        RRR	R
/V n        \6        SV `p  ! RRVRVRVRVRVRVRV	RV
RRRRRR/VB  R#   \         d!    \        P                  R4       RT n         ELÇi ; iu uppi   + '       g   i     Lê; iu upi )é    )Údemojizezsemoji is not installed, thus not converting emoticons or emojis into text. Install emoji: pip3 install emoji==0.6.0Núutf-8©ÚencodingÚ
u   â€™Ú'u   â€¦z...ÚnormalizationÚ	bos_tokenÚ	eos_tokenÚ	sep_tokenÚ	cls_tokenÚ	unk_tokenÚ	pad_tokenÚ
mask_tokenÚtoken_type_ids_patternÚ	all_zerosÚ%token_type_ids_include_special_tokensTÚspecial_tokens_patternÚcls_double_sepéÿÿÿÿ© )Úemojir   Ú	demojizerÚImportErrorÚloggerÚwarningr   r   ÚencoderÚstrÚadd_from_fileÚitemsÚdecoderÚopenÚreadÚsplitÚtupleÚdictÚzipÚrangeÚlenÚ	bpe_ranksÚcacher   ÚTweetTokenizerÚtweetPreprocessorÚspecial_punctsÚsuperÚ__init__)Úselfr   r   r   r   r   r    r!   r"   r#   r$   Úkwargsr   ÚkÚvÚmerges_handleÚmergesÚmergeÚ	__class__s   &&&&&&&&&&&,      €r   rD   ÚBertweetTokenizer.__init__i   sû  ø€ ð		"Ý&à%ŒNð %ŒØ&ÔàˆŒØ'(ˆ�‰”S˜“^Ñ$Ø'(ˆ�‰”S˜“^Ñ$Ø'(ˆ�‰”S˜“^Ñ$Ø'(ˆ�‰”S˜“^Ñ$à×Ñ˜:Ô&à)-¯©×);Ñ);Ô)=Ô>Ñ)=¡ ˜šÑ)=Ò>ˆŒä�+¨×0Õ0°MØ"×'Ñ'Ó)×/Ñ/°Ó5°c°rÐ:ˆF÷ 1á9?Ó@¹°”%˜Ÿ™› c rÐ*Ö+¹ˆÐ@Üœc &¬%´°F³Ó*<Ó=Ó>ˆŒØˆŒ
à*ÔÜ!/Ó!1ˆÔØ$ c¨5°%Ð8ˆÔä‰Òñ 	
Ø'ð	
àð	
ð  ð	
ð  ð		
ð
  ð	
ð  ð	
ð  ð	
ð "ð	
ð $/ð	
ð 37ð	
ð $4ð	
ð ô	
øô= ô 	"Ü�N‰Nð(ôð "ˆD�Nð	"üó$ ?ç0×0üâ@s)   ƒF, Â0GÃ#G Ä
%G3Æ,'GÇGÇ G0	c                ó,   € \        V P                  4      # ©N)r=   r1   ©rE   s   &r   Ú
vocab_sizeÚBertweetTokenizer.vocab_size©   s   € ä�4—<‘<Ó Ð r   c                óB   € \        V P                  3/ V P                  B # rO   )r:   r1   Úadded_tokens_encoderrP   s   &r   Ú	get_vocabÚBertweetTokenizer.get_vocab­   s   € Ü�D—L‘LÑ> D×$=Ñ$=Ñ>Ð>r   c                ó”  a € VS P                   9   d   S P                   V,          # \        V4      p\        \        VR R 4      VR,          R,           .,           4      p\        V4      pV'       g   V#  \	        VV 3R lR7      pVS P
                  9  d   MçVw  rV. p^ pV\        V4      8  d¤    VP                  WX4      p	VP                  W(V	 4       T	pY(,          T8X  dN   T\        T4      ^,
          8  d7   Y(^,           ,          T8X  d#   TP                  YV,           4       T^,          pK‘  TP                  Y(,          4       T^,          pK³  \        V4      pTp\        V4      ^8X  d   M\        V4      pEK  RP                  V4      pVR R pVS P                   V&   V#   \         d    TP                  Y(R  4        Kt  i ; i)Nz</w>c                 óN   <€ SP                   P                  V \        R 4      4      # )Úinf)r>   ÚgetÚfloat)ÚpairrE   s   &€r   Ú<lambda>Ú'BertweetTokenizer.bpe.<locals>.<lambda>»   s   ø€ °·±×1CÑ1CÀDÌ%ÐPUË,Ô1Wr   ©Úkeyú@@ r*   éüÿÿÿ)r?   r9   Úlistr   Úminr>   r=   ÚindexÚextendÚ
ValueErrorÚappendÚjoin)
rE   Útokenr   r   ÚbigramÚfirstÚsecondÚnew_wordÚiÚjs
   f&        r   ÚbpeÚBertweetTokenizer.bpe°   s‹  ø€ Ø�D—J‘JÔØ—:‘:˜eÕ$Ð$Ü�U‹|ˆÜ”T˜$˜s ˜)“_¨¨R­°6Õ(9Ð':Õ:Ó;ˆÜ˜$“ˆçØˆLàÜ˜Ô$WÔXˆFØ˜TŸ^™^Ô+ØØ"‰MˆEØˆHØˆAØ”c˜$“i”-ðØŸ
™
 5Ó,�Að
 —O‘O D¨1 IÔ.Ø�Aà•7˜eÔ#¨¬C°«I¸­MÔ(9¸dÀqÅ5½kÈVÔ>SØ—O‘O E¥NÔ3Ø˜•F’Aà—O‘O D¥GÔ,Ø˜•F’AÜ˜X“ˆHØˆDÜ�4‹y˜AŒ~Øä! $›“Ø�z‰z˜$ÓˆØ�C�RˆyˆØ ˆ�
‰
�5ÑØˆøô- "ô Ø—O‘O D¨ HÔ-Úðús   Â0F% Æ%GÇGc                ó   € V P                   '       d   V P                  V4      p. p\        P                  ! RV4      pV F;  pVP	                  \        V P                  V4      P                  R4      4      4       K=  	  V# )zTokenize a string.z\S+\n?Ú )r   ÚnormalizeTweetÚreÚfindallrf   rc   rq   r8   )rE   ÚtextÚsplit_tokensÚwordsrj   s   &&   r   Ú	_tokenizeÚBertweetTokenizer._tokenizeÜ   si   € à××ÐØ×&Ñ& tÓ,ˆDàˆÜ—
’
˜9 dÓ+ˆÛˆEØ×Ñ¤ T§X¡X¨e£_×%:Ñ%:¸3Ó%?Ó @ÖAñ àÐr   c                ó4  € V P                    F%  pVP                  W P                   V,          4      pK'  	  V P                  P                  V4      pRP	                  V Uu. uF  q@P                  V4      NK  	  up4      pVP                  RR4      P                  RR4      P                  RR4      P                  RR4      P                  R	R
4      pVP                  RR4      P                  RR4      P                  RR4      P                  RR4      P                  RR4      P                  RR4      pVP                  RR4      P                  RR4      P                  RR4      P                  RR4      pRP	                  VP                  4       4      # u upi )z
Normalize a raw Tweet
rt   zcannot zcan not zn't z n't zn 't zca n'tzcan'tzai n'tzain'tz'm z 'm z're z 're z's z 's z'll z 'll z'd z 'd z've z 've z p . m .z  p.m.z p . m z p.m z a . m .z a.m.z a . m z a.m )rB   ÚreplacerA   Útokenizeri   ÚnormalizeTokenr8   )rE   ÚtweetÚpunctÚtokensrj   Ú	normTweets   &&    r   ru   Ú BertweetTokenizer.normalizeTweetç   s^  € ð ×(Ô(ˆEØ—M‘M %×)<Ñ)<¸UÕ)CÓDŠEñ )ð ×'Ñ'×0Ñ0°Ó7ˆØ—H‘HÁfÓMÁf¸U×1Ñ1°%Ö8ÁfÑMÓNˆ	ð ×Ñ˜i¨Ó4ß‰W�V˜WÓ%ß‰W�W˜gÓ&ß‰W�X˜wÓ'ß‰W�X˜wÓ'ð 	ð ×Ñ˜e VÓ,ß‰W�V˜WÓ%ß‰W�U˜FÓ#ß‰W�V˜WÓ%ß‰W�U˜FÓ#ß‰W�V˜WÓ%ð 	ð ×Ñ˜j¨(Ó3ß‰W�Y Ó(ß‰W�Z Ó)ß‰W�Y Ó(ð	 	ð �x‰x˜	Ÿ™Ó)Ó*Ð*ùò1 Ns   Á Fc                ó`  € VP                  4       pVP                  R4      '       d   R# VP                  R4      '       g   VP                  R4      '       d   R# \        V4      ^8X  dE   WP                  9   d   V P                  V,          # V P                  e   V P	                  V4      # V# V# )z
Normalize tokens in a Tweet
Ú@z@USERÚhttpÚwwwÚHTTPURL)ÚlowerÚ
startswithr=   rB   r-   )rE   rj   Úlowercased_tokens   && r   r€   Ú BertweetTokenizer.normalizeToken	  s•   € ð !Ÿ;™;›=ÐØ×Ñ˜C× Ò ÙØ×(Ñ(¨×0Ò0Ð4D×4OÑ4OÐPU×4VÒ4VÙÜ�‹Z˜1Œ_Ø×+Ñ+Ô+Ø×*Ñ*¨5Õ1Ð1Ø�~‰~Ò)Ø—~‘~ eÓ,Ð,à�àˆLr   c                ó~   € V P                   P                  WP                   P                  V P                  4      4      # )z0Converts a token (str) in an id using the vocab.)r1   rZ   r"   )rE   rj   s   &&r   Ú_convert_token_to_idÚ&BertweetTokenizer._convert_token_to_id  s*   € à�|‰|×Ñ §|¡|×'7Ñ'7¸¿¹Ó'GÓHÐHr   c                óL   € V P                   P                  WP                  4      # )z=Converts an index (integer) in a token (str) using the vocab.)r5   rZ   r"   )rE   re   s   &&r   Ú_convert_id_to_tokenÚ&BertweetTokenizer._convert_id_to_token   s   € à�|‰|×Ñ §~¡~Ó6Ð6r   c                ód   € RP                  V4      P                  RR4      P                  4       pV# )z:Converts a sequence of tokens (string) in a single string.rt   ra   Ú )ri   r~   Ústrip)rE   rƒ   Ú
out_strings   && r   Úconvert_tokens_to_stringÚ*BertweetTokenizer.convert_tokens_to_string$  s,   € à—X‘X˜fÓ%×-Ñ-¨e°RÓ8×>Ñ>Ó@ˆ
ØÐr   c                óN   <€ V ^8„  d   QhRS[ RS[ R,          RS[S[ R3,          /# )é   Úsave_directoryÚfilename_prefixNÚreturn.)r2   r9   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚBertweetTokenizer.__annotate__/  s3   ø€ ÷ (ñ (©cð (ÁCÈ$ÅJð (ÑZ_Ñ`cÐehÐ`hÕZiñ (r   c           
     óz  € \         P                  P                  V4      '       g   \        P	                  RV R24       R# \        V R/ 4      pV'       d   V R2MRp\         P                  P                  WVP                  RR4      ,           4      p\        VRR	R
7      ;_uu_ 4       p\        V P                  P                  4       R R7       F%  w  rxV^8¼  g   K  VP                  V RV R24       K'  	  RRR4       \         P                  P                  WVP                  RR4      ,           4      p	\        V	RR	R
7      ;_uu_ 4       p
V
P                  R \        V P                  P                  4       R R7       4       4       RRR4       WY3#   + '       g   i     L¤; i  + '       g   i     YY3# ; i)z6
Save the vocabulary and merges files to a directory.
zVocabulary path (z) should be a directoryÚvocab_files_namesÚ-r–   r   r   Úwr   r   c                 ó   € V ^,          # ©r	   r+   ©Úkvs   &r   r]   Ú3BertweetTokenizer.save_vocabulary.<locals>.<lambda>>  s	   € ÈrÐRSÎur   r_   rt   r   Nr   r   c              3   óV   "  € T F  w  rR P                  V4      R,           x € K!  	  R# 5i)rt   r   N)ri   )Ú.0Ú
bpe_tokensÚtoken_indexs   &  r   Ú	<genexpr>Ú4BertweetTokenizer.save_vocabulary.<locals>.<genexpr>F  s+   é € ð á/cÑ+�Jð —‘˜Ó$ t×+Ò+Û/cùs   ‚')c                 ó   € V ^,          # r©   r+   rª   s   &r   r]   r¬   H  s   € Ð]_Ð`aÖ]br   r+   )ÚosÚpathÚisdirr/   ÚerrorÚgetattrri   rZ   r6   Úsortedr1   r4   ÚwriteÚ
writelinesr>   )rE   r�   rž   r¥   Úprefixr   Úfrj   Útoken_idÚ
merge_fileÚwriters   &&&        r   Úsave_vocabularyÚ!BertweetTokenizer.save_vocabulary/  sm  € ô �w‰w�}‰}˜^×,Ò,Ü�L‰LÐ,¨^Ð,<Ð<SÐTÔUØˆIä# DÐ*=¸rÓBÐß*9�OÐ$ AÑ&¸rˆô —W‘W—\‘\ .Ð;L×;PÑ;PÐQ]Ð_jÓ;kÕ2kÓlˆ
Ü�*˜c¨G×4Õ4¸Ü#)¨$¯,©,×*<Ñ*<Ó*>ÑDT×#U‘�à˜q–=Ø—G‘G˜u˜g Q x j°Ð3Ö4ñ $V÷ 5ô —W‘W—\‘\ .Ð;L×;PÑ;PÐQ^Ð`kÓ;lÕ2lÓmˆ
Ü�*˜c¨G×4Õ4¸Ø×Ññ ä/5°d·n±n×6JÑ6JÓ6LÑRbÕ/cóô ÷ 5ð Ð'Ð'÷ 5×4ú÷ 5Ö4ð Ð'Ð'ús   Â)0FÃFÅ=F(ÆF%	Æ(F:	c                ó  € \        V\        4      '       d4    \        VRRR7      ;_uu_ 4       pV P                  V4       RRR4       R# VP                  4       pV F]  pVP                  4       pVP                  R4      pVR	8X  d   \        R4      hVRV p\        V P                  4      V P                  V&   K_  	  R#   + '       g   i     R# ; i  \         d   pThRp?i\
         d    \        RT R24      hi ; i)
zY
Loads a pre-existing dictionary from a text file and adds its symbols to this instance.
Úrr   r   NzIncorrect encoding detected in z, please rebuild the datasetrt   z5Incorrect dictionary format, expected '<token> <cnt>'r*   )Ú
isinstancer2   r6   r3   ÚFileNotFoundErrorÚUnicodeErrorÚ	ExceptionÚ	readlinesr—   Úrfindrg   r=   r1   )	rE   r½   ÚfdÚfnfeÚlinesÚlineTmpÚlineÚidxr   s	   &&       r   r3   ÚBertweetTokenizer.add_from_fileM  sæ   € ô �aœ×ÒðcÜ˜!˜S¨7×3Õ3°rØ×&Ñ& rÔ*÷ 4ñ à—‘“ˆÛˆGØ—=‘=“?ˆDØ—*‘*˜S“/ˆCØ�bŒyÜ Ð!XÓYÐYØ˜˜�:ˆDÜ!$ T§\¡\Ó!2ˆD�L‰L˜Óó ÷ 4Ö3ñ ûô	 %ô Ø�
ûÜô cÜÐ"AÀ!ÀÐD`Ð aÓbÐbðcús:   ˜C ®B?Á C Â?C	Ã
C ÃC ÃC>ÃC Ã C>Ã-C>)
r>   r?   r5   r-   r1   r   r   rB   rA   r   )Fú<s>ú</s>rÓ   rÒ   z<unk>z<pad>z<mask>rO   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚVOCAB_FILES_NAMESr¥   rD   ÚpropertyrQ   rU   rq   r{   ru   r€   r�   r“   r™   rÁ   r3   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rL   r¡   s   @@r   r   r   4   sl   ù‡ € ñ0ðd *Ð÷>
ð@ ñ!ó ð!ò?ò*òX	ò +òDò&Iò7ò÷(ò (÷<3ò 3r   r   ac  
    (?:
      [<>]?
      [:;=8]                     # eyes
      [\-o\*\']?                 # optional nose
      [\)\]\(\[dDpP/\:\}\{@\|\\] # mouth
      |
      [\)\]\(\[dDpP/\:\}\{@\|\\] # mouth
      [\-o\*\']?                 # optional nose
      [:;=8]                     # eyes
      [<>]?
      |
      <3                         # heart
    )u  			# Capture 1: entire matched URL
  (?:
  https?:				# URL protocol and colon
    (?:
      /{1,3}				# 1-3 slashes
      |					#   or
      [a-z0-9%]				# Single letter or digit or '%'
                                       # (Trying not to match e.g. "URI::Escape")
    )
    |					#   or
                                       # looks like domain name followed by a slash:
    [a-z0-9.\-]+[.]
    (?:[a-z]{2,13})
    /
  )
  (?:					# One or more:
    [^\s()<>{}\[\]]+			# Run of non-space, non-()<>{}[]
    |					#   or
    \([^\s()]*?\([^\s()]+\)[^\s()]*?\) # balanced parens, one level deep: (...(...)...)
    |
    \([^\s]+?\)				# balanced parens, non-recursive: (...)
  )+
  (?:					# End with:
    \([^\s()]*?\([^\s()]+\)[^\s()]*?\) # balanced parens, one level deep: (...(...)...)
    |
    \([^\s]+?\)				# balanced parens, non-recursive: (...)
    |					#   or
    [^\s`!()\[\]{};:'".,<>?Â«Â»â€œâ€�â€˜â€™]	# not a space or one of these punct chars
  )
  |					# OR, the following to match naked domains:
  (?:
    (?<!@)			        # not preceded by a @, avoid matching foo@_gmail.com_
    [a-z0-9]+
    (?:[.\-][a-z0-9]+)*
    [.]
    (?:[a-z]{2,13})
    \b
    /?
    (?!@)			        # not succeeded by a @,
                            # avoid matching "foo.na" in "foo.na@example.com"
  )
a	  
    (?:
      (?:            # (international)
        \+?[01]
        [ *\-.\)]*
      )?
      (?:            # (area code)
        [\(]?
        \d{3}
        [ *\-.\)]*
      )?
      \d{3}          # exchange
      [ *\-.\)]*
      \d{4}          # base
    )z	<[^>\s]+>z[\-]+>|<[\-]+z(?:@[\w_]+)z(?:\#+[\w_]+[\w\'_\-]*[\w_]+)z#[\w.+-]+@[\w-]+\.(?:[\w-]\.?)+[\w-]a…  
    (?:[^\W\d_](?:[^\W\d_]|['\-_])+[^\W\d_]) # Words with apostrophes or dashes.
    |
    (?:[+\-]?\d+[,/.:-]\d+[+\-]?)  # Numbers, including fractions, decimals.
    |
    (?:[\w_]+)                     # Words without apostrophes or dashes.
    |
    (?:\.(?:\s*\.){1,})            # Ellipsis dots.
    |
    (?:\S)                         # Everything else that isn't whitespace.
    z(%s)Ú|z([^a-zA-Z0-9])\1{3,}z&(#?(x?))([^&;\s]+);c                 ó`   € Vf   Rp\        V \        4      '       d   V P                  W4      # V # )Nr   )rÅ   ÚbytesÚdecode)rx   r   Úerrorss   &&&r   Ú_str_to_unicoderã     s.   € ØÒØˆÜ�$œ×ÒØ�{‰{˜8Ó,Ð,Ø€Kr   c                óR   aa€ VV3R lp\         P                  V\        W4      4      # )u‡  
Remove entities from text by converting them to their corresponding unicode character.

Args:
    text:
        A unicode string or a byte string encoded in the given *encoding* (which defaults to 'utf-8').
    keep (list):
        List of entity names which should not be replaced. This supports both numeric entities (`&#nnnn;` and
        `&#hhhh;`) and named entities (such as `&nbsp;` or `&gt;`).
    remove_illegal (bool):
        If `True`, entities that can't be converted are removed. Otherwise, entities that can't be converted are
        kept "as is".
Returns: A unicode string with the entities removed.

See https://github.com/scrapy/w3lib/blob/master/w3lib/html.py

Examples:

```python
>>> from nltk.tokenize.casual import _replace_html_entities

>>> _replace_html_entities(b"Price: &pound;100")
'Price: \xa3100'

>>> print(_replace_html_entities(b"Price: &pound;100"))
Price: Â£100
```c                 ó>  <€ V P                  ^4      pV P                  ^4      '       d`    V P                  ^4      '       d   \        V^4      pM\        V^
4      p^€Tu;8:  d   ^Ÿ8:  d   M M]\        V34      P                  R4      # MAVS9   d   V P                  ^ 4      # \
        P                  P                  P                  V4      pVe    \        V4      # S'       d   R# V P                  ^ 4      #   \         d    Rp L:i ; i  \        \        3 d     LAi ; i)é   Úcp1252Nr–   )ÚgroupÚintrà   rá   rg   ÚhtmlÚentitiesÚname2codepointrZ   ÚchrÚOverflowError)ÚmatchÚentity_bodyÚnumberÚkeepÚremove_illegals   &  €€r   Ú_convert_entityÚ/_replace_html_entities.<locals>._convert_entity<  sÿ   ø€ Ø—k‘k !“nˆØ�;‰;�q�>Š>ðØ—;‘;˜q—>’>Ü  ¨bÓ1‘Fä  ¨bÓ1�Fð
 ˜6Ö) T×)Ü  & Ó+×2Ñ2°8Ó<Ð<ð *ð
 ˜dÔ"Ø—{‘{ 1“~Ð%äŸ™×5Ñ5×9Ñ9¸+ÓF�ØÒðÜ˜6“{Ð"÷ $ˆrÐ7¨¯©°Q«Ð7øô ô Ø’ðûô ¤Ð.ô Ùðús/   «C5 Á*C5 Á-C5 Ã
D Ã5DÄDÄDÄD)ÚENT_REÚsubrã   )rx   rò   ró   r   rô   s   &ff& r   Ú_replace_html_entitiesrø     s    ù€ ö:8ô: �:‰:�o¤°tÓ'FÓGÐGr   c                   ó4   a € ] tR tRt o RtRR ltR tRtV tR# )r@   i_  a  
Examples:

```python
>>> # Tokenizer for tweets.
>>> from nltk.tokenize import TweetTokenizer

>>> tknzr = TweetTokenizer()
>>> s0 = "This is a cooool #dummysmiley: :-) :-P <3 and some arrows < > -> <--"
>>> tknzr.tokenize(s0)
['This', 'is', 'a', 'cooool', '#dummysmiley', ':', ':-)', ':-P', '<3', 'and', 'some', 'arrows', '<', '>', '->', '<--']

>>> # Examples using *strip_handles* and *reduce_len parameters*:
>>> tknzr = TweetTokenizer(strip_handles=True, reduce_len=True)
>>> s1 = "@remy: This is waaaaayyyy too much for you!!!!!!"
>>> tknzr.tokenize(s1)
[':', 'This', 'is', 'waaayyy', 'too', 'much', 'for', 'you', '!', '!', '!']
```c                ó*   € Wn         W n        W0n        R # rO   ©Úpreserve_caseÚ
reduce_lenÚstrip_handles)rE   rü   rý   rþ   s   &&&&r   rD   ÚTweetTokenizer.__init__s  s   € Ø*ÔØ$ŒØ*Ör   c                óŒ  € \        V4      pV P                  '       d   \        V4      pV P                  '       d   \	        V4      p\
        P                  RV4      p\        P                  V4      pV P                  '       g=   V Uu. uF0  p\        P                  V4      '       d   TMVP                  4       NK2  	  ppV# u upi )z“
Args:
    text: str

Returns: list(str) A tokenized list of strings; concatenating this list returns the original string if
`preserve_case=False`
ú\1\1\1)rø   rþ   Úremove_handlesrý   Úreduce_lengtheningÚHANG_REr÷   ÚWORD_RErw   rü   ÚEMOTICON_REÚsearchr‹   )rE   rx   Ú	safe_textrz   Úxs   &&   r   r   ÚTweetTokenizer.tokenizex  s›   € ô & dÓ+ˆà××ÐÜ! $Ó'ˆDà�?�?ˆ?Ü% dÓ+ˆDä—K‘K 	¨4Ó0ˆ	ä—‘ 	Ó*ˆà×!×!Ð!ÙHMÓNÉÀ1œ+×,Ñ,¨Q×/Ò/‘Q°Q·W±W³YÒ>ÉˆEÐNØˆùò Os   ÂCÂ'Crû   N©TFF)	rÔ   rÕ   rÖ   r×   rØ   rD   r   rÛ   rÜ   )r¡   s   @r   r@   r@   _  s   ø‡ € ñô&+÷
ð r   r@   c                óR   € \         P                  ! R4      pVP                  RV 4      # )zY
Replace repeated character sequences of length 3 or greater with sequences of length 3.
z	(.)\1{2,}r  ©ÚregexÚcompiler÷   ©rx   Úpatterns   & r   r  r  —  s#   € ô �mŠm˜LÓ)€GØ�;‰;�y $Ó'Ð'r   c                óR   € \         P                  ! R4      pVP                  RV 4      # )z,
Remove Twitter username handles from text.
zv(?<![A-Za-z0-9_!@#\$%&*])@(([A-Za-z0-9_]){20}(?!@))|(?<![A-Za-z0-9_!@#\$%&*])@(([A-Za-z0-9_]){1,19})(?![A-Za-z0-9_]*@)rt   r  r  s   & r   r  r  Ÿ  s+   € ô �mŠmð 	Bó€Gð �;‰;�s˜DÓ!Ð!r   c                ó:   € \        WVR7      P                  V 4      # )z2
Convenience function for wrapping the tokenizer.
rû   )r@   r   )rx   rü   rý   rþ   s   &&&&r   Úcasual_tokenizer  ¯  s"   € ô ¨Ð\iÔj×sÑsØóð r   )NÚstrict)r+   Tr   r  )#rØ   rê   Úhtml.entitiesr´   rv   r  Útokenization_pythonr   Úutilsr   Ú
get_loggerrÔ   r/   rÙ   r   r   Ú	EMOTICONSÚURLSÚREGEXPSr  ri   ÚVERBOSEÚIÚUNICODEr  r  r  rö   rã   rø   r@   r  r  r  Ú__all__r+   r   r   Ú<module>r!     sN  ðñ (ã Û Û 	Û 	ã å 6Ý ð 
×	Ò	˜HÓ	%€ð �+Ø�;ðÐ òô n3Ð+ô n3ðx	ðL	€	ð$)€ð\ 	ð	ð  àààà(à.ð
ðA+€ð` �-Š-˜ c§h¡h¨wÓ&7Õ7¸¿¹ÈÏÉÕ9PÐSX×S`ÑS`Õ9`Ó
a€ð �-Š-Ð/Ó
0€ð �mŠm˜I u§}¡}°u·w±wÕ'>ÀÇÁÕ'NÓO€ð 
�ŠÐ.Ó	/€ôô:H÷@0ñ 0òp(ò"ô ð Ð
‚r   