+
     Bif                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt. R5Ot ! R R]4      t]P                  ! 4       t
/ tRsRsR6RR/R lltR6R ltR7R ltR	 tR
 tRR/R lt ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!]4      tR" t R# t!]PD                  R$,          R%8X  d    ! R& R']4      t#]PD                  R(8X  d    ! R) R*]4      t$]PD                  R+8X  d$   ^ R,I%H&t& ]&'       d   ^ R-I'H(t(H)t)H*t*  ! R. R/]4      t+R0 R1 lt,R6R2 R3 llt-].R48X  d
   ]-! 4        R# R# )8    NErrorc                       ] tR t^tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       !/usr/lib/python3.14/webbrowser.pyr   r      s    r   	preferredFc                L   \         ;_uu_ 4        \        f   \        4        W.\        V P	                  4       &   V'       g   \
        '       d&   V  R2\
        8X  d   \        P                  ^ V 4       M\        P                  V 4       R R R 4       R #   + '       g   i     R # ; i)Nz.desktop)_lock	_tryorderregister_standard_browsers	_browserslower_os_preferred_browserinsertappend)nameklassinstancer   s   &&&$r   registerr      sj    	&(#("3	$**,
 ..dV83DH]3]Q%T" 
s   >B:BB#	c                 0   \         f*   \        ;_uu_ 4        \         f   \        4        R R R 4       V e   V .pM\         pV F  pRV9   dB   \        P                  ! V4      pVR,          R8X  d   \        VR R 4      u # \        V4      u #  \        VP                  4       ,          pV^,          e   V^,          u # V^ ,          f   K  V^ ,          ! 4       u # 	  \        R4      h  + '       g   i     L; i  \         d    \        T4      p Lki ; i)N%s&z!could not locate runnable browser)r   r   r   shlexsplitBackgroundBrowserGenericBrowserr   r   KeyError_synthesizer   )usingalternativesbrowsercommands   &   r   getr)   (   s    U *,  w 7?kk'*Gr{c!("66%g../#GMMO4 qz%qz!'qz|##  $ 3
443 U&  /%g./s   C)C<)C9	<DDc                     \         f*   \        ;_uu_ 4        \         f   \        4        R R R 4       \          F)  p\        V4      pVP	                  WV4      '       g   K(   R# 	  R#   + '       g   i     LE; i)NTF)r   r   r   r)   open)urlnew	autoraiser   r'   s   &&&  r   r+   r+   K   sV     U *,  d)<<),,   Us   A''A7	c                     \        V ^4      #    r+   r,   s   &r   open_newr4   b       
 Q<r   c                     \        V ^4      #    r2   r3   s   &r   open_new_tabr9   j   r5   r   c                   V P                  4       ^ ,          p\        P                  ! V4      '       g   RR.# \        P                  P                  V4      p \        VP                  4       ,          pT^,          pT'       dq   TP                  4       TP
                  8X  dR   ^ RI	pTP                  T4      pYn
        \        P                  P                  T 4      Tn        \        T RYQR7       RT.# RR.#   \         d    RR.u # i ; i)r   N)r   r   )r    shutilwhichospathbasenamer   r   r#   copyr   r   )r'   r   cmdr   r(   
controllerr@   s   &$     r   r$   r$   r   s     --/!
C<<d|77C DDJJL) Jdjjlj&9&99YYz*
! gg..w7
$Ij!!$<  d|s   C8 8D
	D
c                   F   a  ] tR t^t o R.tRR ltR	R ltR tR tRt	V t
R# )
BaseBrowserr   c                    Wn         Wn        R # N)r   r?   selfr   s   &&r   __init__BaseBrowser.__init__   s    	r   c                    \         hrF   )NotImplementedErrorrH   r,   r-   r.   s   &&&&r   r+   BaseBrowser.open   s    !!r   c                &    V P                  V^4      # r0   r2   rH   r,   s   &&r   r4   BaseBrowser.open_new       yya  r   c                &    V P                  V^4      # r7   r2   rP   s   &&r   r9   BaseBrowser.open_new_tab   rR   r   )r?   r   N) r   T)r   r   r   r	   argsrI   r+   r4   r9   r
   __classdictcell____classdict__s   @r   rD   rD      s'      6D"!! !r   rD   c                   0   a  ] tR t^t o R tRR ltRtV tR# )r"   c                    \        V\        4      '       d   Wn        R .V n        MV^ ,          V n        VR,          V n        \        P
                  P                  V P                  4      V n        R# )r   :r1   NNN)
