Ë
    š„j†. ã                   ó`  — 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	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" dd	l#m$Z$m%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&e	«      Z* G d„ de&«      Z+ G d„ de&«      Z,y)é    Né   )ÚInfoExtractor)ÚPeriscopeBaseIEÚPeriscopeIEé   )Újs_number_to_string)Ú	HTTPError)ÚExtractorErrorÚ
clean_htmlÚdict_getÚfilter_dictÚfloat_or_noneÚformat_fieldÚint_or_noneÚjoin_nonemptyÚmake_archive_idÚ
remove_endÚstr_or_noneÚstrip_or_noneÚtruncate_stringÚtry_callÚtry_getÚunified_timestampÚupdate_url_queryÚurl_or_noneÚ
xpath_text)ÚrequireÚtraverse_objc                   ó–   — e Zd ZdZdZdZdZdZd„ Zd„ Z	e
d„ «       Zed	„ «       Zej                  d
„ «       Zd„ Zdd„Zi dfd„Zd„ Zd„ Zy)ÚTwitterBaseIEzhttps://api.x.com/1.1/zhttps://x.com/i/api/graphql/zzhttps?://(?:(?:www|m(?:obile)?)\.)?(?:(?:twitter|x)\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\.onion)/zhAAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnAzpAAAAAAAAAAAAAAAAAAAAAIK1zgAAAAAA2tUWuhGZ2JceoId5GwYWU5GspY4%3DUq7gzFoCZs1QfwGoVdvSac3IniczZEYXIcDyumCauIXpcAPorEc                 óŽ  — |j                  d«      }|sg i fS d|v rj| j                  ||dddd¬«      \  }}t        |d„ «      D ]<  }t        j                  d	|d
   «      x}sŒt        |j                  d«      d«      |d<   Œ> ||fS t        t        |d«      d«      xs d }|t        d|«      |dœ}| j                  ||«       |gi fS )NÚurlz.m3u8Úmp4Úm3u8_nativeÚhlsF)Úm3u8_idÚfatalc                 ó<   — |d   dk(  xr |j                  d«      d u S )NÚvcodecÚnoneÚtbr)Úget©Ú_Úvs     úO/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/twitter.pyú<lambda>z8TwitterBaseIE._extract_variant_formats.<locals>.<lambda>2   s#   € °Q°x±[ÀFÑ5JÒ5cÈqÏuÉuÐUZË|Ð_cÐOc€ ó    z hls-[Aa]udio-(?P<bitrate>\d{4,})Ú	format_idÚbitrateéè  r+   )r4   Úbit_rateÚhttp)r"   r3   r+   )
r,   Ú#_extract_m3u8_formats_and_subtitlesr   ÚreÚmatchr   Úgroupr   r   Ú_search_dimensions_in_video_url)	ÚselfÚvariantÚvideo_idÚvariant_urlÚfmtsÚsubsÚfÚmobjr+   s	            r0   Ú_extract_variant_formatsz&TwitterBaseIE._extract_variant_formats*   sõ   € Ø—k‘k %Ó(ˆÙØ�r�6ˆMØ˜Ñ#Ø×AÑAØ˜X u¨mØ Uð Bó ,‰JˆD�$ô " $Ñ(cÓdò H�ÜŸ8™8Ð$GÈÈ;ÉÓXÐX�4ÑXÜ*¨4¯:©:°iÓ+@À$ÓG�A�e’HðHð ˜�:Ðäœh wÐ0GÓHÈ$ÓOÒWÐSWˆCà"Ü*¨6°3Ó7ØñˆAð
 ×0Ñ0°°KÔ@Ø�3˜�7ˆNr2   c                 ó`  — t        |«      }|sg i fS | j                  ||«      }g }i }g }|j                  d«      D ]›  }t        j                  j                  |j                  d   «      |j                  d<   |j                  |j                  d   «       | j                  |j                  |«      \  }}	|j                  |«       | j                  ||	«      }Œ� t        t        |d«      «      }
