0 ; ˆl–äY>””†Ù”â�nãa¸&TţŠ„ ­¼/Äa–ß=¿JJj"Tâ‚fàš¸©‹FÿÃ?÷ a ä”|j`ã@sâdZddlZddlZddlZddlZddlZddlZgd¢ZGdd„deƒZ e  ¡Z iZ da dad=ddœdd „Zd>d d „Zd?d d„Zdd„Zdd„Zddœdd„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd „d eƒZGd!d"„d"eƒZGd#d$„d$eƒZeZGd%d&„d&eƒZGd'd(„d(eƒZ Gd)d*„d*eƒZ!Gd+d,„d,eƒZ"d-d.„Z#d/d0„Z$ej%dd1…d2k�ršGd3d4„d4eƒZ&ej%d5k�rÆGd6d7„d7eƒZ'Gd8d9„d9eƒZ(d:d;„Z)e*ddSq>dS)aDisplay 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. NTF)rrrrr)ÚurlÚnewÚ autoraiserr$r r r rGs $rcCs t|dƒS)zuOpen url in a new window of the default browser. If not possible, then open url in the only browser window. r©r©r&r r r rZsrcCs t|dƒS)z…Open url in a new page ("tab") of the default browser. If not possible, then the behavior becomes equivalent to open_new(). ér)r*r r r rasrcCs¶| ¡d}t |¡sddgStj |¡}zt| ¡}WntyTddgYS0|d}|r®| ¡|jkr®ddl }|  |¡}||_ tj |¡|_t |d||d�d|gSddgS)a¿Attempt 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)rr) rÚshutilÚwhichÚosÚpathÚbasenamerrr"Úcopyrr)r$rÚcmdrr%Z controllerr1r r r r#is"     r#c@sFeZdZdZdgZddd„Zddd „Zd d „Zd d „Ze dd„ƒZ dS)Ú BaseBrowserz3Parent class for all browsers. Do not use directly.rÚcCs||_||_dS©N)rr0©Úselfrr r r Ú__init__�szBaseBrowser.__init__rTc