isinstancestrr   rW   r=   r>   r?   rG   s   &&r   rI   GenericBrowser.__init__   sO    dC  IDI QDIRDI((3r   c                   \         P                  ! R V4       V P                  .V P                   Uu. uF  pVP	                  RV4      NK  	  up,           p \         P
                  R,          R8X  d   \        P                  ! V4      pM\        P                  ! VRR7      pVP                  4       '       * # u upi   \         d     R# i ; i)webbrowser.openr   N   NwinT)	close_fdsF)
sysauditr   rW   replaceplatform
subprocessPopenwaitOSErrorrH   r,   r-   r.   argcmdlineps   &&&&   r   r+   GenericBrowser.open   s    		#S)99+,0II!7,5S "%T3!7,5!7 7	||B5($$W-$$W=vvx<!7  		s   B7AB< <C
C)rW   r?   r   NrV   )r   r   r   r	   rI   r+   r
   rX   rY   s   @r   r"   r"      s     4 r   r"   c                   *   a  ] tR t^t o RR ltRtV tR# )r!   c                   V P                   .V P                   Uu. uF  pVP                  R V4      NK  	  up,           p\        P                  ! RV4        \        P
                  R,          R8X  d   \        P                  ! V4      pM\        P                  ! VRRR7      pVP                  4       RJ # u upi   \         d     R# i ; i)r   ra   rb   rd   T)re   start_new_sessionNF)
r   rW   rh   rf   rg   ri   rj   rk   pollrm   rn   s   &&&&   r   r+   BackgroundBrowser.open   s    99+,0II!7,5S "%T3!7,5!7 7		#S)	||B5($$W-$$W7;=668t##!7  		s   B5AB: :C	C	r   NrV   r   r   r   r	   r+   r
   rX   rY   s   @r   r!   r!      s      r   r!   c                   T   a  ] tR t^t o RtRtRtRR.tRtRt	Rt
R	R ltR
R ltRtV tR# )UnixBrowserNFT%actionr   c           	        . pV'       d<   V P                   '       d*   \        V4      pV P                   V,          pV'       d   V.pV P                  .V,           V,           pV'       g   V P                  '       d   \        P
                  pMR p\        P                  ! TRTV P                  ;'       d    T;'       g    R VRR7      p	V'       d    V	P                  ^4      p
V
'       * # V P                  '       d   V	P                  4       f   R# R# V	P                  4       '       * #   \        P                   d     R# i ; i)NTre   stdinstdoutstderrru   F)
raise_optsintr   
backgroundrj   DEVNULLrk   redirect_stdoutrl   TimeoutExpiredrv   )rH   rW   remoter.   r,   	raise_optoptrp   inoutrq   rcs   &&&&&      r   _invokeUnixBrowser._invoke   s    	doooII//),C E	99+	)D0T___&&E EWE%)%9%9%C%Ce%K%Kt$)TC VVAYv ___vvxvvx< ,, s   D& &D?>D?c                v   \         P                  ! R V4       V^ 8X  d   V P                  pMQV^8X  d   V P                  pM=V^8X  d)   V P                  f   V P                  pMV P                  pM\        RV 24      hV P                   Uu. uF%  pVP                  RV4      P                  RV4      NK'  	  ppV Uu. uF  qU'       g   K  VNK  	  ppV P                  VRW14      pV'       g>   V P                   Uu. uF  qUP                  RV4      NK  	  ppV P                  VRR4      # R# u upi u upi u upi )ra   z8Bad 'new' parameter to open(); expected 0, 1, or 2, got r   r{   TF)
rf   rg   remote_actionremote_action_newwinremote_action_newtabr   remote_argsrh   r   rW   )rH   r,   r-   r.   actionro   rW   successs   &&&&    r   r+   UnixBrowser.open  s,   		#S)!8''FAX..FAX((02222 4475: ; ;  ++-+C D#&..y&A+ 	 -#+tst+,,tT9:6:ii@isKKc*iD@<<eU33-+ As   +D,<	D1
D1;D6r   rF   rV   )r   r   r   r	   r   r   r   r   r   r   r   r   r+   r
   rX   rY   s   @r   rz   rz      sC      JJO d#KM" H r   rz   c                   .    ] tR tRtRR.tRtRtRtRtRt	R	# )