|
|vr:| j                  d|
i|«      \  }}	|j                  |«       | j                  ||	«      }||fS )Nz:.//{http://twitter.com/schema/videoVMapV2.xsd}videoVariantr"   z.//MediaFile)r   Ú_download_xmlÚfindallÚurllibÚparseÚunquoteÚattribÚappendrE   ÚextendÚ_merge_subtitlesr   r   )r=   Úvmap_urlr?   Ú	vmap_dataÚformatsÚ	subtitlesÚurlsÚvideo_variantrA   rB   Ú	video_urls              r0   Ú_extract_formats_from_vmap_urlz,TwitterBaseIE._extract_formats_from_vmap_url@   s4  € Ü˜xÓ(ˆÙØ�r�6ˆMØ×&Ñ& x°Ó:ˆ	ØˆØˆ	ØˆØ&×.Ñ.Ð/kÓlò 	?ˆMÜ*0¯,©,×*>Ñ*>Ø×$Ñ$ UÑ+ó+-ˆM× Ñ  Ñ'à�K‰K˜×,Ñ,¨UÑ3Ô4Ø×6Ñ6Ø×$Ñ$ hó0‰JˆD�$à�N‰N˜4Ô Ø×-Ñ-¨i¸Ó>‰Ið	?ô "¤*¨Y¸Ó"GÓHˆ	Ø˜DÑ Ø×6Ñ6¸¸yÐ7IÈ8ÓT‰JˆD�$Ø�N‰N˜4Ô Ø×-Ñ-¨i¸Ó>ˆIØ˜	Ð!Ð!r2   c                 ó¾   — t        j                  d|«      }|rE| j                  t        |j	                  d«      «      t        |j	                  d«      «      dœ«       y y )Nz /(?P<width>\d+)x(?P<height>\d+)/ÚwidthÚheight©rY   rZ   )r9   ÚsearchÚupdateÚintr;   )Úa_formatrV   Úms      r0   r<   z-TwitterBaseIE._search_dimensions_in_video_urlW   sN   € ä�I‰IÐ9¸9ÓEˆÙØ�O‰OÜ˜QŸW™W WÓ-Ó.Ü˜aŸg™g hÓ/Ó0ñõ ð r2   c                 óh   — t        | j                  | j                  «      j                  d«      «      S )NÚ
auth_token)ÚboolÚ_get_cookiesÚ	_API_BASEr,   ©r=   s    r0   Úis_logged_inzTwitterBaseIE.is_logged_in`   s'   € ä�D×%Ñ% d§n¡nÓ5×9Ñ9¸,ÓGÓHÐHr2   c                 ó2   — | j                  ddgd¬«      d   S )NÚapiÚgraphqlÚTwitter)Úie_keyr   )Ú_configuration_argrf   s    r0   Ú_selected_apizTwitterBaseIE._selected_apid   s!   € à×&Ñ& u¨y¨kÀ)Ð&ÓLÈQÑOÐOr2   c                 óÊ   — t        | j                  | j                  › d�|dd| j                  |xr | j                  dk(  ¬«      ¬«      dt
        hf«      }|st        d«      ‚|S )	Nzguest/activate.jsonzDownloading guest tokenr2   Úlegacy©rp   )ÚdataÚheadersÚguest_tokenzCould not retrieve guest token)r   Ú_download_jsonre   Ú_set_base_headersrn   Ústrr
   )r=   Ú
display_idrt   s      r0   Ú_fetch_guest_tokenz TwitterBaseIE._fetch_guest_tokenh   s|   € Ü" 4×#6Ñ#6Ø�~‰~ÐÐ1Ð2°JÐ@YÐ`cØ×*Ñ*°*Ò2_À×ASÑASÐW_ÑA_Ð*Ó`ð $7ó $bð œS˜EÐ"ó$ˆñ Ü Ð!AÓBÐBØÐr2   Fc                 óŠ   ‡ — |r‰ j                   s‰ j                  n‰ j                  }t        d|› �t	        ˆ fd„«      dœ«      S )NzBearer c                  óT   •— ‰ j                  ‰ j                  «      d   j                  S )NÚct0)rd   re   Úvaluerf   s   €r0   r1   z1TwitterBaseIE._set_base_headers.<locals>.<lambda>u   s!   ø€ ¨T×->Ñ->¸t¿~¹~Ó-NÈuÑ-U×-[Ñ-[€ r2   )ÚAuthorizationzx-csrf-token)rg   Ú_LEGACY_AUTHÚ_AUTHr   r   )r=   rp   Úbearer_tokens   `  r0   rv   zTwitterBaseIE._set_base_headersq   sF   ø€ Ù,2¸4×;LÒ;L�t×(Ò(ÐRV×R\ÑR\ˆÜØ& | nÐ5Ü$Ó%[Ó\ñ
ó ð 	r2   c                 óp  — | j                  | xr | j                  dk(  ¬«      }|j                  | j                  rddddœnd| j	                  |«      i«       |rh d£nd	h}| j                  |r| j                  n| j                  |z   ||||d
|rdnd› d�¬«      }dj                  t        t        |dddt        hf«      «      «      x}rk|j                  «       dk(  r| j                  d|› d�«       |S d|j                  «       v r| j                  t        |d«      «       |S t!        d|xs d› �«      ‚|S )Nrp   rq   ÚOAuth2SessionÚenÚyes)zx-twitter-auth-typezx-twitter-client-languagezx-twitter-active-userzx-guest-token>   é�  é‘  é”  é“  r‰   zDownloading ÚGraphQLz
legacy APIz JSON)rs   ÚqueryÚexpected_statusÚnoteú, Úerrors.Úmessagezdependency: unspecifiedzIgnoring Twitter API error: "ú"znot authorizedú.zError(s) while querying API: úUnknown error)rv   rn   r]   rg   ry   ru   Ú_GRAPHQL_API_BASEre   ÚjoinÚsetr   rw   ÚlowerÚwrite_debugÚraise_login_requiredr   r
   )	r=   Úpathr?   r‹   rj   rs   Úallowed_statusÚresultÚ	error_msgs	            r0   Ú	_call_apizTwitterBaseIE._call_apix   sh  € Ø×(Ñ(°G°Ò0^À×@RÑ@RÐV^Ñ@^Ð(Ó_ˆØ�‰ð ×Òð $3Ø)-Ø%*ò
ð
 ˜T×4Ñ4°XÓ>ð%
ô		ñ 29Ó-¸s¸eˆØ×$Ñ$Ù'.ˆT×#Ò#°D·N±NÀdÑJØ˜g¨UÀNØ©W¡	¸,ÐGÀuÐMð %ó Oˆð
 Ÿ	™	¤#¤l°6¸HÀcÈ9ÔWZÐV[Ð;\Ó&]Ó"^Ó_Ð_ˆ9Ð_ð �‰Ó Ð$=Ò=Ø× Ñ Ð#@ÀÀÈ1Ð!MÔNð ˆð " Y§_¡_Ó%6Ñ6Ø×)Ñ)¬*°YÀÓ*DÔEð ˆô %Ð'DÀYÒEaÐRaÐDbÐ%cÓdÐdàˆr2   c                 ó   — t        d«      ‚)Nz-Method must be implemented to support GraphQL)ÚNotImplementedError©r=   Úmedia_ids     r0   Ú_build_graphql_queryz"TwitterBaseIE._build_graphql_query“   s   € Ü!Ð"QÓRÐRr2   c           	      óÞ   — | j                  |«      }|j                  «       D ��ci c]  \  }}|t        j                  |d¬«      “Œ }}}t	        | j                  |||d¬«      d«      S c c}}w )N)ú,ú:)Ú
separatorsT)r‹   rj   rr   )r£   ÚitemsÚjsonÚdumpsr   rž   )r=   Úendpointr¢   rr   Úkeyr}   r‹   s          r0   Ú_call_graphql_apizTwitterBaseIE._call_graphql_api–   sh   € Ø×(Ñ(¨Ó2ˆØQU×Q[ÑQ[ÓQ]×^Á:À3È�”d—j‘j °:Ô>Ñ>Ð^ˆÑ^Ü˜DŸN™N¨8°XÀUÐTX˜NÓYÐ[aÓbÐbùó _s   ¥"A)N)F)Ú__name__Ú
__module__Ú__qualname__re   r”   Ú_BASE_REGEXr€   r   rE   rW   Ústaticmethodr<   Úpropertyrg   Ú	functoolsÚcached_propertyrn   ry   rv   rž   r£   r­   © r2   r0   r    r    #   s”   „ Ø(€IØ6Ðð P€KØv€Eð F€Lòò,"ð. ñó ðð ñIó ðIð ×ÑñPó ðPòóð /1¸%ó ò6Sócr2   r    c                   óÒ  — e Zd ZdZej
                  dz   Z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e“dg “de“de“dd“dd “d!d"œd#d$i dd%“dd“dd&“d
d'“dd(“dd(“dd)“dd*“dd+“dd“de“de“de“dd,g“d-d.“d/d0g“d1d2id3œd4d5i dd6“dd“dd7“d
d8“dd9“dd:“dd;“d<d=“d-d>“d?e“d@dA“ddB“ddC“dDdEg“dd“de“dFdG“edHedId:dJdKdLdMdNœ	¥dOgdPdQœdRdSdTddUdVdWdXdYdZd[œd!d\œd]dJd^œgZd_„ Z	y`)aÚTwitterCardIEztwitter:cardz0i/(?:cards/tfw/v1|videos(?:/tweet)?)/(?P<id>\d+)z5https://twitter.com/i/cards/tfw/v1/560070183650213889ÚidÚ560070131976392705Úextr#   ÚtitlezwTwitter - You can now shoot, edit and share video on Twitter. Capture life's most moving moments from your perspective.Údescriptionz$md5:18d3e24bb4f6e5007487dd546e53bd96Úuploaderrk   Úuploader_idÚ	thumbnailúre:^https?://.*\.jpgÚdurationgœÄ °r>@Ú	timestampi •ÇTÚupload_dateÚ20150127Ú	age_limitr   Úcomment_countÚtagsÚrepost_countÚ
like_countrx   Ú560070183650213889Úuploader_urlzhttps://twitter.com/Twitterz$This content is no longer available.©r"   Ú	info_dictÚskipz5https://twitter.com/i/cards/tfw/v1/623160978427936768Ú 7137eca597f72b9abbe61e5ae0161399Ú623160978427936768zONASA - Fly over Pluto's icy Norgay Mountains and Sputnik Plain in this @NASA...z{Fly over Pluto's icy Norgay Mountains and Sputnik Plain in this @NASANewHorizons #PlutoFlyby video. https://t.co/BJYgOjSeGAÚNASAi�­UÚ20150720zhttps://twitter.com/NASAÚ
PlutoFlybyÚ
channel_idÚ11348282Ú_old_archive_idsztwitter 623160978427936768Úformatú[protocol=https]©r"   Úmd5rÎ   Úparamsz5https://twitter.com/i/cards/tfw/v1/654001591733886977Ú fb08fbd69595cbd8818f0b2f2a94474dÚdq4Oj5quskIzUbuntu 11.10 Overviewz$md5:a831e97fa384863d6e26ce48d1c43376Ú20111013zOMG! UBUNTU!z
@omgubuntuÚchannel_urlz8https://www.youtube.com/channel/UCIiSwcm9xiFb3Y4wjzR41eQÚUCIiSwcm9xiFb3Y4wjzR41eQÚchannel_follower_countÚchapterszcount:8z"https://www.youtube.com/@omgubuntuéŠ   Ú
categorieszFilm & AnimationÚavailabilityÚpublicz4https://i.ytimg.com/vi/dq4Oj5quskI/maxresdefault.jpgzcount:12Tz	count:100iƒ·–NÚnot_live)	rÊ   rÀ   Ú
view_countrÈ   ÚchannelÚplayable_in_embedÚheatmaprÃ   Úlive_statusÚYoutubezThe page does not exist)r"   rÛ   rÎ   Úadd_ierÏ   z5https://twitter.com/i/videos/tweet/705235433198714880Ú 884812a2adc8aaf6fe52b15ccbfa3b88Ú705235433198714880úaBrent Yarina - Khalil Iverson's missed highlight dunk. And made highlight dunk. In one highlight.újKhalil Iverson's missed highlight dunk. And made highlight dunk. In one highlight. https://t.co/OrxcJ28BnsúBrent YarinaÚBTNBrentYarinaéL±×VÚ20160303)r¹   r»   r¼   r½   r¾   r¿   rÃ   rÄ   )r"   rÛ   rÎ   rÏ   z/https://twitter.com/i/videos/752274308186120192©r"   Úonly_matchingc                 ót   — | j                  |«      }| j                  d|z   t        j                  «       |«      S )Nzhttps://twitter.com/statuses/)Ú	_match_idÚ
url_resultÚ	TwitterIErl   )r=   r"   Ú	status_ids      r0   Ú_real_extractzTwitterCardIE._real_extract  s7   € Ø—N‘N 3Ó'ˆ	Ø�‰Ø+¨iÑ7Ü×ÑÓ 	ó+ð 	+r2   N©
r®   r¯   r°   ÚIE_NAMEr    r±   Ú
_VALID_URLr^   Ú_TESTSrÿ   r¶   r2   r0   r¸   r¸   œ   sG  „ Ø€GØ×*Ñ*Ð-`Ñ`€Jð KðØÐ*ðà�uðð ð  Sðð ÐEð	ð
 ˜Iðð ˜yðð Ð4ðð ˜Fðð ˜Zðð ˜zðð ˜Qðð   ðð ˜ðð  ðð ˜cðð  Ð2ð!ð" Ð =ð#ð& ;ñ-	
ð2 KØ5ðØÐ*ðà�uðð Ðjðð ð   ]ð	ð
 ˜Fðð ˜vðð ˜Zðð ˜zðð Ð :ðð ˜Qðð   ðð ˜cðð  ðð ˜˜ðð ˜jðð  #Ð%AÐ$Bð!ð$  Ð!3Ð4ñ+	
ð0 KØ5ðØ�mðà�uðð Ð0ðð ÐEð	ð
 ˜zðð ˜Nðð ˜|ðð ÐYðð Ð8ðð )¨#ðð ˜Iðð Ð Dðð ˜Cðð Ð1Ð2ðð ˜Qðð    ð!ð"  ð#ð$ "ØSØ!Ø"Ø)Ø%)Ø&Ø'Ø)ò5ð8 !�kØ-ñA!	
ðF KØ5à*ØØ|ð  LØ*Ø/Ø'Ø)ñ	ð ;ñ	
ð  EØ!ñ	
ðCe€FóN+r2   r¸   c                   óÂ  — e Zd ZdZej
                  dz   Zg 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e“de“d e“d!g “d"d#gd$œ¥d%d&œ‘d'd(d)d	d*d+d,d-d.d/œd0d1gd2d3œ‘d4i dd5“dd5“dd	“d
d6“dd7“dd8“dd9“dd:“dd;“dd<“dd=“de“de“d e“d!g d>¢“d?d@“dAdBg“dCœ‘dDdEd	dFdGdHdIdJdKdLeeeg d@dMœdNdOidPdQœ‘dRi ddS“ddT“dd	“d
dU“ddV“dd“ddW“ddX“ddY“ddZ“dd[“dd\“dd]“de“de“d e“d!d^g“d@d_gd$œ¥d`d&œ‘dai ddb“ddc“dd	“d
dd“dde“ddf“ddg“ddh“ddi“ddj“ddk“ddl“dd“de“de“d e“d!g “d@dmgd$œ¥dCœ‘dndod	dpdqdrdsdtdduœdvgdwdxœ‘dyi ddz“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!g “de“d e“ed…gd†œ¥d‡d&œ‘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e“de“d e“d!d”g“d@d•gd$œ¥dNdOid–œ‘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e“de“d e“d!g “d@d£gd$œ¥dNdOid–œ‘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e“de“d e“d®e“d!g “d?d@i¥d¯d&œ‘d°d±d	d²d³d´ddµged¶œd·gd¸dxœ‘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e“de“d e“d!g “d@dÅgd$œ¥dNdOid–œ‘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e“de“d e“d!g “d@dÒgd$œ¥dNdOid–œ‘dÓdÔdÕdÖd×dØdÙdÚdÛdÜeeeg d@dÝœdÞdNdOidßœ‘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e“de“d e“d!dìg“d@dígd$œ¥dCœ‘dîi ddï“ddð“dd	“d
e“de“ddñ“de“ddò“ddó“ddô“ddõ“ddö“d e“de“de“d?d"“d!g “dAd÷gi¥dNdøid%dQœ‘dùdúdûeg düeedýd@edþdÿe�d �d�dœ�dœ‘�ddú�de�d�deee�d�d	�d
g e�dd@�dœ�dœ‘�ddú�de�d�de�d�d�dd@�deee�dg�dœ�dœ‘�d�d�d�d�d�d�d�d�d�d �d!�d!�d"�d#œ�d$gdN�d%i�d&œ‘�d'dú�d(�d)�d*�d+e�d,�d-eg �d.¢�d/d@�d0�d1e�d2œ�dœ‘�d3i d�d4“dd	“d
�d5“ddö“d�d*“d�d-“d�d,“d�d0“de“de“d!g �d.¢“d�d6“d�d1“d�d(“d e“d�d+“d�d/“d@�d7gd$œ¥�d8dOid–œ‘�d9i d�d:“d�d;“dd	“d
�d<“d�d=“d�d>“d�d?“d�d@“d�dA“d�dB“d�dC“d�dD“d�dE“d?d"“d!g “d e“de“e�dFgd†œ¥d%d&œ‘�dGi d�dH“d�dI“dd	“d
�dJ“d�dK“d�dL“d e“d�dM“d�dN“de“d�dO“de“d�dP“d?d@“d�dQ“d!g “d�dR“�dS�dTg�dUœ¥�d8dOi�dVdQœ‘�dWi d�dX“d�dY“dd	“d�dZ“d�d[“d�d\“d�d]“d?d@“d�d^“de“d�d_“d
�d`“de“d e“d!g “d�da“d�db“�dc�ddg�deœ¥dCœ‘�dfi d�dg“d�dh“dd	“d
�di“d�dj“d�dk“d�dl“d�dm“d?d@“d!g “d�dn“d�do“d�dp“d�dq“d e“de“�drd&œ‘�dsi d�dt“dd	“d�du“d
�dv“d�dw“d�dx“d�dy“d�dz“d�d{“d?d@“d!g “d�d|“d�d}“d�d~“d�d“d e“de“e�d€gd†œ¥d‡d&œ‘�dsi d�dt“dd	“d�du“d
�dv“d�dw“d�dx“d�dy“d�dz“d�d{“d?d@“d!g “d�d|“d�d}“d�d~“d�d“d e“de“dA�d€gi¥�d�d�d‚�dƒgiiid‡dQœ‘�d„�d…d	�d†�d‡�dˆ�d‰�dŠ�d‹�d�dŒee�d�œd·gd¸dxœ‘�dŽdú�d��d��d‘g �d’�d“�d”�d•d"�d–�d—eee�d˜œd%�d™œ‘�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¦g“de“d e“de“ed@�d§g�d¨œ¥dCœ‘�d©�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!g “de“de“d e“d®e“�dd@�d¶g�d·œ¥�d¸œ‘�d¹i d�dº“dd	“d�d»“d
�d¼“d�d½“d�d¾“d�d¿“d�dÀ“d�dÁ“de“d e“de“d®e“d?d@“d�dÂ“d�dÃ“d!g “�dÄ�dÅ�dÆg�dÇœ¥dCœ‘�dÈdO�dÉœ‘�dÊdO�dÉœ‘�dÊdO�dÉœ‘�dËdO�dÉœ‘�dÌdO�dÉœ‘�dÍdO�dÉœ‘�dÎdO�dÉœ‘�dÏdO�dÉœ‘�dÐdO�dÉœ‘Z	 e
j                  �dÑ«      Z�dÒZ�dÓ„ Z�dÔ„ Z�dÕ„ Z�dÖ„ Z�d×„ Z�dØ„ Z�yÙ(Ú  rý   ÚtwitterzS(?:(?:i/web|[^/]+)/status|statuses)/(?P<id>\d+)(?:/(?:video|photo)/(?P<index>\d+))?z;https://twitter.com/freethenipple/status/643211948184596480r¹   Ú643211870443208704rx   Ú643211948184596480r»   r#   r¼   z9FREE THE NIPPLE - FTN supporters on Hollywood Blvd today!rÀ   rÁ   r½   z>FTN supporters on Hollywood Blvd today! http://t.co/c7jHH749xJrÕ   Ú	549749560r¾   zFREE THE NIPPLEr¿   ÚfreethenipplerÂ   gòÒMbØ)@rÃ   imöUrÄ   Ú20150913rÌ   z!https://twitter.com/freethenipplerÇ   rÉ   rÊ   rÈ   é   ztwitter 643211948184596480)rÆ   r×   zRequires authenticationrÍ   z;https://twitter.com/giphz/status/657991469417025536/photo/1Ú f36dcd5fb92bf7057f155e7d927eeb42Ú657991469417025536z=Gifs - tu vai cai tu vai cai tu nao eh capaz disso tu vai caizaGifs on Twitter: "tu vai cai tu vai cai tu nao eh capaz disso tu vai cai https://t.co/tM46VHFlO5"zre:^https?://.*\.pngÚGifsÚgiphz)r¹   r»   r¼   r½   rÀ   r¾   r¿   rZ   rY   zAccount suspended)r"   rÛ   rÎ   Úexpected_warningsrÏ   z6https://twitter.com/starwars/status/665052190608723968Ú665052190608723968z5re:Star Wars.*A new beginning is coming December 18.*z…A new beginning is coming December 18. Watch the official 60 second #TV spot for #StarWars: #TheForceAwakens. https://t.co/OkSqT2fjWJÚ20106852Ústarwarszre:Star Wars.*i¼�EVÚ20151113zhttps://twitter.com/starwars)ÚTVÚStarWarsÚTheForceAwakensrÆ   r   r×   ztwitter 665052190608723968©r"   rÎ   z<https://twitter.com/BTNBrentYarina/status/705235433198714880rñ   rò   ró   rõ   rô   rö   r÷   z"https://twitter.com/BTNBrentYarina)r¹   r»   r¼   r½   r¿   r¾   rÃ   rÄ   rÌ   rÇ   rÉ   rÊ   rÈ   rÆ   Úskip_downloadTzDead external link)r"   rÎ   rÜ   rÏ   z8https://twitter.com/jaydingeer/status/700207533655363584Ú700207414000242688Ú700207533655363584z4jaydin donte geer - BEAT PROD: @suhmeduh #DamndanielzQBEAT PROD: @suhmeduh  https://t.co/HBrQ4AfpvZ #Damndaniel https://t.co/byBooq2ejZÚ
1383165541zjaydin donte geerÚ
jaydingeerg      >@i³fÅVÚ20160218zhttps://twitter.com/jaydingeerÚ
Damndanielztwitter 700207533655363584zTweet has been deletedz<https://twitter.com/captainamerica/status/719944021058060289Ú717462543795523584Ú719944021058060289zZCaptain America - @King0fNerd Are you sure you made the right choice? Find out in theat...za@King0fNerd Are you sure you made the right choice? Find out in theaters. https://t.co/GpgYi9xMJIÚ	701615052ÚCaptainAmericazCaptain Americag\�Âõ(\	@i½3WÚ20160412z"https://twitter.com/CaptainAmericaztwitter 719944021058060289z5https://twitter.com/OPP_HSD/status/779210622571536384Ú1zqKVVlkqLaKBzqSgt Kerry Schmidt - Ontario Provincial Police - Road rage, mischief, assault, rollover and fire in one occurrenceÚ20160923Ú1PmKqpJdOJQoYz-Sgt Kerry Schmidt - Ontario Provincial PoliceiÞÏäW)r¹   r»   r¼   rÄ   r¿   r¾   rÃ   rÀ   Ú	PeriscopezBroadcast not found)r"   rÎ   rï   rÏ   z9https://twitter.com/news_al3alm/status/852138619213144067Ú852077943283097602uœ   Ø¹Ø§Ù„Ù… Ø§Ù„Ø£Ø®Ø¨Ø§Ø± - ÙƒÙ„Ù…Ø© ØªØ§Ø±ÙŠØ®ÙŠØ© Ø¨Ø¬Ù„Ø³Ø© Ø§Ù„Ø¬Ù†Ø§Ø³ÙŠ Ø§Ù„ØªØ§Ø±ÙŠØ®ÙŠØ©.. Ø§Ù„Ù†Ø§Ø¦Ø¨ Ø®Ø§Ù„Ø¯ Ù…Ø¤Ù†Ø³ Ø§Ù„Ø¹ØªÙŠØ¨ÙŠ Ù„Ù„Ù…Ø¹Ø§...uæ   ÙƒÙ„Ù…Ø© ØªØ§Ø±ÙŠØ®ÙŠØ© Ø¨Ø¬Ù„Ø³Ø© Ø§Ù„Ø¬Ù†Ø§Ø³ÙŠ Ø§Ù„ØªØ§Ø±ÙŠØ®ÙŠØ©.. Ø§Ù„Ù†Ø§Ø¦Ø¨ Ø®Ø§Ù„Ø¯ Ù…Ø¤Ù†Ø³ Ø§Ù„Ø¹ØªÙŠØ¨ÙŠ Ù„Ù„Ù…Ø¹Ø§Ø±Ø¶ÙŠÙ† : Ø§ØªÙ‚ÙˆØ§ Ø§Ù„Ù„Ù‡ .. Ø§Ù„Ø¸Ù„Ù… Ø¸Ù„Ù…Ø§Øª ÙŠÙˆÙ… Ø§Ù„Ù‚ÙŠØ§Ù…Ø©   https://t.co/xg6OhpyKfNÚ
2526757026u   Ø¹Ø§Ù„Ù… Ø§Ù„Ø£Ø®Ø¨Ø§Ø±Únews_al3almgfffffVq@i�îXÚ20170412Ú852138619213144067zhttps://twitter.com/news_al3almztwitter 852138619213144067)rÇ   r×   Ú	Suspendedz3https://twitter.com/i/web/status/910031516746514432Ú910030238373089285Ú910031516746514432u`   PrÃ©fet de Guadeloupe - [Direct] #Maria Le centre se trouve actuellement au sud de Basse-Terr...u›   [Direct] #Maria Le centre se trouve actuellement au sud de Basse-Terre. Restez confinÃ©s. RÃ©fugiez-vous dans la piÃ¨ce la + sÃ»re. https://t.co/mwx01Rs4loÚ
2319432498u   PrÃ©fet de GuadeloupeÚ	Prefet971g=
×£p½G@iƒ¼ÀYÚ20170919zhttps://twitter.com/Prefet971ÚMariaztwitter 910031516746514432©r"   rÎ   rÜ   z8https://twitter.com/LisPower1/status/1001551623938805763Ú1001551417340022785Ú1001551623938805763z re:.*?Shep is on a roll today.*?z$md5:37b9f2ff31720cef23b2bd42ee8a0f09Ú	255036353z	Lis PowerÚ	LisPower1goƒÀÊÑ[@iA¯[Ú20180529zhttps://twitter.com/LisPower1ztwitter 1001551623938805763z5https://twitter.com/foobar/status/1087791357756956680Ú1087791272830607360Ú1087791357756956680z»X - A new is coming.  Some of you got an opt-in to try it now. Check out the emoji button, quick keyboard shortcuts, upgraded trends, advanced search, and more. Let us know your thoughts!z$md5:6dfd341a3310fb97d80d2bf7145df976ÚXgj¼t“ÈN@iDlG\Ú20190122zhttps://twitter.com/Xré   zThis Tweet is unavailablez<https://twitter.com/ViviEducation/status/1136534865145286656Ú1vOGwqejwoWxBzjVivi - Vivi founder @lior_rauchy announcing our new student feedback tool live at @EduTECH_AU #EduTECH2019ÚViviÚ1eVjYOLGkGrQLÚEduTECH2019)r¹   r»   r¼   r¾   r¿   rÀ   rÈ   ré   ÚTwitterBroadcastúBroadcast no longer existsz@https://twitter.com/BrooklynNets/status/1349794411333394432?s=20Ú1349774757969989634Ú1349794411333394432zXBrooklyn Nets - WATCH: Sean Marks' full media session after our acquisition of 8-time...z$md5:71ead15ec44cee55071547d6447c6a3eÚ18552281zBrooklyn NetsÚBrooklynNetsg9´Èv¾Gt@i • `Ú20210114z https://twitter.com/BrooklynNetsztwitter 1349794411333394432z5https://twitter.com/oshtru/status/1577855540407197696Ú1577855447914409984Ú1577855540407197696u?   Oshtru - gm âœ¨ï¸� now I can post image and video. nice update.z$md5:b9c3699335447391d11753ab21c70a74Ú20221006Ú	143077138ÚOshtruÚoshtruzhttps://twitter.com/oshtrugHáz®>@iD>cztwitter 1577855540407197696z<https://twitter.com/UltimaShadowX/status/1577719286659006464Ú1577719286659006464zre:Ultima.* - Test$zTest https://t.co/Y3KEZD7DadÚ	168922496zre:Ultima.*ÚUltimaShadowXz!https://twitter.com/UltimaShadowXÚ20221005i5Å=c)r¹   r¼   r½   rÕ   r¾   r¿   rÌ   rÄ   rÃ   rÇ   rÉ   rÊ   rÈ   rÆ   é   )r"   rÎ   Úplaylist_countrÜ   z9https://twitter.com/MesoMax919/status/1575560063510810624Ú1575559336759263233Ú1575560063510810624zTMax Olson - Absolutely heartbreaking footage captured by our surge probe of catas...z$md5:95aea692fda36a12081b9629b02daa92Ú
1094109584z	Max OlsonÚ
MesoMax919zhttps://twitter.com/MesoMax919gV-R5@iFê5cÚ20220929ÚHurricaneIanztwitter 1575560063510810624z7https://twitter.com/Rizdraws/status/1575199173472927762Ú1575199163847000068Ú1575199173472927762Ú1217167793541480450ÚRizdrawszhttps://twitter.com/RizdrawsÚ20220928i+š4czre:^https?://.+\.jpgztwitter 1575199173472927762zThe media could not be playedz;https://twitter.com/Srirachachau/status/1395079556562706435r   Ú1395079556562706435Ú21539378Ú20210519zÃHere it is! Finished my gothic western cartoon. Pretty proud of it. It's got some goofs and lots of splashy over the top violence, something for everyone, hope you like it https://t.co/fOsG5glUnwÚSrirachachauz https://twitter.com/Srirachachaui´T¥`)r¹   r¼   rÈ   rÕ   r¾   rÊ   rÄ   rÆ   rÉ   r½   r¿   rÇ   rÌ   rÃ   )r"   Úplaylist_mincountrÎ   z:https://twitter.com/DavidToons_/status/1578353380363501568Ú1578353380363501568Ú
2195866214ÚDavidToons_iÀ@czhttps://twitter.com/DavidToons_zkChris sounds like Linda from Bob's Burgers, so as an animator: this had to be done. https://t.co/WgJauwIW1wÚ20221007)r¹   r¼   rÕ   r¿   rÉ   rÊ   r¾   rÃ   rÌ   r½   rÈ   rÇ   rÄ   rÆ   z;https://twitter.com/primevideouk/status/1578401165338976258Ú1578401165338976258z$md5:659a6b517a034b4cee5d795381a2dc41Ú19338359ÚprimevideoukiA@@cz https://twitter.com/primevideoukÚTheRingsOfPower)r¹   r¼   r½   rÕ   r¾   r¿   rÃ   rÄ   rÆ   rÌ   rÇ   rÉ   rÊ   rÈ   )r"   rU  rÎ   z=https://twitter.com/MoniqueCamarra/status/1550101959377551360Ú1lPJqmBeeNAJbÚm4az9EuroFile@6 Ukraine Up-date-Draghi Defenestration-the Westzre:Monique Camarra.+?ÚMoniqueCamarraÚwas_livei™pÙbz2re:Twitter Space participated by Sergej Sumlenny.+i[KÙbÚ20220721zMhttps://pbs.twimg.com/profile_images/1920514378006188033/xQs6J_yI_400x400.jpg)r¹   r»   r¼   r¾   r¿   rí   Úrelease_timestampr½   rÃ   Úrelease_daterÄ   rÀ   ÚTwitterSpacesÚm3u8)r"   rÎ   rï   rÜ   zBhttps://twitter.com/CTVJLaidlaw/status/1600649710662213632/video/1Ú1600649710662213632zZJocelyn Laidlaw - How Kirstie Alley's tragic death inspired me to share more about my c...g   5LäØAz$md5:591c19ce66fadc2359725d5cd0d1052cÚJocelynVLaidlawÚ80082014)ÚcolorectalcancerÚcancerjourneyÚimnotaquitterÚ20221208zJocelyn Laidlawz#https://twitter.com/JocelynVLaidlaw)r¹   r¼   rÃ   r½   rÇ   r¿   rÕ   rÉ   rÈ   rÄ   rÆ   r¾   rÌ   rÊ   zBhttps://twitter.com/CTVJLaidlaw/status/1600649710662213632/video/2Ú1600649511827013632z]Jocelyn Laidlaw - How Kirstie Alley's tragic death inspired me to share more about my c... #1gX9´ÈvŽY@ztwitter 1600649710662213632Ú
noplaylistz6https://twitter.com/s2FAKER/status/1621117700482416640Ú1621117577354424321Ú1621117700482416640u$   ë½€ - ì•„ ìµœìš°ì œ ì�´ë�™ì†�ë�„ ë´�u6   ì•„ ìµœìš°ì œ ì�´ë�™ì†�ë�„ ë´� https://t.co/dxu2U5vXXBg+‡™8@Ú1281839411068432384u   ë½€Ús2FAKERzhttps://twitter.com/s2FAKERÚ20230202g  @ÈéöØAzre:https?://pbs\.twimg\.com/.+ztwitter 1621117700482416640z@https://twitter.com/hlo_again/status/1599108751385972737/video/2Ú1599108643743473680Ú1599108751385972737u	   Ûª - ðŸ’‹Ú1347791436809441283zhttps://twitter.com/hlo_againÚ	hlo_againzbhttps://pbs.twimg.com/ext_tw_video_thumb/1599108643743473680/pu/img/UG3xjov4rgg5sbYM.jpg?name=origgZd;ß#@Ú20221203g  €låâØAu   Ûªu   ðŸ’‹ https://t.co/bTj9Qz7vQPztwitter 1599108751385972737)r½   r×   zTweet is limitedz<https://twitter.com/MunTheShinobi/status/1600009574919962625Ú1600009362759733248Ú1600009574919962625Ú	211814412z!https://twitter.com/MunTheShinobiuJ   This is a genius ad by Apple. ðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ https://t.co/cNsA0MoOmlzbhttps://pbs.twimg.com/ext_tw_video_thumb/1600009362759733248/pu/img/XVhFQivj75H_YxxV.jpg?name=origzD U N I Y AÚ20221206u@   D U N I Y A - This is a genius ad by Apple. ðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ÚMunTheShinobigÝ$�•a@g   *·ãØAztwitter 1600009574919962625)rÃ   r×   z9https://twitter.com/liberdalau/status/1623739803874349067Ú1623274794488659969Ú1623739803874349067zQJohnny Bullets - Me after going viral to over 30million people:    Whoopsie-daisyz$md5:b06864cd3dc2554821cc327f5348485azJohnny BulletsÚJohnnybull3tsz!https://twitter.com/Johnnybull3tsg7‰A`å @g  ÀàøØAÚ20230208z0re:https://pbs\.twimg\.com/ext_tw_video_thumb/.+zProtected tweetz=https://twitter.com/playstrumpcard/status/1695424220702888009Ú1694928337846538240Ú1695424220702888009zXBenny Johnson - Donald Trump driving through the urban, poor neighborhoods of Atlanta...z$md5:004f2d37fd58737724ec75bc7e679938Ú15212187zBenny JohnsonÚbennyjohnsonz https://twitter.com/bennyjohnsongã¥›Ä €F@g  €ÿ#:ÙAÚ20230825z1re:https://pbs\.twimg\.com/amplify_video_thumb/.+ztwitter 1695424220702888009Úextractor_argsri   rp   z>https://twitter.com/JessicaDobsonWX/status/1731121063248175384Ú1rmxPMjLzAXKNz*WAVE Weather Now - Saturday 12/2/23 UpdatezJessica DobsonÚJessicaDobsonWXz#https://twitter.com/JessicaDobsonWXi¾×keÚ20231203z re:https://[^/]+pscp\.tv/.+\.jpg)r¹   r»   r¼   r¾   r¿   rÌ   rÃ   rÄ   rí   rÀ   Úconcurrent_view_countré   z8https://twitter.com/BAKKOOONN/status/1696256659889565950Ú1696256659889565950z BAKOON - https://t.co/zom968d0a0zhttps://t.co/zom968d0a0Ú
1263540390ÚBAKOONÚ	BAKKOOONNzhttps://twitter.com/BAKKOOONNg  @o@;ÙAÚ20230828)r¹   r¼   r½   rÈ   rÕ   r¾   r¿   rÌ   rÆ   rÃ   rÄ   rÊ   rÇ   rÉ   )r"   re  rÎ   rÏ   z>https://twitter.com/RobertKennedyJr/status/1724884212803834154Ú1724883339285544960z_Robert F. Kennedy Jr - A beautifully crafted short film by Mikki Willis about my independent...z$md5:9dc14f5b0f1311fc7caf591ae253a164Ú1724884212803834154Ú	337808606zRobert F. Kennedy JrÚRobertKennedyJrz#https://twitter.com/RobertKennedyJrÚ20231115g  @ÎIUÙAgTã¥›ÄPu@Ú	Kennedy24ztwitter 1724884212803834154)ré   rÆ   r×   z7https://x.com/historyinmemes/status/1790637656616943991Ú 4549eda363fecfe37439c455923cba2cÚ1790637589910654976z:Historic Vids - One of the most intense moments in historyzBOne of the most intense moments in history https://t.co/Zgzhvix8ESÚ1790637656616943991zHistoric VidsÚhistoryinmemesz"https://twitter.com/historyinmemesÚ855481986290524160Ú20240515g   9‘ÙAg`åÐ"Ûù.@ztwitter 1790637656616943991)rÀ   rÆ   r×   )r"   rÛ   rÎ   z3https://x.com/TopHeroes_/status/2001950365332455490Ú2001841416071450628Ú2001950365332455490uW   Top Heroes - Forgot to close My heroes solo level up in my phone  âœ¨Unlock the fog,...uK   re:Forgot to close My heroes solo level up in my phone  âœ¨Unlock the fog.+z
Top HeroesÚ
TopHeroes_zhttps://twitter.com/TopHeroes_Ú1737324725620326400gºI+G>@z`https://pbs.twimg.com/amplify_video_thumb/2001841416071450628/img/hpy5KpJh4pO17b65.jpg?name=origi0EiÚ20251219ztwitter 2001950365332455490)rÃ   rÄ   r×   zmhttps://twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion/TwitterBlue/status/1484226494708662273rø   z5https://twitter.com/GunB1g/status/1163218564784017422z9https://twitter.com/poco_dandy/status/1047395834013384704z9https://twitter.com/poco_dandy/status/1150646424461176832z7https://twitter.com/qarev001/status/1348948114569269251z9https://twitter.com/CAF_Online/status/1349365911120195585z>https://twitter.com/SamsungMobileSA/status/1348609186725289984z<https://twitter.com/SouthamptonFC/status/1347577658079641604z_video/(\d+)/z*2ICDjqPd81tulZcYrtpTuQ/TweetResultByRestIdc           
      óœ  — t        |ddt        hf«      xs i }|j                  d«      }|dvr| j                  d|› �|d¬«       d|v r3t	        t        |dd	d	t
        hf«      d
«      }t        d|xs d› �d¬«      ‚|dk(  rN|j                  d«      }|dv r| j                  d«       n|dk(  r| j                  d«       t        |xs dd¬«      ‚|dk(  rt        |dt        hf«      xs i }|j                  di «      }|j                  t        |dddddœt        i ¬«      «       |j                  d«      r"t        |ddd d!ddt        hf«      xs i |d   d"<   t        |d#d$d%t        hf«      D �ci c]#  }|j                  d&«      |j                  d'«      “Œ% }	}|	r|	|d#   d$<   |j                  t        |d(d)d*t        hfi«      «       |S c c}w )+NÚtweetResultrœ   Ú
__typename)ÚTweetÚTweetWithVisibilityResultsÚTweetTombstoneÚTweetUnavailableNzUnknown typename: T©Ú	only_onceÚ	tombstoneÚtextz. Learn morezTwitter API says: r“   ©Úexpectedr¹  Úreason)ÚNsfwLoggedOutÚNsfwViewerHasNoStatedAgez"NSFW tweet requires authenticationÚ	Protectedz3You are not authorized to view this protected tweetzRequested tweet is unavailabler·  Útweetrp   )ÚcoreÚuser_resultsrœ   rp   )Úcardrp   )Úquoted_status_resultrœ   rp   )rp   Úretweeted_status_resultrœ   rp   )ÚuserrÇ  Úquoted_statusÚretweeted_status)Úexpected_typeÚdefaultrÌ  rÉ  rÅ  rÆ  rÊ  rÇ  Úbinding_values.r¬   r}   ré   ÚviewsÚcount)
r   Údictr,   Úreport_warningr   rw   r
   r™   r]   r   )
