e^SrSSKrSSKrSSKrSSKrSSKrSSKr/SQr"SS\5r \R"5r 0r Sq SqS6SS.SjjrS6S jrS7S jrS rS rSS.S jr"SS5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\5r\r"SS\5r"SS\5r"S S!\5r"S"S#\5r S$r!S%r"\RFSS&S':Xa "S(S)\5r$\RFS*:Xa "S+S,\5r%\RFS-:Xa"SS.K&J'r' \'(a SS/K(J)r)J*r*J+r+ "S0S1\5r,S2\-\.S-4S3jr/S6S2\-\.S-4S4jjr0\1S5:Xa\0"5 gg)8z?Interfaces for launching and remotely controlling web browsers.N)Erroropenopen_new open_new_tabgetregisterc\rSrSrSrg)rN)__name__ __module__ __qualname____firstlineno____static_attributes__r 0/opt/imh/python3.13/lib/python3.13/webbrowser.pyrrsrrF preferredc,[ [c [5 X/[UR 5'U(d[ (a$US3[ :Xa[R SU5 O[RU5 SSS5 g!,(df  g=f)zRegister a browser connector.Nz.desktopr)_lock _tryorderregister_standard_browsers _browserslower_os_preferred_browserinsertappend)nameklassinstancers rrrsf    & (#("3 $**, ..dV83DH]3]   Q %   T " s A5B Bc[c [ [c [5 SSS5 UbU/nO[nUH|nSU;a<[R"U5nUSS:Xa[ USS5s $[ U5s $[UR5nUSbUSs $UScMrUS"5s $ [S5e!,(df  N=f![a [U5nNVf=f)zCReturn a browser launcher instance appropriate for the environment.N%s&rz!could not locate runnable browser) rrrshlexsplitBackgroundBrowserGenericBrowserrrKeyError _synthesizer)using alternativesbrowsercommands rrr)s  *, w   7?kk'*Gr{c!("66%g.. /#GMMO4qz%qz!'qz|## $ 3 443U& /%g. /sC=C CC+*C+c[c [ [c [5 SSS5 [H'n[U5nUR XU5(dM' g g!,(df  N@=f)aZDisplay url using the default browser. If possible, open url in a location determined by new. - 0: the same browser window (the default). - 1: a new browser window. - 2: a new browser page ("tab"). If possible, autoraise raises the window (the default) or not. If opening the browser succeeds, return True. If there is a problem, return False. NTF)rrrrr)urlnew autoraiserr.s rrrLsT  *,d) <<) , , Us A A(c[US5$)zmOpen url in a new window of the default browser. If not possible, then open url in the only browser window. r%rr1s rrrc Q<rc[US5$)z}Open url in a new page ("tab") of the default browser. If not possible, then the behavior becomes equivalent to open_new(). r5r6s rrrkr7rcUR5Sn[R"U5(dSS/$[RR U5n[ UR5nUSnU(alUR5UR :XaNSSK nURU5nXl [RR U5Ul[USXQS9 SU/$SS/$![a SS/s$f=f)aAttempt to synthesize a controller based on existing controllers. This is useful to create a controller when a user specifies a path to an entry in the BROWSER environment variable -- we can copy a general controller to operate using a specific installation of the desired browser in this way. If we can't create a controller in this way, or if there is no executable for the requested browser, return [None, None]. rNr%)r r) r'shutilwhichospathbasenamerrr*copyrr)r.rcmdrr/ controllerr@s rr+r+ss --/! C <<  d| 77  C DDJJL)Jdjjlj&9&99YYz* ! gg..w7 $Ij!! $< d|sC&&C76C7c>\rSrSrSrS/rS SjrS SjrSrSr Sr g ) BaseBrowserz3Parent class for all browsers. Do not use directly.r"cXlXlgN)rr?selfrs r__init__BaseBrowser.__init__s   rc[erG)NotImplementedErrorrIr1r2r3s rrBaseBrowser.opens!!rc&URUS5$)Nr%r5rIr1s rrBaseBrowser.open_newyya  rc&URUS5$)Nr9r5rQs rrBaseBrowser.open_new_tabrSr)r?rN)rT) r r rr__doc__argsrJrrrrr rrrDrDs = 6D"!!rrDc(\rSrSrSrSrSSjrSrg)r)zOClass for all browsers started with a command and without remote functionality.c[U[5(aXlS/UlOUSUlUSSUl[R R UR5Ulg)Nr"rr%) isinstancestrrrYr=r>r?rHs rrJGenericBrowser.__init__sQ dC IDIQDIQRDI((3 rc[R"SU5 UR/URVs/sHnUR SU5PM sn-n[R SSS:Xa[ R"U5nO[ R"USS9nUR5(+$s snf![a gf=f)Nwebbrowser.openr"winT) close_fdsF) sysauditrrYreplaceplatform subprocessPopenwaitOSErrorrIr1r2r3argcmdlineps rrGenericBrowser.opens #S)99+,0II!7,5S"%T3!7,5!77 ||BQ5($$W-$$W=vvx< !7  sB,AB11 B>=B>)rYr?rNrW)r r rrrXrJrrr rrr)r)s,4 rr)c"\rSrSrSrSSjrSrg)r(zAClass for all browsers which are to be started in the background.c~UR/URVs/sHnURSU5PM sn-n[R"SU5 [R SSS:Xa[ R"U5nO[ R"USSS9nUR5SL$s snf![a gf=f)Nr"rarbrcT)rdstart_new_sessionF) rrYrgrerfrhrirjpollrlrms rrBackgroundBrowser.opens99+,0II!7,5S"%T3!7,5!77 #S) ||BQ5($$W-$$W7;=668t# #!7  sB*AB// B<;B<r NrWr r rrrXrrr rrr(r(s  rr(cL\rSrSrSrSrSrSrSS/rSr Sr Sr S Sjr S S jr S rg) UnixBrowserz=Parent class for all Unix browsers with remote functionality.NFT%actionr"c J/nU(a5UR(a$[U5nURUnU(aU/nUR/U-U-nU(dUR(a[R nOSn[R "USUUR=(a U=(d SUSS9n U(aU RS5n U (+$UR(aU R5cggU R5(+$![Ra gf=f)NTrdstdinstdoutstderrruF) raise_optsintr backgroundriDEVNULLrjredirect_stdoutrkTimeoutExpiredrv) rIrYremoter3r1 raise_optoptroinoutrprcs r_invokeUnixBrowser._invokes dooII//),C E 99+ )D0 T__&&EE   WE%)%9%9%Ce%Kt$)T C  VVAYv __vvxvvx< ,,  s:D D"!D"cn[R"SU5 US:Xa URnONUS:Xa URnO;US:Xa'URc URnOURnO[ SU35eUR Vs/sH%nURSU5RSU5PM' nnUVs/sH oU(dM UPM nnURUSX15nU(d>URVs/sHoURSU5PM nnURUS S 5$gs snfs snfs snf) Nrarr%r9z8Bad 'new' parameter to open(); expected 0, 1, or 2, got r"r|TF) rerf remote_actionremote_action_newwinremote_action_newtabr remote_argsrgrrY)rIr1r2r3actionrnrYsuccesss rrUnixBrowser.open s* #S) !8''F AX..F AX((022224475:; ; ++-+C D#&..y&A+ -#+tst+,,tT9:6:ii@isKKc*iD@<<eU3 3-+As,D(9 D-D-7D2r rGrW)r r rrrXrrrrrrrrrrr rrrzrzs<GJJOd#KM" Hrrzc0\rSrSrSrSS/rSrSrSrSr S r g ) Mozillai'z$Launcher class for Mozilla browsers.r|r"rVz -new-windowz-new-tabTr N r r rrrXrrrrrrr rrrr's%.d#KM(%Jrrc4\rSrSrSrSS/rSS/rSrSrS r S r g ) Epiphanyi1z$Launcher class for Epiphany browser.z-noraiserVr|r"-nz-wTr N) r r rrrXrrrrrrr rrrr1s).b!Jd#KMJrrc0\rSrSrSrSS/rSrSrSrSr Sr g ) Chromei;z)Launcher class for Google Chrome browser.r|r"rV --new-windowTr Nrr rrrr;s%3d#KM)Jrrc0\rSrSrSrSS/rSrSrSrSr Sr g ) OperaiHz!Launcher class for Opera browser.r|r"rVrTr Nrr rrrrHs%+d#KM)Jrrc4\rSrSrSrSS/rSrSrSrSr Sr S r g ) ElinksiRz#Launcher class for Elinks browsers.z-remotezopenURL(%s%action)rVz ,new-windowz,new-tabFr N) r r rrrXrrrrrrrr rrrrRs--23KM(%JOrrc"\rSrSrSrSSjrSrg) Konquerori`zController for the KDE File Manager (kfm, or Konqueror). See the output of ``kfmclient --commands`` for more information on the Konqueror remote-control interface. c [R"SU5 US:XaSnOSn[Rn[R"SXA/SUXUS9nUR 5 g![ a Of=f[R"SS U/SUXUSS 9nUR5cgO![ a Of=f[R"S S U/SUXUSS 9nUR5SL$![ a g f=f)Nrar9newTabopenURL kfmclientT)rdrrr konquerorz--silentr~kfmz-dF)rerfrirrjrkrlrv)rIr1r2r3rdevnullrps rrKonqueror.opengs #S) !8FF$$   +v!;+/w(/AA FFH       +z3!?+/w(/379Avvx     $  %s!3+/w(/379A668t# #  s5A A+*A+/B B*)B*.C C('C(r NrWrxr rrrr`s  +$rrc0\rSrSrSrSS/rSrSrSrSr Sr g ) Edgeiz*Launcher class for Microsoft Edge browser.r|r"rVrTr Nrr rrrrs%4d#KM)Jrrc[R"S5(a[SS[S55 [R"S5(a[SS[/SQ55 [R "SS5R S5nSU;dS[R;a1[R"S 5(a[S S[S 55 S U;dS [R;a5[R"S 5(a[S [[S 55 [R"S 5(a[S S[S 55 SH6n[R"U5(dM [US[U55 M8 [R"S5(a[S[[S55 O5[R"S5(a[S[[S55 [R"S5(a[SS[S55 SH6n[R"U5(dM [US[U55 M8 [R"S5(a[SS[S55 [R"S5(a[SS[S55 gg)Nzxdg-opengio)rrz--r"XDG_CURRENT_DESKTOPrV:GNOMEGNOME_DESKTOP_SESSION_IDz gvfs-openKDEKDE_FULL_SESSIONrz x-www-browser)firefox iceweasel seamonkeyzmozilla-firefoxmozillarrepiphany)z google-chromechromechromiumzchromium-browseroperamicrosoft-edge)r;r<rr(r=getenvr'environrrrrrr) xdg_desktopr.s rregister_X_browsersrs||JT#4Z#@A||E/0KLM))126<)?@&rc/q[RS:XaX[SS[ S55 [SS[ S55 [SS[ S55 [SS[ S55 [RS:Xa[SS[ 5S S 9 [RS :Xa[S S[ S 55 [RSS S:XGa[S[5 [RR[RRSS5S5n[RR[RRSS5S5nSSSSSX4H6n[R"U5(dM [US[ U55 M8 [R"S5(a[SS[S55 GO[RS:wa[RRS5(d$[RRS5(a^SR!5n["R$"U["R&S9nUR)5R+5nUq[75 [RRS5(a[R"S5(a[SS[9S55 [R"S 5(a[S S[9S 55 [R"S!5(a[S!S[;S!55 [R"S"5(a[S"S[9S"55 [R"S#5(a[S#S[9S#55 S$[R;ay[RS$R![R<5nUR?5 UH2nUS%:wdM [AUS S 9nUS&bM[US[9U5S S 9 M4 gg![.["R0[2[44a GNf=f)'NdarwinMacOSXdefaultrrsafariios iosbrowserTr serenityosBrowserrbrczwindows-defaultzPROGRAMFILES(x86)zC:\Program Files (x86)z%Microsoft\Edge\Application\msedge.exe PROGRAMFILESzC:\Program FilesrrrzMicrosoftEdge.exerDISPLAYWAYLAND_DISPLAYz$xdg-settings get default-web-browser)rTERMz www-browserlinkselinkslynxw3mBROWSERrVr%)!rrerhrMacOSXOSAScript IOSBrowserr(WindowsDefaultr=r>joinrrr;r<rr'ri check_outputrdecodestriprFileNotFoundErrorCalledProcessErrorPermissionErrorNotADirectoryErrorrr)rpathsepreverser+)edge64edge32r.rA raw_resultresult userchoicesros rrrs=I ||x4!;<4!:;D/)"<=4!:; ||utZ\TB |||#D"3I">? ||BQ5 "N3bjjnn-@B[\HJbjjnn^=PQHJ!; 81G||G$$$(9'(BC1 <<+ , , %tT2E-F G <<8 # )B)BbjjnnUfFgFg /<BBD'44SASAST #**,224 )/%  ! ::>>& ! !||M**n].KL||G$$$w(?@||H%%4)9:||F##~f'=>||E""nU&;<BJJjj+11"**= #G"}!'T:q6>WdN7,CtT # 9&z'D'D#%79  s7AP;;$Q#"Q#rbrcc\rSrSrSSjrSrg)ri@c[R"SU5 [R"U5 g![a gf=f)NraTF)rerfr= startfilerlrNs rrWindowsDefault.openAs= II' -  S!    s 0 ==r NrWr r rrrrr rrrr@s rrrc6^\rSrSrSU4SjjrSSjrSrU=r$)riQc$>[TU]U5 grG)superrJ)rIr __class__s rrJMacOSXOSAScript.__init__Rs G T "rc.[R"SU5 URSS5nURS:XaSUS3nOSURSUS3n[R "S S 5nUcg UR U5 UR5nU(+$) Nra"z%22rzopen location "z& tell application "zH" activate open location "z," end osascriptwF)rerfrgrr=popenwriteclose)rIr1r2r3scriptosapipers rrMacOSXOSAScript.openUs II' -++c5)CyyI%*3%q1&&*ii[1''*e,hh{C0G MM& !B6Mrr )rrW)r r rrrJrr __classcell__)rs@rrrQs #  rrr)objc)c_void_pc_char_pc_ulongc\rSrSrSSjrSrg)risc[R"SU5 [cg[[Rl[R "S5n[R"S5n[[[[/[Rl [R"UUURS5S5n[R "S5n[R"S5n[[[/[Rl [R"XxU5n [R "S 5n [R"S 5n [[/[Rl [R"X5n [R"S 5n [[[[[/[Rl S[Rl[R"XU SS5 g ) NraFsNSStringsstringWithCString:encoding:zutf-8sNSURLsURLWithString:s UIApplicationssharedApplications"openURL:options:completionHandler:T) rerfrr objc_msgSendrestype objc_getClasssel_registerNamerrargtypesencode)rIr1r2r3NSString constructor url_stringNSURLurlWithString_ns_url UIApplicationsharedApplication shared_appopenURL_s rrIOSBrowser.opentso II' -|)1D   % ))+6H//0NOK*2Hh)PD   &** 7# J&&x0E!223DEN*2Hh)GD   &&&ujIF !../?@M $ 5 56J K *2H)=D   &**=LJ,,-RSH(Hh*D   &)-D   %   jFD$ Grr NrWrr rrrrss4 rrarg_listc SSKnURSS9nURSSS9 UR5nURSSS S SS S S 9 URSSS SSS SS 9 UR U5nU$)NrzOpen URL in a web browser.) descriptionr1z URL to open)helprr store_constr%new_winzopen new window)rconstrdestrz-tz --new-tabr9z open new tab)argparseArgumentParser add_argumentadd_mutually_exclusive_group parse_args)rrparsergrouprYs rr#r#s  $ $1M $ NF M2  / / 1E t^M -/ t[ *,   X &D Krcp[U5n[URUR5 [ S5 g)N)r#rr1rprint)rrYs rmainr)s% h D4<<  $Kr__main__rGrW)2rXr=r&r;reri threading__all__ ExceptionrRLockrrrrrrrrrr+rDr)r(rzrrrChromiumrrrrrrrhrr _ios_supportrctypesrrrrlistr^r#r)r r rrr3sE  J I      #e # 5F.',D!!&[8&M+M`k{[ K [ 2$ 2$j;"7AtVU~<<u   <<8+8<<5! 665[5pcT)$49t# zFr