Mozillai&  r{   r   rU   z-new-windowz-new-tabTr   N
r   r   r   r	   r   r   r   r   r   r
   r   r   r   r   r   &  s$     d#KM(%Jr   r   c                   2    ] tR tRtRR.tRR.tRtRtRtR	t	R
# )Epiphanyi0  z-noraiserU   r{   r   -nz-wTr   N)
r   r   r   r	   r   r   r   r   r   r
   r   r   r   r   r   0  s(     b!Jd#KMJr   r   c                   .    ] tR tRtRR.tRtRtRtRtRt	R# )	Chromei:  r{   r   rU   --new-windowTr   Nr   r   r   r   r   r   :  $     d#KM)Jr   r   c                   .    ] tR tRtRR.tRtRtRtRtRt	R# )	OperaiG  r{   r   rU   r   Tr   Nr   r   r   r   r   r   G  r   r   r   c                   2    ] tR tRtRR.tRtRtRtRtRt	Rt
R	# )
ElinksiQ  z-remotezopenURL(%s%action)rU   z,new-windowz,new-tabFr   N)r   r   r   r	   r   r   r   r   r   r   r
   r   r   r   r   r   Q  s,     23KM(%J Or   r   c                   *   a  ] tR tRt o RR ltRtV tR# )	Konquerori_  c           	        \         P                  ! R V4       V^8X  d   RpMRp\        P                  p \        P                  ! RWA.RVWUR7      pVP                  4        R#   \         d     Mi ; i \        P                  ! RRT.RTYURR7      pTP                  4       f   R# M  \         d     Mi ; i \        P                  ! R
RT.RTYURR7      pTP                  4       R	J #   \         d     R# i ; i)ra   newTabopenURL	kfmclientT)re   r~   r   r   	konquerorz--silentr}   Nkfmz-dF)rf   rg   rj   r   rk   rl   rm   rv   )rH   r,   r-   r.   r   devnullrq   s   &&&&   r   r+   Konqueror.openf  s   		#S)!8FF$$
	  +v!;+/w(/AA FFH  			  +z3!?+/w(/379A vvx  	  			$  %s!3+/w(/379A 668t##  		s5   A# #A10A15B( (B65B6:C* *C98C9r   NrV   rx   rY   s   @r   r   r   _  s     +$ +$r   r   c                   .    ] tR tRtRR.tRtRtRtRtRt	R# )	Edgei  r{   r   rU   r   Tr   Nr   r   r   r   r   r     r   r   r   c                     \         P                  ! R 4      '       d   \        R R\        R 4      4       \         P                  ! R4      '       d   \        RR\        . RO4      4       \        P
                  ! RR4      P                  R4      p RV 9   g   R\        P                  9   d3   \         P                  ! R4      '       d   \        RR\        R4      4       R	V 9   g   R
\        P                  9   d7   \         P                  ! R4      '       d   \        R\        \        R4      4       \         P                  ! R4      '       d   \        RR\        R4      4       R F7  p\         P                  ! V4      '       g   K!  \        VR\        V4      4       K9  	  \         P                  ! R4      '       d   \        R\        \        R4      4       M6\         P                  ! R4      '       d   \        R\        \        R4      4       \         P                  ! R4      '       d   \        RR\        R4      4       R F7  p\         P                  ! V4      '       g   K!  \        VR\        V4      4       K9  	  \         P                  ! R4      '       d   \        RR\        R4      4       \         P                  ! R4      '       d   \        RR\        R4      4       R# R# )zxdg-openNgioXDG_CURRENT_DESKTOPrU   :GNOMEGNOME_DESKTOP_SESSION_IDz	gvfs-openKDEKDE_FULL_SESSIONr   zx-www-browserr   r   epiphanyoperamicrosoft-edge)r   r+   z--r   )firefox	iceweasel	seamonkeyzmozilla-firefoxmozilla)zgoogle-chromechromechromiumzchromium-browser)r;   r<   r   r!   r=   getenvr    environr   r   r   r   r   r   )xdg_desktopr'   s     r   register_X_browsersr     s    ||JT#4Z#@A ||E/0KLM))126<<SAK 
K		#rzz	1LL%%d$5k$BC 
+		rzz	)LL%%i;)?@ ||O$$$(9/(JK<<  WdGG$45 ||E	9U#34	k	"	"i;)?@ ||JT8J#78 O<<  WdF7O4 O
 ||G$g/||$%%!4.>)?@ &r   c                  
  a . s \        P                  R 8X  dY   \        RR\	        R4      4       \        RR\	        R4      4       \        RR\	        R4      4       \        RR\	        R4      4       \        P                  R8X  d   \        R	R\        4       R
R7       \        P                  R8X  d   \        RR\        R4      4       \        P                  R,          R8X  Ed   \        R\        4       \        P                  P                  \        P                  P                  RR4      R4      p \        P                  P                  \        P                  P                  RR4      R4      pRRRRRW3 F7  p\        P                  ! V4      '       g   K!  \        VR\        V4      4       K9  	  \        P                  ! R4      '       d   \        RR\        R4      4       EM\        P                  R 8w  d   \        P                  P                  R4      '       g&   \        P                  P                  R4      '       db    RP!                  4       p\"        P$                  ! V\"        P&                  R7      pVP)                  4       P+                  4       pVs\7        4        \        P                  P                  R4      '       d   \        P                  ! R 4      '       d   \        R R\9        R 4      4       \        P                  ! R!4      '       d   \        R!R\9        R!4      4       \        P                  ! R"4      '       d   \        R"R\;        R"4      4       \        P                  ! R#4      '       d   \        R#R\9        R#4      4       \        P                  ! R$4      '       d   \        R$R\9        R$4      4       R%\        P                  9   Ed+   \        P                  R%,          P!                  \        P<                  4      pVP?                  4        V F  o\@        ;QJ d    V3R& lR' 4       F  '       d   K   R(M	  R
M! V3R& lR' 4       4      '       da    \B        SPE                  4       ,          p\G        V^,          \8        4      '       g'   \         PI                  ^ SPE                  4       4       K   SR)8w  g   K  \M        SR
R7      pV^,          e   K  \        SR\9        S4      R
R7       K  	  R# R#   \.        \"        P0                  \2        \4        3 d     ELi ; i  \J         d     L|i ; i)*darwinMacOSXNdefaultr   zgoogle chromer   safariios
iosbrowserT)r   
serenityosBrowserrb   rd   zwindows-defaultzPROGRAMFILES(x86)zC:\Program Files (x86)z%Microsoft\Edge\Application\msedge.exePROGRAMFILESzC:\Program Filesr   r   r   zMicrosoftEdge.exer   DISPLAYWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r   TERMzwww-browserlinkselinkslynxw3mBROWSERc              3   ,   <"   T F	  qS9  x  K  	  R # 5irF   r   ).0xrp   s   & r   	<genexpr>-register_standard_browsers.<locals>.<genexpr>2  s     3UG#Us   z 	FrU   )'r   rf   ri   r   MacOSXOSAScript
IOSBrowserr!   WindowsDefaultr=   r>   joinr   r)   r;   r<   r   r    rj   check_outputr   decodestripr   FileNotFoundErrorCalledProcessErrorPermissionErrorNotADirectoryErrorr   r"   r   pathsepreverseallr   r   r]   r   r#   r$   )	edge64edge32r'   rA   
raw_resultresultuserchoicesr(   rp   s	           @r   r   r     s   I
||x4!;<4!ABD/)"<=4!:; ||utZ\TB
|||#D"3I">?
||B5 "N3 bjjnn-@B[\HJ bjjnn^=PQHJ!;	81G||G$$$(9'(BC1 <<+,,%tT2E-FG <<8#	)B)BbjjnnUfFgFg	/<BBD'44SASAST
#**,224 )/%! ::>>&!!||M**n].KL||G$$$w(?@||H%%4)9:||F##~f'=>||E""nU&;< BJJjj+11"**= #Gs3U3sss3U333!'8G
 &gaj.AA!((GMMO<  B "}!'T:q6>WdN7,CtT# # 9 &z'D'D#%79 P   s%   AT	 'T5	%T21T25UUrb   rd   c                   *   a  ] tR tRt o RR ltRtV tR# )r   iL  c                    \         P                  ! R V4        \        P                  ! V4       R#   \         d     R# i ; i)ra   TF)rf   rg   r=   	startfilerm   rM   s   &&&&r   r+   WindowsDefault.openM  s=    II'-S!    s   1 A A r   NrV   rx   rY   s   @r   r   r   L  s     		 		r   r   r   c                   @   a a ] tR tRt oRV 3R lltRR ltRtVtV ;t# )r   i]  c                &   < \         SV `  V4       R # rF   )superrI   )rH   r   	__class__s   &&r   rI   MacOSXOSAScript.__init__^  s    GT"r   c                   \         P                  ! R V4       VP                  RR4      pV P                  R8X  d@   VP	                  R4      w  rEpV'       d   VP                  4       R9   d   RV R2pMRV R2pMRV P                   R	V R
2p\        P                  ! RR4      pVf   R# VP                  V4       VP                  4       p	V	'       * # )ra   "z%22r   r   zopen location "u2  
                        use framework "AppKit"
                        use AppleScript version "2.4"
                        use scripting additions

                        property NSWorkspace : a reference to current application's NSWorkspace
                        property NSURL : a reference to current application's NSURL

                        set http_url to NSURL's URLWithString:"https://python.org"
                        set browser_url to (NSWorkspace's sharedWorkspace)'s ¬
                            URLForApplicationToOpenURL:http_url
                        set app_path to browser_url's relativePath as text -- NSURL to absolute path '/Applications/Safari.app'

                        tell application app_path
                            activate
                            open location "z7"
                        end tell
                    z&
                   tell application "zH"
                       activate
                       open location "z,"
                   end
                   	osascriptwF>   httphttps)
rf   rg   rh   r   	partitionr   r=   popenwriteclose)
rH   r,   r-   r.   proto_sep_restscriptosapiper   s
   &&&&      r   r+   MacOSXOSAScript.opena  s    II'-++c5)CyyI%%(]]3%7"UEKKM->>.se15F
", -05 1F&&&*ii[ 1''*e , hh{C0GMM&!B6Mr   r   )r   rV   )	r   r   r   r	   rI   r+   r
   rX   __classcell__)r   rZ   s   @@r   r   r   ]  s     	#,	 ,	r   r   r   )objc)c_void_pc_char_pc_ulongc                   *   a  ] tR tRt o RR ltRtV tR# )r   i  c                   \         P                  ! R V4       \        f   R# \        \        P                  n        \        P                  ! R4      p\        P                  ! R4      p\        \        \        \        .\        P                  n
        \        P                  ! VVVP                  R4      ^4      p\        P                  ! R4      p\        P                  ! R4      p\        \        \        .\        P                  n
        \        P                  ! WxV4      p	\        P                  ! R4      p