r=   rr   Útwidrœ   ÚtypenameÚcauserÀ  ÚstatusÚbinding_valuerÏ  s
             r0   Ú_graphql_to_legacyzTwitterIE._graphql_to_legacy5  s+  € Ü˜d ]°H¼t¸fÐ$EÓFÒLÈ"ˆà—:‘:˜lÓ+ˆØÐnÑnØ×ÑÐ"4°X°JÐ ?ÀÐQUÐÔVà˜&Ñ Üœ|¨F°[À&È&ÔSVÐRWÐ4XÓYÐ[iÓjˆEÜ Ð#5°eÒ6N¸Ð5OÐ!PÐ[_Ô`Ð`ØÐ+Ò+Ø—Z‘Z Ó)ˆFØÐFÑFØ×)Ñ)Ð*NÕOØ˜;Ò&Ø×)Ñ)Ð*_Ô`Ü  Ò!KÐ+KÐVZÔ[Ð[àÐ5Ò5Ü! &¨7´T°FÐ*;Ó<ÒBÀˆFà—‘˜H bÓ)ˆØ�‰”l 6Ø@Ø&ØIØ Yñ	,
ô
  rô+ô 	,ð �:‰:Ð(Ô)Ü1=¸fØ)¨8°V¸^ÈXÐW_ÔbfÐagðGió 2jò 2pØmoð Ð%Ñ& vÑ.ô
 ".¨f°vÐ?OÐQTÔW[ÐV\Ð6]Ó!^ö
àð ×Ñ˜eÓ$ m×&7Ñ&7¸Ó&@Ñ@ð
ˆð 
ñ Ø/=ˆF�6‰NÐ+Ñ,à�‰”l 6¨L¸7ÀGÌkÈ]Ð:[Ð+\Ó]Ô^àˆùò
s   Å.(G	c                 óŒ   — |ddd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“dddœ¥ddidœS )NF)ÚtweetIdÚwithCommunityÚincludePromotedContentÚ	withVoiceÚ/creator_subscriptions_tweet_preview_api_enabledTÚ(tweetypie_unmention_optimization_enabledÚ%responsive_web_edit_tweet_api_enabledÚ:graphql_is_translatable_rweb_tweet_is_translatable_enabledÚ"view_counts_everywhere_api_enabledÚ'longform_notetweets_consumption_enabledÚ8responsive_web_twitter_article_tweet_consumption_enabledÚ tweet_awards_web_tipping_enabledÚ)freedom_of_speech_not_reach_fetch_enabledÚstandardized_nudges_misinfoÚGtweet_with_visibility_results_prefer_gql_limited_actions_policy_enabledÚ*longform_notetweets_rich_text_read_enabledÚ(longform_notetweets_inline_media_enabledÚ0responsive_web_graphql_exclude_directive_enabledÚverified_phone_label_enabledÚ+responsive_web_media_download_video_enabledÚAresponsive_web_graphql_skip_user_profile_image_extensions_enabled)Ú2responsive_web_graphql_timeline_navigation_enabledÚ$responsive_web_enhance_cards_enabledÚwithArticleRichContentState)Ú	variablesÚfeaturesÚfieldTogglesr¶   r¡   s     r0   r£   zTwitterIE._build_graphql_queryb  s  € ð $Ø!&Ø*/Ø"ñ	ðØAÀ4ðà:¸Dðð 8¸ðð MÈdð	ð
 5°dðð :¸4ðð KÈEðð 3°Eðð <¸Tðð .¨tðð ZÐ[_ðð =¸dðð ;¸Dðð CÀDðð /°ðð  >¸uð!ð" TÐUZð#ð$ GKØ8=ò'ð, .¨uðñ9
ð 	
r2   c                 óÂ   — t         j                  t        j                  d«      «      }t	        t        |«      dz  t        j                  z  d«      j                  |«      S )Nz0.g  4&õkCé$   )	rw   Ú	maketransrÒ  Úfromkeysr   r^   ÚmathÚpiÚ	translate)r=   rÔ  Útranslations      r0   Ú_generate_syndication_tokenz%TwitterIE._generate_syndication_token„  sC   € ä—m‘m¤D§M¡M°$Ó$7Ó8ˆÜ"¤C¨£I°Ñ$4¼¿¹Ñ#?ÀÓD×NÑNÈ{Ó[Ð[r2   c           
      ód  — | j                  d|d¬«       | j                  d|dddi|| j                  |«      dœ¬	«      }|st        d