\        P                  ! R	4      p\        \        .\        P                  n
        \        P                  ! W4      p\        P                  ! R
4      p\        \        \        \        \        .\        P                  n
        R\        P                  n        \        P                  ! WV	RR4       R# )ra   NFs   NSStrings   stringWithCString:encoding:zutf-8s   NSURLs   URLWithString:s   UIApplications   sharedApplications"   openURL:options:completionHandler:T)rf   rg   r	  r
  objc_msgSendrestypeobjc_getClasssel_registerNamer  r  argtypesencode)rH   r,   r-   r.   NSStringconstructor
url_stringNSURLurlWithString_ns_urlUIApplicationsharedApplication
shared_appopenURL_s   &&&&          r   r+   IOSBrowser.open  so   II'-| )1D% ))+6H//0NOK*2Hh)PD&**

7#	J &&x0E!223DEN*2Hh)GD&&&ujIF
 !../?@M $ 5 56J K*2H)=D&**=LJ ,,-RSH(Hh*D& )-D%jFD$Gr   r   NrV   rx   rY   s   @r   r   r     s     4	 4	r   r   c                H    V ^8  d   QhR\         \        ,          R,          /# r8   arg_listNlistr^   )formats   "r   __annotate__r&    s      cT) r   c           
          ^ RI pVP                  RRR7      pVP                  RRR7       VP                  4       pVP                  RR	R