«      ‚g }t	        |dddt
        hf«      D ]C  }t	        |dddd| j                  j                  hdfd¬«      xs ||d<   |j                  |«       ŒE d|i|d<   |S )Nz?Not all metadata or media is available via syndication endpointTrº  z.https://cdn.syndication.twimg.com/tweet-resultzDownloading syndication JSONú
User-AgentÚ	Googlebot)r¹   Útoken)rs   r‹   z1Syndication endpoint returned empty JSON response)NÚquoted_tweetÚmediaDetails.Ú
video_infoÚvariantsr"   r   F©Úget_allÚid_strÚmediaÚextended_entities)	rÓ  ru   rþ  r
   r   rÒ  Ú_MEDIA_ID_REr\   rM   )r=   rÔ  r×  r
  Údetails        r0   Ú_call_syndication_apizTwitterIE._call_syndication_api‰  sû   € Ø×ÑØMÈtÐ_cð 	ô 	eà×$Ñ$Ø<¸dÐDbØ! ;Ð/ØØ×9Ñ9¸$Ó?ñ8ð %ó ˆñ Ü Ð!TÓUÐUàˆÜ" 6Ð,BÀNÐTWÔZ^ÐY_Ð+`Óaò 	!ˆFÜ+¨FØ˜j¨#¨u°t×7HÑ7H×7OÑ7OÐ6PÐRSð5UØ^cô eò  mØhlð �8Ñà�L‰L˜Õ ð	!ð (/°Ð&6ˆÐ"Ñ#àˆr2   c           
      ó‚  — | j                   dvrt        | j                   ›d�d¬«      ‚	 | j                  s| j                   dk(  r-| j                  | j	                  | j
                  |«      |«      }n,| j                   dk(  r| j                  d|› d�|d	d
d
dddœ«      }| j                   dk(  r| j                  |«      }t        dd t        ¬«      xs i S # t        $ r`}t        |j                  t        «      r|j                  j                  dk7  r‚ | j                  d«       | j                  |«      }Y d }~Œ›d }~ww xY w)N)rj   rp   Úsyndicationz is not a valid API selectionTr¾  rj   rp   zstatuses/show/z.jsonzWeb-12r   r   Úextended)Úcards_platformÚinclude_cardsÚinclude_reply_countÚinclude_user_entitiesÚ
tweet_modei­  z9Rate-limit exceeded; falling back to syndication endpointr  rÌ  ©rÍ  )rn   r
   rg   rÙ  r­   Ú_GRAPHQL_ENDPOINTrž   Ú
isinstancerÖ  r	   r×  rÓ  r  r   rÒ  )r=   rÔ  r×  Úes       r0   Ú_extract_statuszTwitterIE._extract_statusž  s7  € Ø×ÑÐ%IÑIÜ  D×$6Ñ$6Ð#9Ð9VÐ!WÐbfÔgÐgð	6Ø× Ò  D×$6Ñ$6¸)Ò$CØ×0Ñ0°×1GÑ1GÈ×H^ÑH^Ð`dÓ1eÐgkÓl‘Ø×#Ñ# xÒ/ØŸ™¨.¸¸¸eÐ(DÀdØ&.Ø%&Ø+,Ø-.Ø",ñMó �ð ×Ñ Ò.Ø×/Ñ/°Ó5ˆFä˜FÐ$6¸ÌDÔQÒWÐUWÐWøô ò 	6Ü˜aŸg™g¤yÔ1°Q·W±W·^±^ÀsÒ5JØØ×ÑÐ [Ô\Ø×/Ñ/°Ó5�Fûð		6ús   ªA4C Ã	D>ÃAD9Ä9D>c                 ó  ‡ ‡‡— ‰ j                  |«      j                  dd«      \  Š}‰ j                  ‰«      }t        |dd„ hfd¬«      xs dx}}t	        t        j                  dd|«      d	¬
«      }|j                  d«      xs i }|j                  d«      }|r|› d|› �}|j                  d«      }‰|||t        |j                  d«      «      t        |j                  d«      «      xs t        |j                  d«      «      |t        |d d«      t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      |j                  d«      rdndt        |d«      dœ}	ˆ ˆfd„Šˆˆ ˆfd„}
t        |ddd d!„ t        hf«      }‰ j                  ‰|d"¬#«      r'g t        ‰|«      ¢ |
|j                  d$«      «      ¢­}nØt        |ddd t        |«      d%z
  t        hfd¬«      }|st!        d&|› d'�d(¬)«      ‚|j                  d*«      d+k7  rt!        d,|› d-�d(¬)«      ‚t#        |d%«      D ]]  \  }}|j                  d«      |j                  d«      k7  rŒ*|d%k(  rt%        ‰ ‰«      g|	d.<   t'        |«      d%k7  r|	d/xx   d0|› �z  cc<    n i |	¥ ‰|«      ¥d1‰i¥S |D �cg c]  }i |	¥|¥d1‰i¥‘Œ }}|sCt        |d2t(        ¬3«      }|r||k(  r‰ j+                  d4d(¬)«       |	S  ‰ j,                  |fd1‰i|	¤ŽS t%        ‰ ‰«      g|d   d.<   t'        |«      d%k(  r|d   S t#        |d%«      D ]  \  }}|d/xx   d0|› �z  cc<   Œ  ‰ j.                  |fi |	¤ŽS c c}w )5Nr¹   Úindex)Ú	full_textr½  c                 ó&   — | j                  dd«      S )Nú
ú ©Úreplace©Úxs    r0   r1   z)TwitterIE._real_extract.<locals>.<lambda>½  s   € °q·y±yÀÀsÓ7K€ r2   Fr  Ú z\s+(https?://[^ ]+)éH   )ÚleftrÊ  Únameú - Úscreen_nameÚ
created_atÚuser_id_strr	  úhttps://twitter.com/%sré   Úfavorite_countÚretweet_countÚreply_countÚpossibly_sensitiver  r   )ÚentitiesÚhashtags.r½  )r¹   r¼   r½   r¾   rÃ   rÕ   r¿   rÌ   ré   rÊ   rÉ   rÇ   rÆ   rÈ   c           
      ó   •‡
‡— t        | ddt        ¬«      }‰j                  d|› �«       g }i }t        | d«      D ]:  }‰j                  |‰«      \  }}‰j	                  ||«      }|j                  |«       Œ< g Š| j                  d«      xs | j                  d«      Š
‰
rSˆ
ˆfd„}| j                  d	i «      j                  «       D ]  \  }}	 |||	«       Œ  |d
| j                  d«      xs i «       |||‰t        t        | d«      d«      ddœS )Nr	  r¹   r  zExtracting from video info: )r  r  .Úmedia_url_httpsÚ	media_urlc           
      óö   •— ‰j                  | t        ‰d| i«      t        |j                  d«      xs |j                  d«      «      t        |j                  d«      xs |j                  d«      «      dœ«       y )Nr)  ÚwrY   ÚhrZ   ©r¹   r"   rY   rZ   )rM   r   r   r,   )r)  Úsizer7  Ú
thumbnailss     €€r0   Úadd_thumbnailzOTwitterIE._real_extract.<locals>.extract_from_video_info.<locals>.add_thumbnailå  sc   ø€ Ø×%Ñ%Ø"Ü/°	¸FÀD¸>ÓJÜ!,¨T¯X©X°c«]Ò-O¸d¿h¹hÀwÓ>OÓ!PÜ"-¨d¯h©h°s«mÒ.Q¸t¿x¹xÈÓ?QÓ"Rñ	'õ r2   ÚsizesÚorigÚoriginal_info)r  Úduration_millisr5   )Úresz
proto:m3u8Úbrr<  )r¹   rR   rS   r=  rÂ   Ú_format_sort_fields)	r   r   r˜   rE   rO   rN   r,   r¨   r   )r
  r¢   rR   rS   r>   rA   rB   r>  r)  r<  r7  r=  r=   rÔ  s             @@€€r0   Úextract_from_video_infoz8TwitterIE._real_extract.<locals>.extract_from_video_info×  s#  ú€ Ü# E¨8°TÌÔUˆHØ×ÑÐ;¸H¸:ÐFÔGàˆGØˆIÜ'¨Ð/NÓOò %�Ø!×:Ñ:¸7ÀDÓI‘
��dØ ×1Ñ1°)¸TÓB�	Ø—‘˜tÕ$ð%ð
 ˆJØŸ	™	Ð"3Ó4ÒN¸¿	¹	À+Ó8NˆIÙõð #(§)¡)¨G°RÓ"8×">Ñ">Ó"@ò .‘J�D˜$Ù! $¨Õ-ð.á˜f e§i¡i°Ó&@Ò&FÀBÔGð Ø"Ø&Ø(Ü)¬,°uÐ>_Ó*`ÐbfÓgà'Jñð r2   c              3   ó  •‡K  — | sy | d   j                  d«      d   }‰j                  d|› d| j                  d«      › �«       | d   Šˆfd„}|d	k(  rd |d
«      dœ–— y |dk(  r+d |d«      xs  |d
«      t        j                  «       dœ–— y |dk(  r!d |d«      t
        j	                  «       dœ–— y |dk(  r$dd |d«      › �t        j	                  «       dœ–— y |dk(  rd |d«      dœ–— y |dk(  r:‰j                   |d«      ‰«      }t        ‰t        |dd„ f«      «      E d {  –—†  y |dk(  }|r |d«      n |d«      } |d|r|nd	z  «      }‰j                  ||xs ‰«      \  }}g }	dD ]v  }
 |d|
z   «      xs i }|j                  d«      }|rd|v rŒ*|	j                  |
r|
dd  nd |t        |j                  d!«      «      t        |j                  d"«      «      d#œ«       Œx |||	t         |d$«      «      d%œ–— y 7 ŒÚ­w)&Nr)  r¦   éÿÿÿÿzExtracting from z card info: r"   rÏ  c                 óH   •— ‰j                  | «      xs i }t        |d„ «      S )Nc                 ó4   — | | d   j                  «       dz      S )NÚtypeÚ_value)r—   r$  s    r0   r1   zdTwitterIE._real_extract.<locals>.extract_from_card_info.<locals>.get_binding_value.<locals>.<lambda>  s   € ¨A¨a°©i¯o©oÓ.?À(Ñ.JÑ,K€ r2   )r,   r   )ÚkÚorÏ  s     €r0   Úget_binding_valuezRTwitterIE._real_extract.<locals>.extract_from_card_info.<locals>.get_binding_value  s&   ø€ Ø"×&Ñ& qÓ)Ò/¨R�Ü˜qÑ"KÓLÐLr2   ÚplayerÚ
player_url)Ú_typer"   Úperiscope_broadcast)rR  r"   rl   Ú	broadcastÚbroadcast_urlÚ
audiospacezhttps://twitter.com/i/spaces/r¹   ÚsummaryÚcard_urlÚunified_cardÚmedia_entitiesc                 ó   — |d   dk(  S )NrK  Úvideor¶   r-   s     r0   r1   zITwitterIE._real_extract.<locals>.extract_from_card_info.<locals>.<lambda>%  s   € À!ÀFÁ)ÈwÑBV€ r2   ÚamplifyÚamplify_url_vmapÚplayer_stream_urlz%s_content_id)Ú_smallr&  Ú_largeÚ_x_largeÚ	_originalÚplayer_imagez/player-placeholderr   ÚmediumrY   rZ   r;  Úcontent_duration_seconds)rR   rS   r=  rÂ   )Úsplitr˜   r,   r   rl   ÚTwitterBroadcastIEÚTwitterSpacesIEÚ_parse_jsonÚmapr   rW   rM   r   )rÇ  Ú	card_namerO  rY  Ú
is_amplifyrP   Ú
content_idrR   rS   r=  ÚsuffixÚimageÚ	image_urlrÏ  rF  r=   rÔ  s                @€€€r0   Úextract_from_card_infoz7TwitterIE._real_extract.<locals>.extract_from_card_infoú  sŒ  ùè ø€ ÙØà˜V™×*Ñ*¨3Ó/°Ñ3ˆIØ×ÑÐ/°	¨{¸,ÀtÇxÁxÐPUÃÐFWÐXÔYØ!Ð"2Ñ3ˆNôMð ˜HÒ$à"Ù,¨\Ó:ñó ð Ð3Ò3à"Ù,¨UÓ3ÒVÑ7HÈÓ7VÜ)×0Ñ0Ó2ñó ð
 ˜kÒ)à"Ù,¨_Ó=Ü0×7Ñ7Ó9ñó ð
 ˜lÒ*à"Ø:Ñ;LÈTÓ;RÐ:SÐTÜ-×4Ñ4Ó6ñó ð
 ˜iÒ'à"Ù,¨ZÓ8ñó ð ˜nÒ,Ø#×/Ñ/Ñ0AÀ.Ó0QÐSWÓX�ÜÐ6¼Ø Ð#3Ñ5VÐ"Wó9Yó Z÷ Zñ Zð '¨)Ñ3�
ÙDNÑ,Ð-?Ô@ÑTeÐfyÓTz�Ù.¨ÉzÁ)Ð_gÑ/hÓi�
Ø%)×%HÑ%HÈÐS]ÒSeÐaeÓ%fÑ"�˜à�
ØOò 
�FÙ-¨n¸vÑ.EÓFÒLÈ"�EØ %§	¡	¨%Ó 0�IÙ$Ð(=ÀÑ(JØ Ø×%Ñ%Ù,2˜f Q R™j¸Ø(Ü!,¨U¯Y©Y°wÓ-?Ó!@Ü"-¨e¯i©i¸Ó.AÓ"Bñ	'õ ð
ð  'Ø!*Ø",Ü +Ñ,=Ø2ó-4ó !5ñ	ó ð1Zús   „D)H
Ä-HÄ.CH
)NrË  r  r
  c                 ó   — |d   dk7  S )NrK  Úphotor¶   )r.   r`   s     r0   r1   z)TwitterIE._real_extract.<locals>.<lambda>E  s   € ÐPQÐRXÑPYÐ]dÑPd€ r2   zURL-specified video number)Úvideo_labelrÇ  r   zVideo #z is unavailableTr¾  rK  r\  zMedia #z is not a videor×   r¼   z #rx   )r3  rT   r   Úexpanded_urlr  z%No video could be found in this tweet)Ú_match_valid_urlr;   r  r   r   r9   Úsubr,   r   r   r   r   rÒ  Ú_yes_playlistrk  r^   r
   Ú	enumerater   Úlenr   Úraise_no_formatsrü   Úplaylist_result)r=   r"   Úselected_indexr×  r¼   r½   rÊ  r¾   r¿   Úinforr  ÚvideosÚselected_entriesÚdesired_objr  Úentryrr   Úentriesrv  rF  rÔ  s   `                  @@r0   rÿ   zTwitterIE._real_extract¸  sø  ú€ Ø#×4Ñ4°SÓ9×?Ñ?ÀÀgÓNÑˆˆnØ×%Ñ% dÓ+ˆä*ØÐ*Ñ-KÐ,LÐMÐW\ô^ò dØacð	dˆ�ô  ¤§¡Ð'=¸rÀ5Ó IÐPRÔSˆØ�z‰z˜&Ó!Ò' RˆØ—8‘8˜FÓ#ˆÙØ�j  E 7Ð+ˆEØ—h‘h˜}Ó-ˆð ØØ&Ø Ü*¨6¯:©:°lÓ+CÓDÜ% f§j¡j°Ó&?Ó@ÒcÄKÐPT×PXÑPXÐYaÓPbÓDcØ&Ü(¨°dÐ<TÓUÜ% f§j¡j°Ó&>Ó?Ü% f§j¡jÐ1AÓ&BÓCÜ'¨¯