^^ RRR7       VP                  RRR
^^ RRR7       VP	                  V 4      pV# )r   NzOpen URL in a web browser.T)descriptioncolorr,   zURL to open)helpr   r   store_constnew_winzopen new window)r   constr   destr*  z-tz	--new-tabzopen new tab)argparseArgumentParseradd_argumentadd_mutually_exclusive_group
parse_args)r"  r/  parsergrouprW   s   &    r   r3  r3    s    $$0 % F M2//1E	t^M	-  / 
t[	*  , X&DKr   c                H    V ^8  d   QhR\         \        ,          R,          /# r!  r#  )r%  s   "r   r&  r&    s      49t# r   c                 r    \        V 4      p\        VP                  VP                  4       \	        R 4       R# )N)r3  r+   r,   r,  print)r"  rW   s   & r   mainr:    s%    hD4<< 	$Kr   __main__)r   r+   r4   r9   r)   r   rF   rV   )/r=   r   r;   rf   rj   	threading__all__	Exceptionr   RLockr   r   r   r   r   r)   r+   r4   r9   r$   rD   r"   r!   rz   r   r   r   Chromiumr   r   r   r   r   r   ri   r   r   _ios_supportr	  ctypesr
  r  r  r   r3  r:  r   r   r   r   <module>rC     s   
   
  
J	I 	 			 #e # 5F.e D! !&[ 8 &M+ M`k { [  K [ 2$ 2$j; "7AtcUX <<u
 
  <<80+ 0j <<5!665[ 5p( zF r   