©
°?Ó(CÓDÜ(¨¯©°MÓ)BÓCØ%Ÿz™zÐ*>Ô?™ÀQÜ  Ð)NÓOñ
ˆõ"!	öFH	ôT ˜fØ#Ð%8¸'ÑCdÔgkÐflð'nó oˆð ×Ñ˜d NÐ@\ÐÔ]Øs¤Ð%<¸fÓ!EÐsÑH^Ð_e×_iÑ_iÐjpÓ_qÓHrÑsÑä& vØ'Ð)<¸gÄsÈ>ÓGZÐ]^ÑG^ÔaeÐ`fð0hØqvôxˆKáÜ$ w¨~Ð.>¸oÐ%NÐY]Ô^Ð^Ø—‘ Ó(¨GÒ3Ü$ w¨~Ð.>¸oÐ%NÐY]Ô^Ð^ô !*¨&°!Ó 4ò ‘��uØ—9‘9˜T“? k§o¡o°dÓ&;Ò;ØØ˜A’:Ü0?ÀÀdÓ0KÐ/L�DÐ+Ñ,Ü�v“; !Ò#Ø˜“M r¨%¨ \Ñ1“MÙðð X�dÐWÑ5°kÓBÐWÀLÐRVÑWÐWàDTÖU¸DÐ7�dÐ7˜dÐ7 L°$Ó7ÐUˆÐUÙÜ'¨Ð0WÔgrÔsˆLÙ <°3Ò#6Ø×%Ñ%Ð&MÐX\Ð%Ô]Ø�à"�4—?‘? <ÑI¸DÐIÀDÑIÐIä*9¸$ÀÓ*EÐ)Fˆ�‰
Ð%Ñ&äˆw‹<˜1ÒØ˜1‘:Ðä% g¨qÓ1ò 	+‰LˆE�5Ø�'‹N  5 '˜lÑ*ŒNð	+ð $ˆt×#Ñ# GÑ4¨tÑ4Ð4ùò# Vs   ËNN)r®   r¯   r°   r  r    r±   r  r^   rw   r  r9   Úcompiler  r  rÙ  r£   rþ  r  r  rÿ   r¶   r2   r0   rý   rý     s:  „ Ø€GØ×*Ñ*ð  .Dñ  D€Jð_ØLð
ØÐ&ð
àÐ.ð
ð �5ð
ð ÐPð	
ð
 Ð0ð
ð Ð[ð
ð ˜+ð
ð Ð)ð
ð ˜?ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð?ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �Bð#
ð$ Ø!=Ð >ò'
ð* *ñ/ð _ð2 MØ1à&ØØTØ~Ø0ØØ"ñ
ð '¨Ð0Ø#ñð1_ðN Hð
ØÐ&ð
àÐ.ð
ð �5ð
ð ÐMð	
ð
 ð  cð
ð ˜*ð
ð ˜:ð
ð Ð)ð
ð ˜ð
ð ˜:ð
ð Ð:ð
ð ˜Sð
ð ˜Cð
ð ˜#ð
ð Ò9ð
ð  ˜ð!
ð" Ð!=Ð >ð#
ñðM_ðx Nà&ØØxð HØ+Ø&Ø#Ø%Ø@Ø ØØØØñ
ð& ˜Tð
ð
 %ñ/ðw_ðh Jð
ØÐ&ð
àÐ.ð
ð �5ð
ð ÐKð	
ð
 Ðnð
ð Ð0ð
ð ˜,ð
ð Ð+ð
ð ˜<ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð<ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �\�Nð#
ð$ Ø!=Ð >ò'
ð* )ñ/ðg_ðX Nð
ØÐ&ð
àÐ.ð
ð �5ð
ð Ðqð	
ð
 Ð~ð
ð ˜+ð
ð Ð+ð
ð Ð)ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð@ð
ð Ð0ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �Bð#
ð$ Ø!=Ð >ò'
ñðW_ðF Gà!Øð IØ%Ø*ØGØ#Ø0ñ	
ð �-Ø%ñðE_ðd Kð
ØÐ&ð
à�5ð
ð ð  tð
ð ð  Dð	
ð
 ˜,ð
ð Ð1ð
ð ˜=ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð.ð
ð ˜ð
ð Ð=ð
ð Ð0ð
ð �Bð
ð  ˜Cð!
ð" ˜#ð#
ð$ !Ø!=Ð >ò'
ð* ñ1ða_ðT Eð
ØÐ&ð
àÐ.ð
ð �5ð
ð Ðwð	
ð
 Ð0ð
ð ð  yð
ð ˜,ð
ð Ð/ð
ð ˜;ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð;ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �W�Ið#
ð$ Ø!=Ð >ò'
ð, ˜Tð
ñ/ðS_ðJ Jð
ØÐ'ð
àÐ/ð
ð �5ð
ð Ð7ð	
ð
 Ð0ð
ð ÐAð
ð ˜+ð
ð ˜ð
ð ˜;ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð;ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �Bð#
ð$ Ø!>Ð ?ò'
ð, ˜Tð
ñ1ðG_ð~ Gð
ØÐ'ð
àÐ/ð
ð �5ð
ð ð  Sð	
ð
 Ð0ð
ð ÐAð
ð ˜ð
ð ˜3ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð3ð
ð ˜Sð
ð ˜Cð
ð ˜#ð
ð  ˜#ð!
ð" �Bð#
ð$ ˜ñ%
ð( ,ñ-ð}_ðn Nà!Øð BØØ*Ø0Ø"�OØñ	
ð &Ð&Ø,ñðk_ðL Rð
ØÐ'ð
àÐ/ð
ð �5ð
ð Ðoð	
ð
 Ð0ð
ð ÐAð
ð ˜*ð
ð ˜ð
ð ˜>ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð Ð>ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �Bð#
ð$ Ø!>Ð ?ò'
ð, ˜Tð
ñ1ðI_ð@	 Gð
ØÐ'ð
àÐ/ð
ð �5ð
ð ÐVð	
ð
 ÐAð
ð ˜:ð
ð ˜+ð
ð ˜ð
ð ˜8ð
ð Ð8ð
ð Ð0ð
ð ˜ð
ð ˜ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �Bð#
ð$ Ø!>Ð ?ò'
ð* # DÐ)ñ/ð_ðp	 Nà'Ø+Ø9Ø%Ø&Ø*Ø?Ø%Ø#Ø ØØØØñ
ð  Ø" DÐ)ñ'ðo	_ðX
 Kð
ØÐ'ð
àÐ/ð
ð �5ð
ð Ðkð	
ð
 Ð0ð
ð ÐAð
ð ˜,ð
ð ˜ð
ð ˜<ð
ð Ð<ð
ð ˜ð
ð ˜ð
ð ˜:ð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" �^Ð$ð#
ð$ Ø!>Ð ?ò'
ñðW
_ðH Ið
ØÐ'ð
àÐ/ð
ð �5ð
ð �Sð	
ð
 ˜3ð
ð Ð/ð
ð ˜ð
ð ˜:ð
ð Ð:ð
ð ˜:ð
ð ˜ð
ð Ð0ð
ð ˜#ð
ð ˜Cð
ð ˜Sð
ð  ˜ð!
ð" �Bð#
ð$ Ð!>Ð ?ñ%
ð( #Ð$CÐDØ)ñ1ðE_ðz MØà'ØØØ$ØØØ%ØØð bØ)Ø Ù>Ù#ò
ò	ðw_ñ` LØá'ØÙ&Ù(ØØØÙ#Ù=ñ JØØ Ù%Øò
òð__ñF MØá'ØÙAÙ$ØÙ)Ù#Ù%ØÙ>Ø ØØÙ&Ð'ò
òðE_ñn Oá!ÙÙPÙ0Ù+Ù%Ù!+ÙPÙ#Ù&Ù%Ùhò
ñ #Ð#Ø"¡FÐ+ò%ðk_ñT TØá'ÙqÙ%ÙAØ Ù,Ù$ØÛJÙ%ØÙ)ÙAØò
ò	ðQ_ñ| Tð
ØÑ'ð
à�5ð
ð Ñtð
ð Ð0ð	
ð
 ™ð
ð ™*ð
ð Ñ,ð
ð Ñ)ð
ð ˜Cð
ð ˜Sð
ð ÓJð
ð ™ð
ð ÑAð
ð Ñ/ð
ð ˜#ð
ð  ÑAð!
ð" ™:ð#
ð$ Ù!>Ð ?ò'
ñ*   Ð&ñ1ðy_ñp Hð
ØÑ'ð
àÑ/ð
ð �5ð
ð Ñ;ð	
ð
 ÑSð
ð ™ð
ð Ñ/ð
ð ™ð
ð ™9ð
ð Ñ9ð
ð ™:ð
ð ™ð
ð Ñ:ð
ð ˜ð
ð �Bð
ð  ˜#ð!
ð" ˜Cð#
ð$ !Ù!>Ð ?ò'
ð* *ñ3ðk_ñ` Rð
ØÑ'ð
àÑ/ð
ð �5ð
ð Ñ*ð	
ð
 Ñ/ð
ð Ñ;ð
ð ˜#ð
ð ™;ð
ð Ñ}ð
ð ˜Cð
ð ™ð
ð ˜Sð
ð ™:ð
ð ˜ð
ð ™ð
ð  �Bð!
ð" ™ð#
ñ$ @Ù!>Ð ?ó'
ñ*   Ð&Ù"ñ1ð__ñR Nð
ØÑ'ð
àÑ/ð
ð �5ð
ð ™+ð	
ð
 Ñ?ð
ð ñ  Fð
ð Ñ}ð
ð ˜ð
ð ™ð
ð ˜Cð
ð ™:ð
ð Ñuð
ð ˜Sð
ð ˜#ð
ð �Bð
ð  ™?ð!
ð" ™ð#
ñ$ &Ù!>Ð ?ó'
ñðQ_ñB Kð
ØÑ'ð
àÑ/ð
ð �5ð
ð Ñhð	
ð
 ÑAð
ð Ñ(ð
ð ™?ð
ð Ñ?ð
ð ˜ð
ð �Bð
ð ™ð
ð ™ð
ð ™:ð
ð ÑLð
ð ˜#ð
ð  ˜Cð!
ñ$ "ñ+ð_ñn Oð
ØÑ'ð
à�5ð
ð Ñ/ð
ð Ñoð	
ð
 ÑAð
ð ™*ð
ð ™ð
ð ™>ð
ð Ñ>ð
ð ˜ð
ð �Bð
ð ™ð
ð ™ð
ð ™:ð
ð ÑMð
ð  ˜#ð!
ð" ˜Cð#
ð$ !Ù!>Ð ?ò'
ð* ñ1ðk_ñ` Oð
ØÑ'ð
à�5ð
ð Ñ/ð
ð Ñoð	
ð
 ÑAð
ð ™*ð
ð ™ð
ð ™>ð
ð Ñ>ð
ð ˜ð
ð �Bð
ð ™ð
ð ™ð
ð ™:ð
ð ÑMð
ð  ˜#ð!
ð" ˜Cð#
ð$ Ñ!>Ð ?ñ%
ñ( $ i±%¹(¸Ð1DÐ%EÐFØñ1ð]_ñR Pá!ØÙAÙ(Ù,ÙAÙ#Ù%Ù%Ù<Ø%(Øò
ð &Ð&Ø,ñ%ðO_ñx JØá'Ù7Ù4ØÙ&Ù Ù&Ù;ØÙ%Ù%ØØ Øò
ð  *ò)ðu_ñb Pð
ØÑ'ð
à�5ð
ð Ñvð
ð ÑAð	
ð
 Ñ/ð
ð ™+ð
ð Ñ.ð
ð Ñ,ð
ð ÑAð
ð ™:ð
ð ™ð
ð ™ð
ð ÑMð
ð ‘[�Mð
ð ˜Cð
ð  ˜#ð!
ð" ˜Sð#
ð$ ØÙ!>Ð ?ó)
ñð__ñT IÙ1ð
ØÑ'ð
à�5ð
ð ÑQð
ð Ñ_ð	
ð
 Ñ/ð
ð ™ð
ð Ñ+ð
ð Ñ@ð
ð Ñ.ð
ð ™:ð
ð ™ð
ð ™ð
ð �Bð
ð ˜Sð
ð ˜Cð
ð  ˜#ð!
ð" ˜#ð#
ñ$ NØÙ!>Ð ?ó)
ò	ðQ_ñH Eð
ØÑ'ð
à�5ð
ð Ñ/ð
ð Ñnð	
ð
 Ñið
ð ™ð
ð ™<ð
ð Ñ<ð
ð Ñ/ð
ð ˜Sð
ð ˜#ð
ð ˜Cð
ð ˜#ð
ð ˜ð
ð ™ð
ð  Ñ{ð!
ð" �Bð#
ñ$ $Ù%Ù!>Ð ?ó)
ñðE_ñz Øòðw_ñB GØòð_ñJ GØòðG_ñR KØòðO_ñZ KØòðW_ñb IØòð__ñj KØòðg_ñr PØòðo_ñz NØòðw_€FðB �2—:‘:Ñ.Ó/€LÙDÐó+óZ 
óD\ó
ó*Xõ4v5r2   rý   c                   ó6   — e Zd ZdZdZddddddd	œd
didœZd„ Zy)ÚTwitterAmplifyIEztwitter:amplifyz1https?://amp\.twimg\.com/v/(?P<id>[0-9a-f\-]{36})z<https://amp.twimg.com/v/0ba0c3c7-0af3-4c0a-bed5-7efd1ffa2951Ú fec25801d18a4557c5c9f33d2c379ffaz$0ba0c3c7-0af3-4c0a-bed5-7efd1ffa2951r#   úTwitter Videozre:^https?://.*)r¹   r»   r¼   rÀ   rØ   rÙ   rÚ   c                 ól  ‡ ‡— ‰ j                  |«      }‰ j                  ||«      Š‰ j                  d‰d«      }‰ j                  ||«      \  }}g }‰ j                  d‰dd¬«      }ˆ ˆfd„}|r  |d«      \  }	}
|j	                  ||	|
d	œ«        |d
«      \  }}|d   j                  ||dœ«       |d||dœS )Nztwitter:amplify:vmapzvmap urlztwitter:image:srcrÀ   F©r'   c                 ó�   •— t        ‰j                  d| › d�‰d¬«      «      }t        ‰j                  d| › d�‰d¬«      «      }||fS )Nztwitter:z:widthFr‹  z:height)r   Ú_html_search_meta)Útargetr9  r:  r=   Úwebpages      €€r0   Ú_find_dimensionz7TwitterAmplifyIE._real_extract.<locals>._find_dimension�  sh   ø€ Ü˜D×2Ñ2Ø˜6˜( &Ð)¨7¸%ð 3ó Aó BˆAä˜D×2Ñ2Ø˜6˜( 'Ð*¨G¸5ð 3ó Bó CˆAà�a�4ˆKr2   rp  )r"   rY   rZ   rP  r   r[   r‰  )r¹   r¼   rR   r=  )rû   Ú_download_webpager�  rW   rM   r]   )r=   r"   r?   rP   rR   r.   r=  rÀ   r�  Úthumbnail_wÚthumbnail_hÚvideo_wÚvideo_hr�  s   `            @r0   rÿ   zTwitterAmplifyIE._real_extract�  sï   ù€ Ø—>‘> #Ó&ˆØ×(Ñ(¨¨hÓ7ˆà×)Ñ)Ø" G¨Zó9ˆà×8Ñ8¸À8ÓL‰
ˆ�àˆ
Ø×*Ñ*Ø ¨+¸Uð +ó Dˆ	õ	ñ Ù'6°wÓ'?Ñ$ˆK˜Ø×ÑØ Ø$Ø%ñô ñ +¨8Ó4Ñˆ�Ø�‰
×ÑØØñ
ô 	ð Ø$ØØ$ñ	
ð 	
r2   N)r®   r¯   r°   r  r  Ú_TESTrÿ   r¶   r2   r0   r‡  r‡  q  s=   „ Ø€GØE€Jð NØ1à8ØØ$Ø*ñ	
ð Ð/Ð0ñ
€Eó&
r2   r‡  c                   ó  — e Zd ZdZej
                  dz   Zdddddddd	d
ddd
deeddœdœdddddddddddddeeddœdœdddddddddddddeeddœdœdi d d!“d"d“d#d$“d%e“d&d'“d(d“d)d*“d+d,“d-d.g“d/d0“d1d2“d3d*“d4d5“d6d7“d8d9“d:e“dœgZd;„ Z	y<)=rh  ztwitter:broadcastz)i/(?P<type>broadcasts|events)/(?P<id>\w+)z.https://twitter.com/i/broadcasts/1yNGaQLWpejGjÚ1yNGaQLWpejGjr#   z&Andrea May Sahouri - Twitter BroadcastzAndrea May SahouriÚandreamsahouriz"https://twitter.com/andreamsahouriÚ20200601iÏTÔ^iÆTÔ^z re:^https?://[^?#]+\.jpg\?token=rq  )r¹   r»   r¼   rx   r¾   r¿   rÌ   rt  rs  rÃ   rÄ   rÀ   ré   rœ  rí   r  z.https://twitter.com/i/broadcasts/1ZkKzeyrPbaxvÚ1ZkKzeyrPbaxvz+Starship | SN10 | High-Altitude Flight TestÚSpaceXzhttps://twitter.com/SpaceXÚ20210303i$@`i@`z.https://twitter.com/i/broadcasts/1OyKAVQrgzwGbÚ1OyKAVQrgzwGbzStarship Flight TestÚ20230420iö2Adiì0Adz*https://x.com/i/events/1910629646300762112r¹   Ú1LyxBWDRNqyKNr»   r¼   u,   #ã‚¬ãƒ³ãƒ‹ãƒ�ãƒ« ã‚¦ã‚©ãƒƒãƒ�ãƒ‘ãƒ¼ãƒ†ã‚£ãƒ¼rœ  rx   Ú1910629646300762112rí   rt  Ú20250423rs  ièÓhrÈ   u   ã‚¬ãƒ³ãƒ‹ãƒ�ãƒ«rÀ   zre:https?://[^?#]+\.jpg\?token=rÃ   iÀ½hrÄ   r¾   u   ãƒ‡ã‚£ã‚ºãƒ‹ãƒ¼ãƒ—ãƒ©ã‚¹å…¬å¼�r¿   ÚDisneyPlusJPrÌ   z https://twitter.com/DisneyPlusJPré   c                 ó  — | j                  |«      j                  dd«      \  }}|dk(  r=| j                  d|› d�|«      }t        |dddd	t        ht
        t        d
«      hf«      }n|}| j                  d|d|i«      d   |   }|st        dd¬«      ‚| j                  ||«      }|j                  |t        |dt        ht        f«      xs t        |j                  d«      dd¬«      |j                  d«      xs |j                  d«      t        |ddd ¬«      dœ«       |d   dk(  r| j                  dd¬«       |S |d   }| j                  d|› �|«      d   }	|	j                  d «      xs |	d!   }
d"|
v r| j!                  «        t"        j$                  j'                  t"        j$                  j)                  |
«      j*                  «      j                  dd g«      d#   }| j-                  |«      \  }}}| j/                  |
|||||«      |d$<   |S )%NrK  r¹   Úeventszlive_event/1/z/timeline.jsonÚtwitter_objectsÚ
broadcasts.)r¹   Úbroadcast_idzbroadcast IDzbroadcasts/show.jsonÚidsrD  Tr¾  r×  r¾   zTwitter Broadcastr*  )ÚdelimÚtwitter_usernamer¿   r.  )rÎ  )rx   r¼   r¿   rÌ   rí   Úis_upcomingz'This live broadcast has not yet startedÚ	media_keyúlive_video_stream/status/ÚsourceÚnoRedirectPlaybackUrlÚlocationz/live_video_stream/geoblocked/r   rR   )rw  r;   rž   r   rw   Úanyr   r
   Ú_parse_broadcast_datar]   r   Úfilterr   r,   r   r|  Úraise_geo_restrictedrI   rJ   Úparse_qsÚurlparser‹   Ú_extract_common_format_infoÚ_extract_pscp_m3u8_formats)r=   r"   Úbroadcast_typerx   Útimeliner¨  rT  r  r­  r¯  Úm3u8_urlr&   ÚstaterY   rZ   s                  r0   rÿ   z TwitterBroadcastIE._real_extractþ  sI  € Ø%)×%:Ñ%:¸3Ó%?×%EÑ%EÀfÈdÓ%SÑ"ˆ˜
à˜XÒ%Ø—~‘~Ø 
˜|¨>Ð:¸JóHˆHä'¨Ø! <°Ð6LÜ�”sœW ^Ó4Ð5ð37ó 8‰Lð &ˆLà—N‘NØ" LØ�LÐ!ó#à#/ñ1à1=ñ?ˆ	ñ Ü Ð!=ÈÔMÐMØ×)Ñ)¨)°\ÓBˆØ�‰Ø$Ü! )Øœ:˜,¬ð.ó ò Xä §¡¨Ó 4Ð6IÐQVÔWØ$Ÿ=™=Ð);Ó<ÒWÀÇÁÈÓ@WÜ(ØÐ-Ð/GÐQUôWñ
ô 	ð �Ñ -Ò/Ø×!Ñ!Ð"KÐVZÐ!Ô[ØˆKà˜kÑ*ˆ	Ø—‘Ø'¨	 {Ð3°Yó@Ø@HñJˆà—:‘:Ð5Ó6ÒL¸&ÀÑ:LˆØ+¨xÑ7Ø×%Ñ%Ô'Ü—,‘,×'Ñ'¬¯©×(=Ñ(=Øó)ß‘eóß ™S ¨$¨Ó0°ñ4ˆà#×?Ñ?À	ÓJÑˆˆu�fØ×9Ñ9Ø�l G¨U°E¸6óCˆˆY‰àˆr2   Nr   r¶   r2   r0   rh  rh  ª  s²  „ Ø!€Gà×*Ñ*Ð-YÑY€Jð @à!ØØ=Ø)Ø,Ø+Ø@Ø&Ø!+Ø#Ø%Ø<ØØ%(Ø%ñ
ñð* @à!ØØBØ)Ø Ø#Ø8Ø&Ø!+Ø#Ø%Ø<ØØ%(Ø%ñ
ñð( @à!ØØ+Ø)Ø Ø#Ø8Ø&Ø!+Ø#Ø%Ø<ØØ%(Ø%ñ
ñð( <ð
Ø�/ð
à�5ð
ð ÐCð
ð $ Sð	
ð
 Ð/ð
ð ˜:ð
ð ˜Jð
ð   ð
ð Ð&Ð'ð
ð Ð;ð
ð ˜ð
ð ˜:ð
ð Ð8ð
ð ˜>ð
ð Ð>ð
ð  ˜#ð!
ñðuN€Fó`*r2   rh  c                   óö   — e Zd ZdZej
                  dz   Z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ddddœddi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d0d1d2d1d3d4œddidœgZd5dd6dd7œZd8„ Z	d9„ Z
y:);ri  ztwitter:spacesz i/spaces/(?P<id>[0-9a-zA-Z]{13})z*https://twitter.com/i/spaces/1OwxWwQOPlNxQÚ1OwxWwQOPlNxQro  zDEverybody in: @mtbarra & @elonmusk discuss the future of EV chargingz'Twitter Space participated by Elon Muskrq  Ú20230608if:‚dz-re:https?://pbs\.twimg\.com/profile_images/.+iª2‚dz
Mary BarraÚmtbarra)r¹   r»   r¼   r½   rí   rt  rs  rÀ   rÃ   rÄ   r¾   r¿   r  rv  r5  z*https://twitter.com/i/spaces/1vAxRAVQWONJlÚ1vAxRAVQWONJlz Framing Up FinOps: Billing Toolsz5Twitter Space participated by rupa, Alfonso HernandezzGoogle CloudÚgooglecloudÚ	post_liveiF8dÚ20230413iêÓ>dÚ20230418Úm4a_dash)r¹   r»   r¼   r½   r¾   r¿   rí   rÀ   rÃ   rÄ   rs  rt  ÚprotocolÚ	containerz*https://twitter.com/i/spaces/1eaKbrQbjoRKXÚ1eaKbrQbjoRKXu   ã�‚z(Twitter Space participated by nobody yetu   æ�¯æ ¹ã�¨ã‚�ã‚‹Útomeru_ikinoneÚ20230601i0zxdi.zxd)r¹   r»   r¼   r½   r¾   r¿   rí   rt  rs  rÀ   rÃ   rÄ   rÈ  rÉ  z$https://x.com/i/spaces/1DXGydznBYWKMÚ1DXGydznBYWKMr#   u1   America and Israelâ€™s â€œspecial relationshipâ€�zCandace OwensÚRealCandaceOi×ÁfÚ20240817i˜Áfr$   )r¹   r»   r¼   r½   r¾   r¿   rí   rÀ   rÃ   rÄ   rs  rt  rÈ  r¬  Úis_live)Ú
notstartedÚendedÚrunningÚtimedoutc                 ó4   — |ddddddddœdddddddddddœ
dœS )NTF)r¹   ÚisMetatagsQueryÚwithDownvotePerspectiveÚwithReactionsMetadataÚwithReactionsPerspectiveÚwithReplaysÚwithSuperFollowsUserFieldsÚwithSuperFollowsTweetFields)
Ú dont_mention_me_view_api_enabledÚinteractive_text_enabledrá  rñ  Úresponsive_web_uc_gql_enabledÚspaces_2022_h2_clippingÚ!spaces_2022_h2_spaces_communitiesrè  ré  Úvibe_api_enabled)ró  rô  r¶   )r=   Úspace_ids     r0   r£   z$TwitterSpacesIE._build_graphql_query„  sP   € ð Ø#'Ø+0Ø).Ø,1Ø#Ø.2Ø/3ñ	ð 59Ø,0Ø9=Ø8<Ø15Ø+/Ø5:Ø/3Ø[`Ø$(ññ
ð 	
r2   c                 ó¢  ‡ ‡— ‰ j                  |«      }‰ j                  d|«      d   }|st        dd¬«      ‚|d   Št        ˆˆ fd„«      }|dk(  }g }d	d
i}|dk(  r‰ j	                  dd¬«       n»|s%‰j                  d«      s‰ j	                  dd¬«       n”‰j                  d«      rƒt        ‰ j                  d‰d   › �‰d   «      ddt        hfd¬«      }|xr d|v }	|r#‰ j                  |‰d   |	rdnd|	rdnd||d¬«      ng }|	r#|D ]  }
|
j                  dddœ«       |rŒd|
d<   Œ  d j                  t        |d!«      «      xs d"}|s|d#k(  r‰ j	                  d$d¬«       |d%|› �|||d&œt        ‰d't        hfd(t        d)¬*«      ht        fd+t        d)¬*«      hfd,œ«      ¥t        ‰d-d.d/d0t        hfd1t        hfd2d3„ ht        hfd4œf«      ¥S )5Nz%HPEisOmj1epUNLCWTYhUWw/AudioSpaceByIdÚ
audioSpacezTwitter Space not foundTr¾  Úmetadatac                  óD   •— ‰j                   ‰ d   j                  «          S )Nr½  )ÚSPACE_STATUSr—   )ræ  r=   s   €€r0   r1   z/TwitterSpacesIE._real_extract.<locals>.<lambda>¥  s    ø€  t×'8Ñ'8¸À'Ñ9J×9PÑ9PÓ9RÑ'S€ r2   rÐ  ÚRefererzhttps://twitter.com/r¬  zTwitter Space not started yetÚis_space_available_for_replayz*Twitter Space ended and replay is disabledr­  r®  r¯  )r°  r±  Fr  zaudio-spacero  r#   rv  r$   )Úentry_protocolÚlivers   r'   r*   Úaac)r)   ÚacodecrÇ  rÉ  rŽ   )ÚparticipantsÚspeakers.Údisplay_namez
nobody yetrÄ  z,Twitter Space ended but not downloadable yetzTwitter Space participated by )r¹   r½   rR   Úhttp_headersrí   r¼   )Ú
started_atÚscheduled_startr5   )Úscaler,  )r¼   rs  rÃ   Úcreator_resultsrœ   rp   r)  r+  Úprofile_image_url_httpsc                 ó&   — | j                  dd«      S )NÚ_normalÚ_400x400r"  r$  s    r0   r1   z/TwitterSpacesIE._real_extract.<locals>.<lambda>Ó  s   € ÀAÇIÁIÈiÐYcÓDd€ r2   )r¾   r¿   rÀ   )rû   r­   r
   r   r|  r,   r   rž   r   Ú_extract_m3u8_formatsr]   r•   rw   r   r²  r   )r=   r"   rã  Ú
space_datarí   rÐ  rR   rs   r¯  Úis_audio_spaceÚfmtrï  ræ  s   `           @r0   rÿ   zTwitterSpacesIE._real_extractž  sx  ù€ Ø—>‘> #Ó&ˆØ×+Ñ+Ð,SÐU]Ó^Ð_kÑlˆ
ÙÜ Ð!:ÀTÔJÐJà˜jÑ)ˆÜÔSÓTˆØ Ñ*ˆàˆØÐ4Ð5ˆØ˜-Ò'Ø×!Ñ!Ð"AÈDÐ!ÕQÙ §¡Ð.MÔ!NØ×!Ñ!Ð"NÐY]Ð!Õ^Ø�\‰\˜+Ô&Ü!Ø—‘Ð!:¸8ÀKÑ;PÐ:QÐRÐT\Ð]hÑTiÓjØÐ@Ä;À-ÐPÐZ_ôaˆFð $Ò?¨¸Ð(?ˆNñ
 @Fð	 ×0Ñ0Ø˜ Ñ-¹©uÈEá)7™v¸]Ø g°Uð	 1ô <ð LNð	 ñ
 Ø"ò 6�CØ—J‘J¨&¸EÑBÔCÚ"Ø+5˜˜KÒ(ð6ð
 —y‘y¤ØÐIó"Kó Lò \ØO[ð 	ñ ˜;¨+Ò5Ø×!Ñ!Ð"PÐ[_Ð!Ô`ð Ø;¸L¸>ÐJØØ#Ø&ñ
ô ˜8Ø!¤C 5Ð)à&GÌ+Ð\`ÔJaÐIbÔdgÐ%hØ*¬[¸tÔ-DÐ,EÐFñ	&ó ð
ô ˜8Ð&7¸À8Ø#¤c U˜OØ -´¨}Ð=Ø7Ñ:dÐ9eÔhsÐgtÐuñNð &ó ð
ð 	
r2   N)r®   r¯   r°   r  r    r±   r  r  rè  r£   rÿ   r¶   r2   r0   ri  ri  +  sD  „ Ø€GØ×*Ñ*Ð-PÑP€Jð <à!ØØ[ØDØ%Ø&Ø!+ØIØ#Ø%Ø$Ø$ñ
ð # FÐ+ñ!ð& <à!ØØ7ØRØ&Ø(Ø&ØIØ#Ø%Ø!+Ø&ØØ#ñ
ð  # FÐ+ñ'ð, <à!ØØØEØ)Ø+Ø%Ø&Ø!+ØIØ#Ø%ØØ#ñ
ð  # FÐ+ñ'ð, 6à!ØØHØEØ'Ø)Ø%ØIØ#Ø%Ø!+Ø&Ø%ñ
ð # FÐ+ñ%ðsL€Fð^ $ØØØñ	€Lò
ó47
r2   ri  c                   ó   — e Zd ZdZdZdZd„ Zy)ÚTwitterShortenerIEztwitter:shortenerz1https?://t\.co/(?P<id>[^?#]+)|tco:(?P<eid>[^?#]+)zhttps://t.co/c                 ó   — | j                  |«      }|j                  dd«      \  }}|r|}| j                  |z   }| j                  ||ddi¬«      j                  }d}|j                  |«      r|j                  |d«      }| j                  |«      S )NÚeidr¹   r   Úcurl)rs   z;https://twitter.com/safety/unsafe_link_warning?unsafe_link=r&  )rw  r;   Ú	_BASE_URLÚ_request_webpager"   Ú
startswithr#  rü   )r=   r"   rD   r  Ú	shortcodeÚnew_urlÚ _TwitterShortenerIE__UNSAFE_LINKs          r0   rÿ   z TwitterShortenerIE._real_extractÝ  s�   € Ø×$Ñ$ SÓ)ˆØŸ™ E¨4Ó0‰ˆˆYÙØˆIØ—.‘. 9Ñ,ˆCØ×'Ñ'¨¨YÀÈvÐ@VÐ'ÓW×[Ñ[ˆØUˆØ×Ñ˜mÔ,Ø—o‘o m°RÓ8ˆGØ�‰˜wÓ'Ð'r2   N)r®   r¯   r°   r  r  r  rÿ   r¶   r2   r0   r   r   Ø  s   „ Ø!€GØE€JØ€Ió
(r2   r   )-r´   r©   rú  r9   Úurllib.parserI   Úcommonr   Ú	periscoper   r   Újsinterpr   Únetworking.exceptionsr	   Úutilsr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úutils.traversalr   r   r    r¸   rý   r‡  rh  ri  r   r¶   r2   r0   ú<module>r     s«   ðÛ Û Û Û 	Û å !ß 3Ý *Ý -÷÷ ÷ ÷ ÷ ñ ÷* 4ôvc�Mô vcôrn+�Mô n+ôba5�ô a5ôH#6
�}ô 6
ôr~˜¨ô ~ôBj
�mô j
ôZ(˜õ (r2   