§ \�dôãó —ddlZedkrejdejd< ddlTn&#e$redej¬¦«ed¦«‚wxYwejdkr9 ddl Z dZ e j d ¦«  e ¦«n#ee ef$rYnwxYwdd lmZdd lmZddlZddlZddlZddlZdd lmZddlZddlZddlZdd lmZddlZddlZddlZddlZddl m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl&m(Z(ddl)m*Z*m+Z+ddl,m-Z-ddl.m/Z/ddl&m0Z0ddl&m1Z1ddl2m3Z3m4Z4m5Z5ddl6m7Z7da8dZ9dZ: dZ;e;e<_;e;e=_;n #e>$rYnwxYweja? d5d„Z@daAd„ZBeBd¦«dejCfd „ZDeDe_CGd!„d"e*¦«ZEGd#„d$e-¦«ZFGd%„d&e!¦«ZGGd'„d(e7¦«ZHGd)„d*e%¦«ZIGd+„d,e1jJ¦«ZKd-„ZLGd.„d/e¦«ZMGd0„d1e/¦«ZNd2„ZOd3ZPd4„ZQedkr eQ¦«eBd¦«dS)6éNÚ__main__zidlelib.pyshell)Ú*zJ** IDLE can't import Tkinter. Your Python may not be configured for Tk. **©ÚfileéÚwin32Úshcore)Ú messagebox)ÚInteractiveInterpreter)Úpython_version)Ú TextWrapper)ÚColorDelegator)ÚidleConf)Ú Delegator©Údebugger)Ú debugger_r)Ú EditorWindowÚ fixwordbreaks)ÚFileList)Ú OutputWindow)Úreplace)Úrpc)Úidle_formatwarningÚ StdInputFileÚ StdOutputFile)Ú UndoDelegatorFz 127.0.0.1zCtrl-D (end-of-file)c ó—|€t} | t|||||¬¦«¦«| d¦«dS#ttf$rYdSwxYw)aShow Idle-format warning (after replacing warnings.showwarning). The differences are the formatter called, the file=None replacement, which can be None, the capture of the consequence AttributeError, and the output of a hard-coded prompt. N)Úlinez>>> )Úwarning_streamÚwriterÚAttributeErrorÚOSError)ÚmessageÚcategoryÚfilenameÚlinenorrs ú ..\python\lib\idlelib\pyshell.pyÚidle_showwarningr)Is‹€ð €|Ýˆð Ø � Š Õ%ؘ 8¨V¸$ð@ñ@ô@ñ Aô Að Aà � Š �6ÑÔÐÐÐøÝ �GÐ $ð ð ð Ø ˆˆð øøøs‹Replace warning.showwarning with idle_showwarning, or reverse.N)Ú_warnings_showwarningÚwarningsÚ showwarningr))Úcaptures r(Úcapture_warningsr/\sU€ðð)Ý Ð (Ý$,Ô$8Ð !Ý#3�HÔ Ð Ð ð )Ð (õ !Ð ,Ý#8�HÔ Ø$(Ð !Ð !Ð !ð -Ð ,óTcóè—tj}i}t|¦«D]3}|dd…|dd…zdkr| |¦«||<Œ4||¦«| |¦«dS)aoExtend linecache.checkcache to preserve the entries Rather than repeating the linecache code, patch it to save the entries, call the original linecache.checkcache() (skipping them), and then restore the saved entries. orig_checkcache is bound at definition time to the original method, allowing it to be patched. Nréÿÿÿÿú<>)Ú linecacheÚcacheÚlistÚpopÚupdate)r&Úorig_checkcacher5ÚsaveÚkeys r(Úextended_linecache_checkcacher<ks�€õ ŒO€EØ €DÝ�E‰{Œ{ð'ð'ˆØ ˆr�ˆrŒ7�S˜˜˜”XÑ  Ò %Ð %ØŸ š  #™œˆD�‰IøØ€O�HÑÔÐØ ‡L‚L�ÑÔÐÐÐr0cób—eZdZdZd„Zgd¢Zdd„Zd„Zdd„Zdd „Z d „Z d „Z d „Z d „Z d„Zd„ZdS)ÚPyShellEditorWindowz6Regular text edit window in IDLE, supports breakpointscó—g|_tj|g|¢RŽ|j d|j¦«|j d|j¦«|j d|jj¦«tj   tj d¦«|_|jj|fd„}|j |¦«|jjr| ¦«| ¦«dS)Nú<>ú<>z<>zbreakpoints.lstcóB—| ¦«|¦«dS©N)Úrestore_file_breaks)Úold_hookÚselfs r(Úfilename_changed_hookz;PyShellEditorWindow.__init__..filename_changed_hook�s#€à × $Ò $Ñ &Ô &Ð &Ø ˆH‰JŒJˆJˆJˆJr0)Ú breakpointsrÚ__init__ÚtextÚbindÚset_breakpoint_hereÚclear_breakpoint_hereÚflistÚ open_shellÚosÚpathÚjoinrÚuserdirÚbreakpointPathÚioÚfilename_change_hookÚset_filename_change_hookr&rDÚcolor_breakpoint_text)rFÚargsrGs r(rIzPyShellEditorWindow.__init__…s€ØˆÔÝÔ˜dÐ* TÐ*Ð*Ð*Ð*Ø Œ �ŠÐ0°$Ô2JÑKÔKÐKØ Œ �ŠÐ2°DÔ4NÑOÔOÐOØ Œ �ŠÐ.°´ Ô0EÑFÔFÐFõ!œgŸlšlÝÔ Ð"3ñ5ô5ˆÔð,0¬7Ô+GØ'+ð ð ð ð ð Œ×(Ò(Ð)>Ñ?Ô?Ð?Ø Œ7Ô ð 'Ø × $Ò $Ñ &Ô &Ð &Ø ×"Ò"Ñ$Ô$Ð$Ð$Ð$r0))ÚCutz<>Úrmenu_check_cut)ÚCopyz<>Úrmenu_check_copy)ÚPastez <>Úrmenu_check_paste)NNN)zSet Breakpointr@N)zClear BreakpointrANTcó®—|j€dS|r)tj¦«}tj|d¦«}ndddœ}|j d|¦«dS)z,Turn colorizing of breakpoint text on or offNÚbreakÚ)Ú foregroundÚ backgroundÚBREAK)rUrÚ CurrentThemeÚ GetHighlightrJÚ tag_config)rFÚcolorÚthemeÚcfgs r(rXz)PyShellEditorWindow.color_breakpoint_text¢sc€à Œ7ˆ?à ˆFØ ð 7ÝÔ)Ñ+Ô+ˆEÝÔ'¨¨wÑ7Ô7ˆCˆCà!#°2Ð6Ð6ˆCØ Œ ×Ò˜W cÑ*Ô*Ð*Ð*Ð*r0cób—|j}|jj}| dd|zd|dzz¦« |j |¦«n*#t $r|j |¦«YnwxYw |jj j j }|  ||¦«dS#YdSxYw)Nrez%d.0r) rJrUr&Útag_addrHÚindexÚ ValueErrorÚappendrNÚpyshellÚinterprrL)rFr'rJr&Údebugs r(Úset_breakpointz"PyShellEditorWindow.set_breakpoint®s΀ØŒyˆØ”7Ô#ˆØ � Š �W˜f v™o¨v¸À¹Ñ/BÑCÔCÐCð ,Ø Ô × "Ò " 6Ñ *Ô *Ð *Ð *øÝð ,ð ,ð ,Ø Ô × #Ò # FÑ +Ô +Ð +Ð +Ð +ð ,øøøð Ø”JÔ&Ô-Ô6ˆEØ × %Ò % h°Ñ 7Ô 7Ð 7Ð 7Ð 7øð Ø ˆDˆDøøøsµAÁ$A7Á6A7Á;,B)Â)B.Ncóä—|j}|jj}|s| ¦«dSt t | d¦«¦«¦«}| |¦«dS)NÚinsert)rJrUr&ÚbellÚintÚfloatrnrt)rFÚeventrJr&r's r(rLz'PyShellEditorWindow.set_breakpoint_here¼sh€ØŒyˆØ”7Ô#ˆØð Ø �IŠI‰KŒKˆKØ ˆFÝ•U˜4Ÿ:š: hÑ/Ô/Ñ0Ô0Ñ1Ô1ˆØ ×Ò˜FÑ#Ô#Ð#Ð#Ð#r0có˜—|j}|jj}|s| ¦«dSt t | d¦«¦«¦«} |j |¦«n#YnxYw|  ddd¦« |j j j j }| ||¦«dS#YdSxYw)Nrvreúinsert linestartzinsert lineend +1char)rJrUr&rwrxryrnrHÚremoveÚ tag_removerNrqrrrrM)rFrzrJr&r'rss r(rMz)PyShellEditorWindow.clear_breakpoint_hereÅsڀ،yˆØ”7Ô#ˆØð Ø �IŠI‰KŒKˆKØ ˆFÝ•U˜4Ÿ:š: hÑ/Ô/Ñ0Ô0Ñ1Ô1ˆð Ø Ô × #Ò # FÑ +Ô +Ð +Ð +øð Ø ˆDøøøØ �Š˜Ð!3Ø/ñ 1ô 1ð 1ð Ø”JÔ&Ô-Ô6ˆEØ × 'Ò '¨°&Ñ 9Ô 9Ð 9Ð 9Ð 9øð Ø ˆDˆDøøøsÁA7Á7A;Â,CÃC có—|jr„|j}|jj}|s| ¦«dSg|_| ddt ¦« |jjj j }|  |¦«dS#YdSxYwdS)Nreú1.0) rHrJrUr&rwr~ÚENDrNrqrrrÚclear_file_breaks)rFrJr&rss r(r‚z%PyShellEditorWindow.clear_file_breaksØsŸ€Ø Ô ð Ø”9ˆDØ”wÔ'ˆHØð Ø— ’ ‘ ” � Ø�Ø!ˆDÔ Ø �OŠO˜G U­CÑ 0Ô 0Ð 0ð Øœ Ô*Ô1Ô:�Ø×'Ò'¨Ñ1Ô1Ð1Ð1Ð1øð Ø��øøøð ð s Á+BÂB cóþ—|j}|jj} t|j¦«5}| ¦«}ddd¦«n #1swxYwYn#t $rg}YnwxYw t|jd¦«5}|D]/}| |dz¦«s| |¦«Œ0|  ¦«|j}|r+| |dzt|¦«zdz¦«ddd¦«dS#1swxYwYdS#t $r_}t|j dd¦«s>d|j _ tjdd t|¦«z|j¬ ¦«Yd}~dSYd}~dSd}~wwxYw) z#Save breakpoints when file is savedNÚwú=ú Úbreakpoint_error_displayedFTz IDLE Errorz$Unable to update breakpoint list: %s)Útitler$Úparent)rHrUr&ÚopenrTÚ readlinesr#Ú startswithr!Úupdate_breakpointsÚstrÚgetattrÚrootr‡r Ú showerrorrJ)rFÚbreaksr&ÚfpÚlinesÚnew_filerÚerrs r(Ústore_file_breaksz%PyShellEditorWindow.store_file_breaksçso€ð$Ô!ˆØ”7Ô#ˆð Ý�dÔ)Ñ*Ô*ð '¨bØŸ š ™œ�ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'øøåð ð ð ØˆEˆEˆEð øøøð &Ý�dÔ)¨3Ñ/Ô/ð H°8Ø!ð-ð-�DØŸ?š?¨8°c©>Ñ:Ô:ð-Ø Ÿš tÑ,Ô,Ð,øØ×'Ò'Ñ)Ô)Ð)ØÔ)�ØðHØ—N’N 8¨c¡>µC¸±K´KÑ#?À$Ñ#FÑGÔGÐGð Hð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Høõð &ð &ð &ݘ4œ9Ð&BÀEÑJÔJð &Ø7;�” Ô4ÝÔ$¨<ØCݘc™(œ(ñ#àœ9ð&ñ&ô&ð&ð&ð&ð&ð&ð&ð&ð &ð &ð &ð &ð &ð &øøøøð &øøøsq•A©A ¾ AÁ AÁAÁAÁAÁ A%Á$A%Á)DÁ>A;DÃ9 DÄD Ä DÄ D ÄDÄ E<ÄAE7Å7E<cóò—|j ¦«|j€dS|jj}|€dStj |j¦«ržt|j¦«5}|  ¦«}ddd¦«n #1swxYwY|D]]}|  |dz¦«rAt|t|¦«dzd…¦«}|D]}|  |¦«ŒŒ\dSdS)Nr…r)rJr8rUr&rPrQÚisfilerTrŠr‹rŒÚevalÚlenrt)rFr&r“r”rÚbreakpoint_linenumbersÚbreakpoint_linenumbers r(rDz'PyShellEditorWindow.restore_file_breakssQ€Ø Œ ×ÒÑÔÐØ Œ7ˆ?à ˆFØ”7Ô#ˆØ Ð Ø ˆFÝ Œ7�>Š>˜$Ô-Ñ .Ô .ð CÝ�dÔ)Ñ*Ô*ð '¨bØŸ š ™œ�ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'àð Cð C�Ø—?’? 8¨c¡>Ñ2Ô2ðCÝ-1°$µs¸8±}´}ÀQ±Ð7GÐ7GÔ2HÑ-IÔ-IÐ*Ø1GðCðCÐ-Ø×+Ò+Ð,AÑBÔBÐBÐBøð Cð Cð Cð CsÁ+B  BÂBcóv—|j}| d¦«}| |¦«}||_dS)z3Retrieves all the breakpoints in the current windowreN)rJÚ tag_rangesÚranges_to_linenumbersrH)rFrJÚrangesÚlinenumber_lists r(r�z&PyShellEditorWindow.update_breakpoints"s;€àŒyˆØ—’ Ñ)Ô)ˆØ×4Ò4°VÑ<Ô<ˆØ*ˆÔÐÐr0có:—g}tdt|¦«d¦«D]y}tt||j¦«¦«}tt||dzj¦«¦«}||kr | |¦«|dz }||k° Œz|S)Nrér)Úranger›rxryÚstringrp)rFr¡r”rnr'Úends r(r z)PyShellEditorWindow.ranges_to_linenumbers)s›€ØˆÝ˜1�c &™kœk¨1Ñ-Ô-ð ð ˆEÝ�˜v eœ}Ô3Ñ4Ô4Ñ5Ô5ˆFÝ•e˜F 5¨¡7œOÔ2Ñ3Ô3Ñ4Ô4ˆCؘ3’,�,Ø— ’ ˜VÑ$Ô$Ð$ؘ!‘ �ð˜3’,�,øðˆ r0cóV—| ¦«tj|¦«dS)z7Extend base method - clear breaks when module is closedN)r‚rÚ_close©rFs r(r©zPyShellEditorWindow._close:s+€à ×ÒÑ Ô Ð ÝÔ˜DÑ!Ô!Ð!Ð!Ð!r0)TrC)Ú__name__Ú __module__Ú __qualname__Ú__doc__rIÚ rmenu_specsrXrtrLrMr‚r—rDr�r r©©r0r(r>r>‚s €€€Ø<Ð<ð%ð%ð%ð(ðð€Kð +ð +ð +ð +ð ð ð ð$ð$ð$ð$ððððð& ð ð ð(&ð(&ð(&ðTCðCðCð"+ð+ð+ðððð""ð"ð"ð"ð"r0r>có"—eZdZdZeZdZdd„ZdS)ÚPyShellFileListz8Extend base class: IDLE supports a shell and breakpointsNcóÈ—|jr|jj ¦«n6t|¦«|_|jr|j ¦«sdS|jSrC)rqÚtopÚwakeupÚPyShellÚbegin©rFrzs r(rOzPyShellFileList.open_shellIs`€Ø Œ<ð Ø ŒLÔ × #Ò #Ñ %Ô %Ð %Ð %å" 4™=œ=ˆDŒLØŒ|ð Ø”|×)Ò)Ñ+Ô+ð Ø˜4ØŒ|Ðr0rC)r«r¬r­r®r>rrqrOr°r0r(r²r²@s:€€€€€Ø>Ð>ð'€Là€Gððððððr0r²có—eZdZdZd„Zd„ZdS)ÚModifiedColorDelegatorz8Extend base class: colorizer for the shell window itselfcóŠ—| ddd¦«| ddd¦«tj|¦«dS)NÚTODOr€ÚiomarkÚSYNC)r~rmrÚrecolorize_mainrªs r(r¿z&ModifiedColorDelegator.recolorize_mainVsE€Ø �Š˜  xÑ0Ô0Ð0Ø � Š �V˜U HÑ-Ô-Ð-ÝÔ& tÑ,Ô,Ð,Ð,Ð,r0cóH—|jD]}| |dd¦«ŒdS)Nr½r§)Útagdefsr~)rFÚtags r(Ú removecolorsz#ModifiedColorDelegator.removecolors[s6€à”<ð 2ð 2ˆCØ �OŠO˜C ¨5Ñ 1Ô 1Ð 1Ð 1ð 2ð 2r0N)r«r¬r­r®r¿rÃr°r0r(rºrºTs8€€€€€Ø>Ð>ð-ð-ð-ð 2ð2ð2ð2ð2r0rºcó2‡—eZdZdZdd„Zdd„Zˆfd„ZˆxZS)ÚModifiedUndoDelegatorz;Extend base class: forbid insert/delete before the I/O markNcóÆ— |j |dd¦«r|j ¦«dSn#t$rYnwxYwt j||||¦«dS©Núz2ModifiedUndoDelegator.undo_event..|sø€  ¨U°E¸7Ñ!CÔ!C€r0)rÉrvÚsuperÚ undo_event)rFrzrØÚ __class__s @€r(rÛz ModifiedUndoDelegator.undo_eventusiøø€ð ”mÔ*ˆ à CÐ CÐ CÐ Cð Œ Ôð /Ý ‰GŒG× Ò ˜uÑ %Ô %Ð %à#.ˆDŒMÔ Ð Ð ø ;ˆDŒMÔ Ð .Ð .Ð .Ð .s Ÿ!AÁArC)r«r¬r­r®rvrÑrÛÚ __classcell__©rÜs@r(rÅrÅasfø€€€€€ØAÐAð7ð7ð7ð7ð3ð3ð3ð3ð /ð /ð /ð /ð /ð /ð /ð /ð /r0rÅcó—eZdZdZdd„ZdS)ÚUserInputTaggingDelegatorz.Delegator used to tag user input with "stdin".NcóF—|€d}|j |||¦«dSrÖ)rÉrvrÌs r(rvz UserInputTaggingDelegator.insert…s,€Ø ˆ<؈DØ Œ ×Ò˜U E¨4Ñ0Ô0Ð0Ð0Ð0r0rC)r«r¬r­r®rvr°r0r(ràràƒs.€€€€€Ø8Ð8ð1ð1ð1ð1ð1ð1r0ràcó—eZdZd„ZdS)Ú MyRPCClientcó—t‚)z0Override the base class - just re-raise EOFError)ÚEOFErrorrªs r(Ú handle_EOFzMyRPCClient.handle_EOF�s€åˆr0N)r«r¬r­rær°r0r(rãrã‹s#€€€€€ðððððr0rãcó´—d|pd›d�}|t|¦«kr4t|t|¦«z d¦«\}}||zdz›|›|dz›�S|dd…S)z¹Return width long restart line formatted with filename. Fill line with balanced '='s, with any extras and at least one at the beginning. Do not end with a trailing space. z = RESTART: ÚShellz =r¤r…Néþÿÿÿ)r›Údivmod)Úwidthr&rÂÚdivÚmods r(Ú restart_linerî‘sv€ð 0˜Ð+ GÐ /Ð /Ð /€CØ •�C‘”ÒÐݘ5¥# c¡(¤(™?¨QÑ/Ô/‰ˆˆSØ�s‘7˜C‘-Ð/ Ð/ c¨#¡gÐ/Ð/Ð/à�3�B�3Œxˆr0cóÜ—eZdZd„ZdZdZdZd„Zd„Zd„Z d"d„Z d „Z d „Z d „Z d „Zd#d „ZdZd„ZdZd„Zd„Zd„Zd„ZdZd„Zd$d„Zd„Zd„Zd„Zd$d„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d „Z$d!„Z%dS)%ÚModifiedInterpretercóΗ||_tjdj}t j||¬¦«d|_d|_t|_ |j j j |_ dS)Nr)ÚlocalsF)Ú tkconsoleÚsysÚmodulesÚ__dict__r rIÚ restartingÚsubprocess_arglistÚPORTÚportÚcompileÚcompilerÚflagsÚoriginal_compiler_flags)rFróròs r(rIzModifiedInterpreter.__init__¡sZ€Ø"ˆŒÝ”˜ZÔ(Ô1ˆÝÔ'¨°VÐ<Ñ<Ô<Ð<؈ŒØ"&ˆÔ݈Œ Ø'+¤|Ô'<Ô'BˆÔ$Ð$Ð$r0Ncó‚—|j€| ¦«|_tj|j¦«|_dSrC)røÚbuild_subprocess_arglistÚ subprocessÚPopenÚ rpcsubprocrªs r(Úspawn_subprocessz$ModifiedInterpreter.spawn_subprocess®s8€Ø Ô "Ð *Ø&*×&CÒ&CÑ&EÔ&EˆDÔ #Ý$Ô*¨4Ô+BÑCÔCˆŒˆˆr0cóæ—|jdks Jd¦«‚d„tjD¦«}tjddddd¬ ¦«}d |›d �}tjg|zd |t |j¦«gzS) Nrz/Socket should have been assigned a port number.có—g|]}d|z‘ŒS)z-Wr°)Ú.0Úss r(ú z@ModifiedInterpreter.build_subprocess_arglist..¶s€Ð /Ð /Ð /˜!ˆT�A‰XÐ /Ð /Ð /r0ÚmainÚGeneralzdelete-exitfuncFÚbool)ÚdefaultÚtypez#__import__('idlelib.run').run.main(ú)ú-c)rúrôÚ warnoptionsrÚ GetOptionÚ executablerŽ)rFr„Ú del_exitfÚcommands r(rz,ModifiedInterpreter.build_subprocess_arglist³sŒ€Ø” ˜1’ � � Ø =ñ” � à /Ð /�sœÐ /Ñ /Ô /ˆõÔ& v¨yÐ:KØ/4¸6ðCñCôCˆ àF¸ ÐFÐFÐFˆÝ”Р!Ñ# t¨Wµc¸$¼)±n´nÐ&EÑEÐEr0cóÚ—t|jf}td¦«D]<}tj|¦« t |¦«|_n&#t$rYŒ9wxYw| ¦«dS|jj   ¦«d|_tdkr5|jj   tjtjd¦«| ¦«|jj  d¦« |j ¦«n%#t&$r| ¦«YdSwxYw|j d|j¦«|j d|jj¦«|j d|jj¦«|j d|jj¦«|j d |jj¦«|j d t6¦«|j d |¦«| d ¬ ¦«| ¦«|jS)Nérré Úconsoler×ÚstdoutÚstderrrNr4rrT©Úwith_cwd)ÚHOSTrúr¥ÚtimeÚsleeprãÚrpccltr#Údisplay_port_binding_errorÚlistening_sockÚ getsocknamerùÚ setsockoptÚsocketÚ SOL_SOCKETÚ SO_REUSEADDRrÚ settimeoutÚacceptÚ TimeoutErrorÚdisplay_no_subprocess_errorÚregisterrór×rrrNr4Ú transfer_pathÚpoll_subprocess)rFÚaddrÚis r(Ústart_subprocessz$ModifiedInterpreter.start_subprocess¿sE€Ý�d”iÐ ˆå�q‘”ð ð ˆAÝ ŒJ�q‰MŒMˆMð Ý)¨$Ñ/Ô/�” Ø�øÝð ð ð Ø�ð øøøð × +Ò +Ñ -Ô -Ð -Ø�4à”KÔ.×:Ò:Ñ<Ô<¸QÔ?ˆŒ å �1Š9ˆ9ð ŒKÔ &× 1Ò 1µ&Ô2CÝ+1Ô+>Àñ Cô Cð Cà ×ÒÑÔÐð Œ Ô"×-Ò-¨bÑ1Ô1Ð1ð Ø ŒK× Ò Ñ Ô Ð Ð øÝð ð ð Ø × ,Ò ,Ñ .Ô .Ð .Ø�4�4ð øøøð Œ ×Ò˜Y¨¬Ñ7Ô7Ð7Ø Œ ×Ò˜W d¤nÔ&:Ñ;Ô;Ð;Ø Œ ×Ò˜X t¤~Ô'<Ñ=Ô=Ð=Ø Œ ×Ò˜X t¤~Ô'<Ñ=Ô=Ð=Ø Œ ×Ò˜W d¤nÔ&:Ñ;Ô;Ð;Ø Œ ×Ò˜[­)Ñ4Ô4Ð4Ø Œ ×Ò˜X tÑ,Ô,Ð,Ø ×Ò DÐÑ)Ô)Ð)Ø ×ÒÑÔÐØŒ{Ðs#µA Á AÁAÄD(Ä(E Å E Frbcó —|jr|jSd|_| ¦«}|r" tj|j¦«n#YnxYw|j ¦«| ¦«|j}|j}d|_|  ¦« |j  ¦«n%#t$r|  ¦«YdSwxYw|  |¬¦«| ¦«|j dd¦«| d¦«| t%|j|¦«¦«|j dd¦«|j dd¦«|s| ¦«|r-tj|j¦«| ¦«|j|jj_d|_|jS) NTFrr½úend-1cr†ÚrestartÚleft)r÷r!Ú getdebuggerrÚclose_subprocess_debuggerÚcloseÚterminate_subprocessróÚ executingrr*r+r,r.Ú stop_readlinerJrÑr!rîrëÚmark_setÚ mark_gravityÚ showpromptÚrestart_subprocess_debuggerÚload_breakpointsrþrûrürý)rFrr&rsrÚ was_executings r(Úrestart_subprocessz&ModifiedInterpreter.restart_subprocessês€Ø Œ?ð Ø”;Р؈Œà× Ò Ñ"Ô"ˆØ ð ð åÔ4°T´[ÑAÔAÐAÐAøð Ø�øøøà Œ ×ÒÑÔÐØ ×!Ò!Ñ#Ô#Ð#Ø”.ˆØÔ)ˆ Ø!ˆÔØ ×ÒÑÔÐð Ø ŒK× Ò Ñ Ô Ð Ð øÝð ð ð Ø × ,Ò ,Ñ .Ô .Ð .Ø�4�4ð øøøð ×Ò HÐÑ-Ô-Ð-Ø×ÒÑÔÐàŒ ×Ò˜H hÑ/Ô/Ð/Ø� Š �dÑÔÐØ� Š •l 7¤=°(Ñ;Ô;Ñ<Ô<Ð<ØŒ ×Ò˜i¨Ñ2Ô2Ð2ØŒ ×!Ò! )¨VÑ4Ô4Ð4Øð !Ø × Ò Ñ Ô Ð à ð %å Ô 2°4´;Ñ ?Ô ?Ð ?à × "Ò "Ñ $Ô $Ð $Ø&*Ô&BˆŒ ÔÔ#؈ŒØŒ{Ðs­AÁA Â%B?Â?C!à C!có@—|j dddi¦«dS)NÚexecÚinterrupt_the_serverr°)r!Ú remotecallrªs r(Ú__request_interruptz'ModifiedInterpreter.__request_interrupts%€Ø Œ ×Ò˜vÐ'=¸rÀ2ÑFÔFÐFÐFÐFr0có^—tj|j¬¦« ¦«dS)N)Útarget)Ú threadingÚThreadÚ'_ModifiedInterpreter__request_interruptÚstartrªs r(Úinterrupt_subprocessz(ModifiedInterpreter.interrupt_subprocesss+€ÝÔ Ô 8Ð9Ñ9Ô9×?Ò?ÑAÔAÐAÐAÐAr0có`—|j�$|jj |j¦« |jj ¦«n#t$rYnwxYw |j ¦«n#t$rYnwxYw| ¦«d|j_ d|_dS)NF) Ú_afteridrórJÚ after_cancelr!r#r9r"r:r;rªs r(Úkill_subprocessz#ModifiedInterpreter.kill_subprocesssÇ€Ø Œ=Ð $Ø ŒNÔ × ,Ò ,¨T¬]Ñ ;Ô ;Ð ;ð Ø ŒKÔ &× ,Ò ,Ñ .Ô .Ð .Ð .øÝð ð ð Ø ˆDð øøøð Ø ŒK× Ò Ñ Ô Ð Ð øÝð ð ð Ø ˆDð øøøà ×!Ò!Ñ#Ô#Ð#Ø#(ˆŒÔ ؈Œ ˆ ˆ s#­A Á AÁAÁA7Á7 BÂBcó²— |j ¦« |j ¦«dS#t$rYdSwxYw#t$rYdSwxYw)z"Make sure subprocess is terminatedN)rÚkillÚwaitr#rªs r(r:z(ModifiedInterpreter.terminate_subprocess+s€€ð Ø ŒO× Ò Ñ "Ô "Ð "ð  Ø”×$Ò$Ñ&Ô&Ð&Ð&Ð&øÝð ð ð Ø��ð øøøøõ ð ð ð à ˆFˆFð øøøs ‚Aœ7· AÁAÁ AÁAcó¸—|r#dg}| tj¦«n tj}| d |¦«¦«dS)NrbzTif 1: import sys as _sys _sys.path = {!r} del _sys )ÚextendrôrQÚ runcommandÚformat)rFrrQs r(r.z!ModifiedInterpreter.transfer_path8sa€Ø ð Ø�4ˆDØ �KŠK�œÑ !Ô !Ð !Ð !å”8ˆDà �Šð÷Šf�T‰lŒlñ  ô ð ð ð r0có@—|j}|€dS | |jd¬¦«}nB#ttt f$r(|jjrYdSd}| ¦«YnwxYw|rî|j  ¦«d|_|\}}|jj }|dkr!|�tt|¦«|¬¦«nk|dkr/|j  d¦«r| ¦«n6|dkr0d}t||tj¬¦«t|||¬¦« |j ¦«n#t$$rYnwxYw|jjs6|jj |jj|j¦«|_dSdS) Ngš™™™™™©?)rVÚOKrÚ EXCEPTIONú<>ÚERRORz/pyshell.ModifiedInterpreter: Subprocess ERROR: )r!Ú pollresponseÚ active_seqrår#ÚKeyboardInterruptróÚclosingrCÚ resetoutputrÚprintÚreprÚgetvarÚremote_stack_viewerrôÚ __stderr__Ú endexecutingr"rJÚafterÚ pollintervalr/rQ)rFÚcltÚresponseÚhowÚwhatrÚerrmsgs r(r/z#ModifiedInterpreter.poll_subprocessGsã€ØŒkˆØ ˆ;Ø ˆFð &Ø×'Ò'¨¬¸dÐ'ÑCÔCˆHˆHøÝ�'Õ#4Ð5ð &ð &ð &ðŒ~Ô%ð Ø��؈HØ × #Ò #Ñ %Ô %Ð %Ð %Ð %ð  &øøøð ð Ø ŒN× &Ò &Ñ (Ô (Ð (Ø"ˆDŒOØ ‰IˆC�Ø”nÔ,ˆGØ�dŠ{ˆ{ØÐ#Ý�$˜t™*œ*¨7Ð3Ñ3Ô3Ð3øØ˜ Ò#Ð#Ø”>×(Ò(Ð)FÑGÔGð/Ø×,Ò,Ñ.Ô.Ð.øØ˜’�ØK�Ý�f˜d­¬Ð8Ñ8Ô8Ð8Ý�f˜d¨Ð1Ñ1Ô1Ð1ð Ø”×+Ò+Ñ-Ô-Ð-Ð-øÝ!ð ð ð Ø�ð øøøðŒ~Ô%ð CØ œNÔ/×5Ò5Ø”Ô+¨TÔ-AñCôCˆDŒMˆMˆMð Cð Cs'�*ª#A)ÁA)Á(A)Ä2E Å EÅEcó—||_dSrCr)rFrs r(Ú setdebuggerzModifiedInterpreter.setdebuggeros €Ø ˆŒ ˆ ˆ r0có—|jSrCrrªs r(r7zModifiedInterpreter.getdebuggerrs €ØŒ}Ðr0cóP—|jj d|j¦«dS)a’Initiate the remote stack viewer from a separate thread. This method is called from the subprocess, and by returning from this method we allow the subprocess to unblock. After a bit the shell requests the subprocess to open the remote stack viewer which returns a static object looking at the last exception. It is queried through the RPC mechanism. i,N)rórJrkrhrªs r(Úopen_remote_stack_viewerz,ModifiedInterpreter.open_remote_stack_viewerus'€ð ŒÔ×!Ò! # tÔ'?Ñ@Ô@Ð@؈r0có—ddlm}|j dddi¦«}|€ |jj ¦«dS| |j|¦«}ddlm }m }t|jj¦«}tj ¦«}tj|d¦«d}|||d¬ ¦«} | j d d ¬ ¦«|| jd|¦«} |  ¦«dS) Nr)Ú debugobj_rrEÚ stackviewer)rN)ÚScrolledCanvasÚTreeNodeÚnormalrd)ÚbgÚhighlightthicknessrÚboth)ÚexpandÚfill)Úidlelibrxr!Ú remotequeuerór�rwÚStubObjectTreeItemÚ idlelib.treerzr{ÚToplevelrrfrgÚframeÚpackÚcanvasr€) rFrxÚoidÚitemrzr{r´rjrdÚscÚnodes r(rhz'ModifiedInterpreter.remote_stack_viewer‚s €Ø&Ð&Ð&Ð&Ð&Ð&ØŒk×%Ò% f¨m¸ZÈÑLÔLˆØ ˆ;Ø ŒNÔ × $Ò $Ñ &Ô &Ð &Ø ˆFØ×,Ò,¨T¬[¸#Ñ>Ô>ˆØ9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ý�t”~Ô*Ñ+Ô+ˆÝÔ%Ñ'Ô'ˆÝÔ*¨5°(Ñ;Ô;¸LÔIˆ Ø ˆ^˜C JÀ1Ð EÑ EÔ EˆØ Œ� Š ˜Q Vˆ Ñ,Ô,Ð,؈x˜œ  4¨Ñ.Ô.ˆØ � Š ‰ Œ ˆ ˆ ˆ r0rcó\—| |¦«}| ||¦«dS)z1Like runsource() but assumes complete exec sourceN)Ú stuffsourceÚexecfile©rFÚsourcer&s r(Ú execsourcezModifiedInterpreter.execsource•s/€à×#Ò# FÑ+Ô+ˆØ � Š �h Ñ'Ô'Ð'Ð'Ð'r0có,—|€ptj|¦«5}| ¦«}tr)dtj |¦«›d�|zdz}ddd¦«n #1swxYwY t||d¦«}| |¦«dS#ttf$rf|j   ¦«td|j j¬¦«tj||¦«|j  ¦«YdSwxYw)zExecute an existing fileNz__file__ = r'''z''' z del __file__rEzB*** Error in script or command! Traceback (most recent call last):r)ÚtokenizerŠÚreadÚuse_subprocessrPrQÚabspathrûÚruncodeÚ OverflowErrorÚ SyntaxErrorrórdrerr Úshowsyntaxerrorr?)rFr&r’r“Úcodes r(r�zModifiedInterpreter.execfilešsh€à ˆ>Ý”˜xÑ(Ô(ð ;¨BØŸš™œ�Ý!ð;ØPµ´·²ÀÑ0IÔ0IÐPÐPÐPØ &ñ'Ø)9ñ:�Fð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ݘ6 8¨VÑ4Ô4ˆDð �LŠL˜Ñ Ô Ð Ð Ð øõ�{Ð+ð (ð (ð (Ø ŒN× &Ò &Ñ (Ô (Ð (Ý ð6à”~Ô,ð .ñ .ô .ð .õ #Ô 2°4¸Ñ BÔ BÐ BØ ŒN× %Ò %Ñ 'Ô 'Ð 'Ð 'Ð 'Ð 'ð  (øøøs%—AA(Á(A,Á/A,Á4BÂA3DÄDcó†—| |¦«}t|t¦«sJ‚tj|||¦«S)zBExtend base class method: Stuff the source in the line cache first)r�Ú isinstancerŽr Ú runsourcer‘s r(r zModifiedInterpreter.runsource®sB€à×#Ò# FÑ+Ô+ˆå˜&¥#Ñ&Ô&Ð&Ð&Ð&õ&Ô/°°f¸hÑGÔGÐGr0có¨—d|jz}|jdz|_| d¦«}t|¦«dzd||ftj|<|S)z"Stuff source in the filename cachez rr†r)ÚgidÚsplitr›r4r5)rFr’r&r”s r(r�zModifiedInterpreter.stuffsource·sP€à! D¤HÑ,ˆØ”8˜a‘<ˆŒØ— ’ ˜TÑ"Ô"ˆÝ$'¨¡K¤K°¡M°1°e¸XÐ$E� Œ˜Ñ!؈r0cóV—| d |¦«¦«dS)z>Prepend sys.path with file's directory if not already includeda*if 1: _filename = {!r} import sys as _sys from os.path import dirname as _dirname _dir = _dirname(_filename) if not _dir in _sys.path: _sys.path.insert(0, _dir) del _filename, _sys, _dirname, _dir N)rYrZ©rFr&s r(Úprepend_syspathz#ModifiedInterpreter.prepend_syspath¿s6€à �Šð÷’&˜Ñ"Ô"ñ $ô $ð $ð $ð $r0cóî—|j}|j}| ddd¦«tj¦«\}}}t |dd¦«p|pd}t |dd¦«pd}t |d d¦«pd } | d kr|dz }|dkr d | dz z} n d |dz | dz fz} | || ¦«| ¦«| d |z¦«|  ¦«dS)z§Override Interactive Interpreter method: Use Colorizing Color the offending position instead of printing it and pointing at it with a caret. r_r€r§Úmsgrbzr'rÚoffsetrziomark + %d charsz&iomark linestart + %d lines + %d charszSyntaxError: %s N) rórJr~rôÚexc_infor�Úcolorize_syntax_errorrdr!r?) rFr&rórJrÚvalueÚtbr¨r'r©Úposs r(rœz#ModifiedInterpreter.showsyntaxerrorËs€ð”Nˆ ØŒ~ˆØ �Š˜ ¨Ñ.Ô.Ð.Ýœ,™.œ.‰ˆˆe�RÝ�e˜U BÑ'Ô'ÐK¨5ÐKÐ4KˆÝ˜ ¨"Ñ-Ô-Ð2°ˆÝ˜ ¨"Ñ-Ô-Ð2°ˆØ �QŠ;ˆ;Ø �a‰KˆFØ �QŠ;ˆ;Ø%¨°©Ñ2ˆCˆCà:ؘ!‘8˜V A™XÐ&ñ'ˆCà×'Ò'¨¨cÑ2Ô2Ð2Ø×ÒÑÔÐØ � Š Ð&¨Ñ,Ñ-Ô-Ð-Ø×ÒÑÔÐÐÐr0cóò—|j ¦«| ¦«tj|¦«|j d¦«r|j ¦«dSdS)z1Extend base class method to reset output properlyr^N)rórdÚchecklinecacher Ú showtracebackrgÚopen_stack_viewerrªs r(r±z!ModifiedInterpreter.showtracebackåsv€à Œ×"Ò"Ñ$Ô$Ð$Ø ×ÒÑÔÐÝÔ,¨TÑ2Ô2Ð2Ø Œ>× Ò Ð!>Ñ ?Ô ?ð /Ø ŒN× ,Ò ,Ñ .Ô .Ð .Ð .Ð .ð /ð /r0cóž—tj}t| ¦«¦«D]}|dd…|dd…zdkr||=ŒdS)Nrr2r3)r4r5r6Úkeys)rFÚcr;s r(r°z"ModifiedInterpreter.checklinecacheísX€Ý ŒOˆÝ˜Ÿš™œ‘>”>ð ð ˆCØ�2�A�2Œw˜˜R˜S˜SœÑ! TÒ)Ð)Ø�c�Føð ð r0cóÀ—|jjr| ¦«dS|jr|j dd|fi¦«nt ||j¦«dS)z*Run the code without invoking the debuggerrrEr™r)rór;Údisplay_executing_dialogr!rƒrErò)rFr�s r(rYzModifiedInterpreter.runcommandósj€ð Œ>Ô #ð Ø × )Ò )Ñ +Ô +Ð +Ø�1Ø Œ;ð $Ø ŒK× #Ò # F¨I¸°wÀÑ CÔ CÐ CÐ Cå ��t”{Ñ #Ô #Ð #؈qr0có—|jjr| ¦«| ¦«|j} |j ¦«|s+|j�$|j dd|fi¦«|_n.|r|j ||j ¦«nt||j ¦«nï#t$rH|jj s8tjddd|jj¬¦«r‚| ¦«n‚Ynžt$rIt'd|jj¬ ¦«| ¦«|j ¦«nH|jjr(d |j_t'd |jj¬ ¦«n| ¦«YnxYwt$s- |j ¦«dS#t.$rYdSwxYwdS#t$s+ |j ¦«w#t.$rYwwxYwwxYw) úOverride base class methodNrEr™zExit?zDo you want to exit altogether?Úyes©r r‰z IDLE internal error in runcode()rFrb)rór;rCr°rÚbeginexecutingr!Ú asyncqueueraÚrunròrEÚ SystemExitrcr ÚaskyesnorJr±r—rerrjÚcanceledr")rFr�rs r(r™zModifiedInterpreter.runcodeÿso€à Œ>Ô #ð &Ø × #Ò #Ñ %Ô %Ð %Ø ×ÒÑÔÐØ”=ˆð& Ø ŒN× )Ò )Ñ +Ô +Ð +Øð ( ¤ Ð 7Ø"&¤+×"8Ò"8¸ÀØ9=¸Àñ#Eô#E�”�àð (Ø�” ˜T 4¤;Ñ/Ô/Ð/Ð/å�T˜4œ;Ñ'Ô'Ð'øøÝð ð ð Ø”>Ô)ð ÝÔ&ØØ5Ø!Øœ>Ô.ð 0ñ0ô0ð)ð à×&Ò&Ñ(Ô(Ð(Ð(àð)Ð(ð )Ýð )ÝÐ8Øœ>Ô0ð2ñ2ô2ð2à×"Ò"Ñ$Ô$Ð$Ø”×+Ò+Ñ-Ô-Ð-Ð-à”>Ô*ð)Ø.3�D”NÔ+ÝÐ-°D´NÔ4IÐJÑJÔJÐJÐJà×&Ò&Ñ(Ô(Ð(øøøøøå!ð ðØ”N×/Ò/Ñ1Ô1Ð1Ð1Ð1øÝ%ðððØ�D�Dðøøøð ð ø•>ð ðØ”N×/Ò/Ñ1Ô1Ð1Ð1øÝ%ðððØ�Dðøøøð øøøsb½A4B2Â1GÂ2AFÄGÄBFÆGÆ)GÇ GÇGÇH Ç G:Ç9H Ç: HÈH ÈHÈH có@—|jj |¦«S)r¹)rórr!)rFrs r(r!zModifiedInterpreter.write-s€àŒ~Ô$×*Ò*¨1Ñ-Ô-Ð-r0cóH—tjdd|jj¬¦«dS)NzPort Binding ErroraAIDLE can't bind to a TCP/IP port, which is necessary to communicate with its Python execution server. This might be because no networking is installed on this computer. Run IDLE with the -n command line switch to start without a subprocess and refer to Help/IDLE Help 'Running without a subprocess' for further details.©r‰©r r‘rórJrªs r(r"z.ModifiedInterpreter.display_port_binding_error1s8€ÝÔØ ð /ð ”>Ô&ð (ñ (ô (ð (ð (ð (r0cóH—tjdd|jj¬¦«dS)NzSubprocess Connection Errorz¢IDLE's subprocess didn't make connection. See the 'Startup failure' section of the IDLE doc, online at https://docs.python.org/3/library/idle.html#startup-failurerÄrÅrªs r(r,z/ModifiedInterpreter.display_no_subprocess_error<s9€ÝÔØ )ð Jð”>Ô&ð  (ñ (ô (ð (ð (ð (r0cóH—tjdd|jj¬¦«dS)NzAlready executingzYThe Python Shell window is already executing a command; please wait until it is finished.rÄrÅrªs r(r·z,ModifiedInterpreter.display_executing_dialogDs6€ÝÔØ ð 0à”>Ô&ð  (ñ (ô (ð (ð (ð (r0)Frb)FrC)&r«r¬r­rIrQr!rrrr2rCrMrOrSr:r.rar/rrsr7rvrhr¢r“r�r r�r¦rœr±r°rYr™r!r"r,r·r°r0r(rðrðŸs€€€€€ðCðCðCð€HØ €FØ€JðDðDðDð Fð Fð Fð)ð)ð)ðV*ð*ð*ð*ðXGðGðGðBðBðBð ð ð ð ð ð ð ð ð ð ð€Jð$Cð$Cð$CðL€Hð!ð!ð!ðððð ð ð ðððð" €Cð(ð(ð(ð ðððð(HðHðHðððð $ð $ð $ððððð4/ð/ð/ðððð ð ð ð,ð,ð,ð\.ð.ð.ð (ð (ð (ð(ð(ð(ð(ð(ð(ð(ð(r0rðc óX‡—eZdZddlmZde¦«zZeZe Z gd¢Z e j dgzZ deeejd„e ¦«¦«¦«zZe  ed¦«[d Zd Zdd lmZdd lmZd;d„Zˆfd„Zˆfd„Zd„Zd„Zd„Zd;d„Z d Z!d Z"d Z#d Z$d Z%d Z&d„Z'd„Z(d;d„Z)d„Z*d;d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d „Z2d!„Z3d"„Z4d#Z5d$„Z6d%„Z7d&„Z8d'„Z9d;d(„Z:d)„Z;d*„Ze?j@d-¦«ZAd.„ZBd;d/„ZCd;d0„ZDd;d1„ZEd2„ZFd3„ZGd4„ZHd>rcó—|ddkS)Nrr\r°)Ú rmenu_items r(rÙzPyShell.ds€˜: aœ=¨FÒ2€r0)zCopy with promptsú<>r]Fr×)ÚHistory)Ú ShellSidebarNcó8—tr/|j}|dddkr| dd¦«t|¦«|_|€@t ¦«}t |¦«| ¦«t|¦«}d|_ tj ||dd¦«d|_ d|_ ttd¦«r tjnd|_|j d ¦«d |_|j|_|j}| d ¬ ¦«| d |j¦«| d|j¦«| d|j¦«| d|j¦«| d|j¦«| d|j¦«| d|j¦«| d|j¦«tr6| d|j ¦«| d|j!¦«| "|¦«|_#| d|j$¦«tj%|_&tj'|_(tj)|_*ddl+m,}t[|d|j.|j/¦«|_)ta|d|j.|j/¦«|_%ta|d|j.d¦«|_'ta|d|j.|j/¦«|_1ts3|j%t_%|j't_'|j)t_) ddl2}|j3|_4n#tj5t_'‚xYw| 6|j¦«|_7d|_8| 9|¦«|_ |j:j;j|j_|j: <t{¦«¦«dS)Nr¤rÚshell)rÜÚShe_llFéÚps1z>>> r†r2Úchar)Úwrapz<>z<>z<>z<>z<>ú<>r^rØz<>z<>rÕ)Úiomenur×rrÚbackslashreplaceré2)>r—Ú menu_specsrvrðrrÚTkrÚwithdrawr²Ú shell_sidebarrrIÚusetabsÚ indentwidthÚhasattrrôrßÚsys_ps1r£Úprompt_last_lineÚpromptrJÚ configurerKÚenter_callbackÚlinefeed_callbackÚcancel_callbackÚ eof_callbackr²Útoggle_debuggerÚtoggle_jit_stack_viewerÚcopy_with_prompts_callbackÚview_restart_markÚ restart_shellrÉÚsqueezerÚsqueeze_current_text_eventrÚ save_stdoutrÚ save_stderrr×Ú save_stdinr‚rãrÚencodingÚerrorsrrÚpydocÚ plainpagerÚpagerrirÙÚhistoryrlrÚÚperr´Ú insertfilterrà)rFrNÚmsr�rJrãrs r(rIzPyShell.__init__rsž€Ý ð 2Ø”ˆBØ�!Œu�QŒx˜7Ò"Ð"Ø— ’ ˜!Ð0Ñ1Ô1Ð1Ý)¨$Ñ/Ô/ˆŒ Ø ˆ=Ý‘4”4ˆDÝ ˜$Ñ Ô Ð Ø �MŠM‰OŒOˆOÝ# DÑ)Ô)ˆEà!ˆÔåÔ˜d E¨4°Ñ6Ô6Ð6àˆŒ àˆÔå")­#¨uÑ"5Ô"5ÐB•s”w�w¸7ˆŒ Ø $¤ × 2Ò 2°4Ñ 8Ô 8¸Ô <ˆÔØ”lˆŒ àŒyˆØ �Š˜FˆÑ#Ô#Ð#Ø � Š Ð*¨DÔ,?Ñ@Ô@Ð@Ø � Š Ð0°$Ô2HÑIÔIÐIØ � Š Ð+¨TÔ-AÑBÔBÐBØ � Š Ð# TÔ%6Ñ7Ô7Ð7Ø � Š Ð)¨4Ô+AÑBÔBÐBØ � Š Ð'¨Ô)=Ñ>Ô>Ð>Ø � Š Ð/°Ô1MÑNÔNÐNØ � Š Ð)¨4Ô+JÑKÔKÐKÝ ð ?Ø �IŠIÐ(¨$Ô*@Ñ AÔ AÐ AØ �IŠIÐ)¨4Ô+=Ñ >Ô >Ð >ØŸ š  dÑ+Ô+ˆŒ Ø � Š Ð,ØÔ1ñ 3ô 3ð 3õœ:ˆÔÝœ:ˆÔÝœ)ˆŒØ"Ð"Ð"Ð"Ð"Ð"Ý! $¨Ø"(¤/°6´=ñBôBˆŒ å# D¨(Ø$*¤O°V´]ñDôDˆŒ å# D¨(Ø$*¤OÐ5GñIôIˆŒ å$ T¨9Ø%+¤_°f´mñEôEˆŒ åð #Øœ�CŒJØœ�CŒJØœ �CŒIð à ˆLˆLˆLàÔ*ˆEŒKˆKøð Ýœ�CŒJØ øøøà—|’| D¤IÑ.Ô.ˆŒ àˆÔà!×.Ò.¨tÑ4Ô4ˆÔð  œ8œ<Ô.ˆŒ ÔØ Œ×ÒÕ7Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:s Í,M=Í=Nc󌕗t¦« ¦«|j�|j ¦«dSdSrC)rÚÚ ResetFontréÚ update_font©rFrÜs €r(r zPyShell.ResetFontÀsEø€Ý ‰Œ×ÒÑÔÐà Ô Ð )Ø Ô × *Ò *Ñ ,Ô ,Ð ,Ð ,Ð ,ð *Ð )r0có’•—t¦« ¦«tj¦«}dddœtj|d¦«tj|d¦«tj|d¦«dœ}| ¦«D]\}}|jj|fi|¤ŽŒ|j�|j  ¦«dSdS)N)rdrcrrr|)r×rrr) rÚÚResetColorizerrrfrgÚitemsrJÚ tag_configureréÚ update_colors)rFrjÚ tag_colorsrÂÚtag_colors_configrÜs €r(r zPyShell.ResetColorizerÆsÞø€Ý ‰Œ×ÒÑ Ô Ð åÔ%Ñ'Ô'ˆà"&°dÐ;Ð;ÝÔ)¨%°Ñ:Ô:ÝÔ)¨%°Ñ:Ô:ÝÔ*¨5°(Ñ;Ô;ð  ð ˆ ð '1×&6Ò&6Ñ&8Ô&8ð >ð >Ñ "ˆCÐ"Ø #ˆDŒIÔ # CÐ =Ð =Ð+<Ð =Ð =Ð =Ð =à Ô Ð )Ø Ô × ,Ò ,Ñ .Ô .Ð .Ð .Ð .ð *Ð )r0có<—tj|jd¬¦«dS)Nr×)Ú insert_tagsra)rrJr¸s r(Ú replace_eventzPyShell.replace_eventÖs€ÝŒ˜œ ¨wÐ7Ñ7Ô7Ð7؈wr0có,—tjd¬¦«S)NT)Ú shell_only)rÚ GetExtensionsrªs r(Úget_standard_extension_namesz$PyShell.get_standard_extension_namesÚs€ÝÔ%°Ð6Ñ6Ô6Ð6r0cób‡—‰j ||¦«}ttt |¦«¦«tt |¦«¦«¦«}ˆfd„|D¦«}d d„t || ¦«¦«D¦«¦«dzS)z6Return text between first and last with prompts added.cóN•—g|]!}‰jj |¦«‘Œ"Sr°)réÚ line_promptsÚget)rr'rFs €r(r z+PyShell.get_prompt_text..äs=ø€ð ð ð àð Ô Ô +× /Ò /°Ñ 7Ô 7ð ð ð r0r†c3ó2K—|]\}}|€|n|›d|›�V—ŒdS)Nú r°)rrïrs r(ú z*PyShell.get_prompt_text..èsPèè€ð ð á�˜ð�NˆDˆD¨6Ð(:Ð(:°DÐ(:Ð(:ð ð ð ð ð ð r0)rJrr¥rxryrRÚzipÚ splitlines)rFÚfirstÚlastrJÚ lineno_rangeÚpromptss` r(Úget_prompt_textzPyShell.get_prompt_textÝsÃø€àŒy�}Š}˜U DÑ)Ô)ˆÝÝ •�e‘ ” Ñ Ô Ý •�d‘ ” Ñ Ô ñ ô ˆ ð ð ð ð à&ð ñ ô ˆð�yŠyð ð å # G¨T¯_ª_Ñ->Ô->Ñ ?Ô ?ð ñ ô ñ ô ð ñð r0có0—|j}| d¦«}|€dS| d¦«}|ddkr| d¦«}| ¦«| ||¦«}| |¦«dS)aCopy selected lines to the clipboard, with prompts. This makes the copied text useful for doc-tests and interactive shell code examples. This always copies entire lines, even if only part of the first and/or last lines is selected. zsel.first linestartNúsel.lastr2Ú0zsel.last+1line linestart)rJrnÚclipboard_clearr'Úclipboard_append)rFrzrJÚselfirstÚsellastÚ prompt_texts r(r÷z"PyShell.copy_with_prompts_callbackîs›€ðŒyˆØ—:’:Ð3Ñ4Ô4ˆØ Ð Ø ˆFØ—*’*˜ZÑ(Ô(ˆØ �2Œ;˜#Ò Ð Ø—j’jÐ!;Ñ<Ô<ˆGØ ×ÒÑÔÐØ×*Ò*¨8°WÑ=Ô=ˆ Ø ×Ò˜kÑ*Ô*Ð*Ð*Ð*r0có —|adSrC©r )rFÚstreams r(Úset_warning_streamzPyShell.set_warning_stream s €àˆˆˆr0có—tSrCr1rªs r(Úget_warning_streamzPyShell.get_warning_stream s€ÝÐr0có—|jr2tjdd|j¬¦«| ¦«dS|j ¦«}|r| ¦«dS| ¦«dS)NzDon't debug nowz*You can only toggle the debugger when idlerÄra) r;r r‘rJÚset_debugger_indicatorrrr7Úclose_debuggerÚ open_debugger)rFrzÚdbs r(rõzPyShell.toggle_debuggers•€Ø Œ>ð %Ý Ô Ð!2Ø<Ø”yð "ñ "ô "ð "ð × 'Ò 'Ñ )Ô )Ð )Ø�7à”×(Ò(Ñ*Ô*ˆBØð %Ø×#Ò#Ñ%Ô%Ð%Ð%Ð%à×"Ò"Ñ$Ô$Ð$Ð$Ð$r0cóh—|j ¦«}| d| ¦«dS)Nrâ)rrr7Úsetvar©rFr:s r(r7zPyShell.set_debugger_indicators4€Ø Œ[× $Ò $Ñ &Ô &ˆØ � Š Ð)°2¨v¨:Ñ6Ô6Ð6Ð6Ð6r0có—dSrCr°r¸s r(rözPyShell.toggle_jit_stack_viewer"s€Ø ˆr0có°—|j ¦«}|r¦|j d¦«| ¦«|jjrt j|jj¦«| ¦«|j  d¦«|j |_ |  ¦«|  ¦«dS)Nz [DEBUG OFF] )rrr7rsr9r!rÚclose_remote_debuggerrdrr!rírïr?r7r=s r(r8zPyShell.close_debugger%s½€Ø Œ[× $Ò $Ñ &Ô &ˆØ ð Ø ŒK× #Ò # DÑ )Ô )Ð )Ø �HŠH‰JŒJˆJØŒ{Ô!ð EÝÔ0°´Ô1CÑDÔDÐDØ × Ò Ñ Ô Ð Ø ŒL× Ò ˜Ñ /Ô /Ð /Øœ,ˆDŒKØ �OŠOÑ Ô Ð Ø ×#Ò#Ñ%Ô%Ð%Ð%Ð%r0cóP—|jjr tj|jj|¦«}nt j|¦«}|j |¦«| ¦«d|jz|_ |  ¦«|  ¦«dS)Nz [DEBUG ON] ) rrr!rÚstart_remote_debuggerrÚDebuggerrsrArírïr?r7)rFÚdbg_guis r(r9zPyShell.open_debugger2sŸ€Ø Œ;Ô ð .Ý Ô6°t´{Ô7IØ;?ñAôAˆGˆGõÔ'¨Ñ-Ô-ˆGØ Œ ×Ò Ñ(Ô(Ð(Ø× Ò Ñ"Ô"Ð"Ø$ t¤|Ñ3ˆŒ Ø �ŠÑÔÐØ ×#Ò#Ñ%Ô%Ð%Ð%Ð%r0cóJ—|jrdnd}| dd|¦«dS)NÚdisabledr|rsz *tack*iewer)r;Úupdate_menu_state)rFÚstates r(Údebug_menu_postcommandzPyShell.debug_menu_postcommand>s0€Ø"œnÐ:� � °(ˆØ ×Ò˜w¨ °uÑ=Ô=Ð=Ð=Ð=r0có<—| ¦«d|_dS)úHelper for ModifiedInterpreterTN)rdr;rªs r(r¼zPyShell.beginexecutingBs€à ×ÒÑÔÐØˆŒˆˆr0cóJ—d|_d|_| ¦«dS)rKFN)r;rÁr?rªs r(rjzPyShell.endexecutingGs&€àˆŒØˆŒ Ø �ŠÑÔÐÐÐr0có—|jr#tjddd|j¬¦«}|durdS| ¦«d|_d|_tj|¦«S)zExtend EditorWindow.close()zKill?z7Your program is still running! Do you want to kill it?Úokr»FÚcancelT) r;r Ú askokcancelrJr<rÁrcrr9)rFrns r(r9z PyShell.closeMst€à Œ>ð Ý!Ô-ØØJØØ”yð "ñ"ô"ˆHð ˜5Ð Ð Ø�xØ ×ÒÑÔÐØˆŒ ؈Œ ÝÔ! $Ñ'Ô'Ð'r0có>—| ¦«tr|j ¦«|jt _|jt _|j t _ d|_d|_ d|j _ d|_tj|¦«dS)zEExtend EditorWindow._close(), shut down debugger and execution serverN)r8r—rrrSrürôrrýrrþr×rrNrqrrr©rªs r(r©zPyShell._close\sƒ€à ×ÒÑÔÐÝ ð *Ø ŒK× 'Ò 'Ñ )Ô )Ð )àÔ%�Œ ØÔ%�Œ Ø”O�Œ àˆŒ ؈Œ Ø!ˆŒ ÔØˆŒ ÝÔ˜DÑ!Ô!Ð!Ð!Ð!r0có—dS)z8Override EditorWindow method: never remove the colorizerTr°r¥s r(ÚispythonsourcezPyShell.ispythonsourcels€àˆtr0có—|jSrC)Ú shell_titlerªs r(Ú short_titlezPyShell.short_titleps €ØÔÐr0zHType "help", "copyright", "credits" or "license()" for more information.c óü—|j dd¦«| ¦«tr4d}|j ¦«}|s| ¦«dSnd}tjt_|  dtj ›dtj ›d|j ›d|›�¦«|j ¦«| ¦«d dl}d |_d|_d S) Nr½rvrbFz›==== No Subprocess ==== WARNING: Running IDLE without a Subprocess is deprecated and will be removed in a later version. See Help/IDLE Help for details. zPython z on r†rT)rJr=rdr—rrr2r9rÚ displayhookrôr!ÚversionÚplatformÚ COPYRIGHTÚ focus_forcer?ÚtkinterÚ_support_default_rootÚ _default_root)rFÚnosubÚclientr]s r(r·z PyShell.beginvsý€Ø Œ ×Ò˜8 XÑ.Ô.Ð.Ø ×ÒÑÔÐÝ ð .؈EØ”[×1Ò1Ñ3Ô3ˆFØð Ø— ’ ‘ ” � Ø�uð ð'ˆEõ"œo�CŒOà � Š ˆ Ý”K�K�K¥¤  ¨t¬~¨~¨~¸u¸uðFñ Gô Gð Gà Œ ×ÒÑÔÐØ �ŠÑÔÐàˆˆˆØ(,ˆÔ%Ø $ˆÔ؈tr0cóX—|jsdSd|_|j ¦«dS©NT)ÚreadingÚ_stop_readline_flagr´Úquitrªs r(r<zPyShell.stop_readline�s,€ØŒ|ð Ø ˆFØ#'ˆÔ Ø Œ� Š ‰Œˆˆˆr0có~—|j} d|_|j ¦«||_n #||_wxYw|jr d|_dS|j dd¦«}t |¦«dkrd}| ¦«|jrd|_tst‚|j r d|_ d}|S)NTFrbr½r4rr†) rdr´ÚmainlooprerJrr›rdrÁr—rbÚ endoffile)rFr:rs r(ÚreadlinezPyShell.readline–sҀ،|ˆð ؈DŒLØ ŒH× Ò Ñ Ô Ð àˆDŒLˆLø˜4ˆDŒLÐ Ð Ð Ð Ø Ô #ð Ø',ˆDÔ $Ø�2ØŒy�}Š}˜X xÑ0Ô0ˆÝ ˆt‰9Œ9˜Š>ˆ>؈DØ ×ÒÑÔÐØ Œ=ð (Ø!ˆDŒMÝ!ð (Ý'Ð'Ø Œ>ð Ø"ˆDŒN؈D؈ s‰ 1± :có—dSrcr°rªs r(ÚisattyzPyShell.isatty­s€Øˆtr0có— |j ddd¦«rdSn#YnxYw|jsK|jsD| ¦«|j d¦«| ¦«dSd|_d|_ |jrX|jj rL|j  ¦«r|j  ¦«n|j  ¦«|jr|j ¦«dS)Nú sel.firstz!=r)zKeyboardInterrupt raFT)rJrÊr;rdrdrrr!r?rirÁr!r7rCrOr´rfr¸s r(rózPyShell.cancel_callback°s€ð ØŒy× Ò  ¨d°JÑ?Ô?ð Ø�ð øð Ø ˆDøøøØ”ð  $¤,ð Ø × Ò Ñ Ô Ð Ø ŒK× Ò Ð3Ñ 4Ô 4Ð 4Ø �OŠOÑ Ô Ð Ø�7؈ŒØˆŒ Ø ŒNð 3˜tœ{Ô1ð 3ØŒ{×&Ò&Ñ(Ô(ð 3Ø” ×.Ò.Ñ0Ô0Ð0Ð0à” ×0Ò0Ñ2Ô2Ð2Ø Œ<ð Ø ŒH�MŠM‰OŒOˆO؈ws‚!¡%cóH—|jr |jsdS|j ddd¦«r|j ddd¦«sdS|js)| ¦«| ¦«n'd|_d|_|j  ¦«dS)Nr½z==rvr4FTra) r;rdrJrÊrdr9rÁrir´rfr¸s r(rôzPyShell.eof_callbackÆs¤€Ø Œ>ð  $¤,ð Ø ˆFØ” ×!Ò! (¨D°(Ñ;Ô;ð Ø” ×!Ò! (¨D°(Ñ;Ô;ð à ˆFØŒ~ð Ø × Ò Ñ Ô Ð Ø �JŠJ‰LŒLˆLˆLà!ˆDŒMØ!ˆDŒNØ ŒH�MŠM‰OŒOˆO؈wr0cóª—|jr6|j dd¦«|j d¦«n| |¦«dS)Nrvr†ra)rdrJrvÚseeÚnewline_and_indent_eventr¸s r(ròzPyShell.linefeed_callbackÕsT€à Œ<ð 1Ø ŒI× Ò ˜X tÑ ,Ô ,Ð ,Ø ŒI�MŠM˜(Ñ #Ô #Ð #Ð #à × )Ò )¨%Ñ 0Ô 0Ð 0؈wr0cóÚ —|jr |jsdS |j dd¦«}|r4|j ddd¦«r| ||¦«dSn#YnxYw|j ddd¦«�rò|j d d¦«}|�rB|j dd|d ¦«�rd |j d¦«v�r|j d d¦«}|r8|j |d d |d ¦«r|d |d f}|j d d¦«}|rS|j |d d|d ¦«r+|d |j  |d dz¦«f}| |j |d |d ¦«|¦«dS|j d d¦«}|rÏ|j dd |d ¦«r­|j d d¦«}|rS|j |d d|d ¦«r+|d |j  |d dz¦«f}| |j |d |d ¦«|¦«dS|j d d¦«}|rX|j |d dd¦«r6| |j |d d¦«|¦«n/| |j dd¦«|¦«dS|j ddd¦«r|j  dd¦«|j dd¦«}|r/|  ¦«s|j  dd¦«|j ddd¦«r|  |¦«dS|j  dd¦«|jr6|j dd¦«|j d¦«n|  |¦«|j ¦«|jr|j ¦«n| ¦«dS)Nrnr)z<=r½rarvrÈúiomark linestartr×rrz>=rz+1czinsert lineendr|r4zend-1c linestartr†)r;rdrJrrÊÚrecallÚ tag_prevrangeÚ tag_namesÚ tag_nextrangernr=ÚstriprÑrrrvrqÚupdate_idletasksr´rfÚrunit) rFrzÚselÚprevÚ prev_consÚ next_consÚnextÚindicesrs r(rñzPyShell.enter_callbackÞsº€Ø Œ>ð  $¤,ð Ø ˆFð Ø”)—-’-  ¨ZÑ8Ô8ˆCØð #Ø”9×$Ò$ Z°°xÑ@Ô@ð#Ø—K’K  UÑ+Ô+Ð+Ø"˜7øøð Ø ˆDøøøð Œ9× Ò ˜X sÐ,>Ñ ?Ô ?ñ" ð ”9×*Ò*¨7°HÑ=Ô=ˆDàñ à”I×%Ò% h°°T¸!´WÑ=Ô=ñ ð T¤Y×%8Ò%8¸Ñ%BÔ%BÐBÑBà œI×3Ò3°I¸xÑHÔH� Øð3 ¤×!2Ò!2°9¸Q´<ÀÀtÈAÄwÑ!OÔ!Oð3Ø% aœL¨$¨q¬'Ð2�DØ œI×3Ò3°I¸xÑHÔH� ØðL ¤×!2Ò!2°9¸Q´<ÀÀdÈ1ÄgÑ!NÔ!NðLØ  œG T¤Y§_¢_°Y¸q´\ÀEÑ5IÑ%JÔ%JÐK�DØ— ’ ˜DœIŸMšM¨$¨q¬'°4¸´7Ñ;Ô;¸UÑCÔCÐCØ�wØ”9×*Ò*¨7°HÑ=Ô=ˆDØð ˜œ ×)Ò)Ð*:¸DÀ$ÀqÄ'ÑJÔJð Ø œI×3Ò3°IÐ?OÑPÔP� ØðL ¤×!2Ò!2°9¸Q´<ÀÀdÈ1ÄgÑ!NÔ!NðLØ  œG T¤Y§_¢_°Y¸q´\ÀEÑ5IÑ%JÔ%JÐK�DØ— ’ ˜DœIŸMšM¨$¨q¬'°4¸´7Ñ;Ô;¸UÑCÔCÐCØ�wà”i×-Ò-¨iÐ9KÑLÔLˆGØð XØŒy× Ò  ¨¤¨TÐ3EÑFÔFð Xà— ’ ˜DœIŸMšM¨'°!¬*Ð6FÑGÔGÈÑOÔOÐOÐOà— ’ ˜DœIŸMšMÐ*<Ð>NÑOÔOÐQVÑWÔWÐWØ�7ð Œ9× Ò ˜X s¨HÑ 5Ô 5ð 3Ø ŒI× Ò ˜x¨Ñ 2Ô 2Ð 2ð ŒI�MŠM˜( HÑ -Ô -ˆØ ð 1�Q—W’W‘Y”Yð 1Ø ŒI× Ò ˜X xÑ 0Ô 0Ð 0ð Œ9× Ò ˜X sÐ,>Ñ ?Ô ?ð Ø × )Ò )¨%Ñ 0Ô 0Ð 0Ø�7à Œ ×Ò˜8 XÑ.Ô.Ð.Ø Œ<ð 1Ø ŒI× Ò ˜X tÑ ,Ô ,Ð ,Ø ŒI�MŠM˜(Ñ #Ô #Ð #Ð #à × )Ò )¨%Ñ 0Ô 0Ð 0Ø Œ ×"Ò"Ñ$Ô$Ð$Ø Œ<ð Ø ŒH�MŠM‰OŒOˆOˆOà �JŠJ‰LŒLˆL؈ws ’AA$Á$A(có —tjdd|¦«}tjdd|¦«}| d¦«}|j ¦« |j ddd¦«|j dd ¦«|j d d¦«}| ¦«  d ¦«r0|  |¦«|j d d¦«}|j  d|d   ¦«|j ¦«t|¦«d krÈtjd|d ¦« d ¦«}tjd|¦« d ¦«}|d d…D]g}| |¦«r||t|¦«d…z}|j  dd| ¦«z|j ¦«Œh|j d¦«|j ¦«dS#|j d¦«|j ¦«wxYw)Nz^\s*\nrbz\n\s*$r†r|r€r§rvr4r|ú:rrz ^([ \t]*))ÚreÚsubr£rJÚundo_block_startr~r=rÚrstripÚendswithrrrvryÚuser_input_insert_tagsr›ÚsearchÚgrouprŒrqÚundo_block_stop)rFrrzr”ÚprefixÚorig_base_indentÚnew_base_indentrs r(ruzPyShell.recall-sM€å ŒF�9˜b !Ñ $Ô $ˆÝ ŒF�9˜b !Ñ $Ô $ˆØ—’˜‘ ” ˆØ Œ ×"Ò"Ñ$Ô$Ð$ð (Ø ŒI× Ò  ¨¨uÑ 5Ô 5Ð 5Ø ŒI× Ò ˜x¨Ñ 2Ô 2Ð 2Ø”Y—]’]Ð#5°xÑ@Ô@ˆFØ�}Š}‰Œ×'Ò'¨Ñ,Ô,ð EØ×-Ò-¨eÑ4Ô4Ð4ØœŸšÐ'9¸8ÑDÔD�Ø ŒI× Ò ˜X u¨Q¤x§~¢~Ñ'7Ô'7Ø!Ô8ñ :ô :ð :å�5‰zŒz˜AŠ~ˆ~Ý#%¤9¨\¸5À¼8Ñ#DÔ#D×#JÒ#JÈ1Ñ#MÔ#MÐ Ý#%¤9¨\¸6Ñ#BÔ#B×#HÒ#HÈÑ#KÔ#K�Ø! ! " "œIðBðB�DØ—’Ð'7Ñ8Ô8ðNà.°µcÐ:JÑ6KÔ6KÐ6LÐ6LÔ1MÑM˜Ø”I×$Ò$ X¨t°d·k²k±m´mÑ/CØ%)Ô%@ñBôBðBðBð ŒI�MŠM˜(Ñ #Ô #Ð #Ø ŒI× %Ò %Ñ 'Ô 'Ð 'Ð 'Ð 'øð ŒI�MŠM˜(Ñ #Ô #Ð #Ø ŒI× %Ò %Ñ 'Ô 'Ð 'Ð 'øøøs ÁF=IÉ5Jz[ \t]*(\n[ \t]*)?\Zcó�—|j d¦«}|j dd¦«}|j d|¦«}|j |¦«}|sY|j |¦«dkr |j |j|¦«|j   ¦«dSdS)Núend-2cr½r4rbr†) rJrnrÚ_last_newline_rer…rrr r~r‰réÚupdate_sidebar)rFÚ index_beforerÚinput_is_completes r(r{z PyShell.runitJs»€Ø”y—’ xÑ0Ô0ˆ ØŒy�}Š}˜X xÑ0Ô0ˆðÔ$×(Ò(¨¨TÑ2Ô2ˆØ œK×1Ò1°$Ñ7Ô7ÐØ ð 0ØŒy�}Š}˜\Ñ*Ô*¨dÒ2Ð2Ø” ×$Ò$ TÔ%@À,ÑOÔOÐOØ Ô × -Ò -Ñ /Ô /Ð /Ð /Ð /ð 0ð 0r0cóì—|jjr|j ¦«S tjn$#t jdd|j¬¦«YdSxYwddlm }||j |j ¦«dS)NzNo stack tracez@There is no stack trace yet. (sys.last_traceback is not defined)rÄr)Ú StackBrowser) rrr!rhrôÚlast_tracebackr r‘rJÚidlelib.stackviewerr—r�rN)rFrzr—s r(r²zPyShell.open_stack_viewerVs›€Ø Œ;Ô ð 5Ø”;×2Ò2Ñ4Ô4Ð 4ð Ý Ô Ð Ð øð Ý Ô Ð!1ð6à”yð "ñ "ô "ð "ð ˆFˆFøøøØ4Ð4Ð4Ð4Ð4Ð4؈ �T”Y ¤ Ñ+Ô+Ð+Ð+Ð+s § 4´Acón—|j d¦«|j d¦«dS)Nr½r5)rJrqr¸s r(røzPyShell.view_restart_markds0€Ø Œ � Š �hÑÔÐØ Œ � Š �iÑ Ô Ð Ð Ð r0có<—|j d¬¦«dS)z&Callback for Run/Restart Shell Cntl-F6TrN)rrrCr¸s r(rùzPyShell.restart_shellhs!€à Œ ×&Ò&°Ð&Ñ5Ô5Ð5Ð5Ð5r0cóä—| ¦«|j}|jr7| |j¦«r|dt |j¦« …}|j dd¦«|j |¦«|j   ¦«|j  dd¦«|  ¦«|j  ¦«dS)Nrz iomark-1crvr4)rdrïrírˆr›rJrmrr!rér“r=Úset_line_and_columnrUÚ reset_undo)rFrïs r(r?zPyShell.showpromptlsÞ€Ø ×ÒÑÔÐà”ˆØ Œ<ð 1˜FŸOšO¨D¬LÑ9Ô9ð 1ØÐ/�c $¤,Ñ/Ô/Ð/Ð/Ô0ˆFØ Œ ×Ò˜) [Ñ1Ô1Ð1Ø Œ ×Ò˜6Ñ"Ô"Ð"à Ô×)Ò)Ñ+Ô+Ð+Ø Œ ×Ò˜8 XÑ.Ô.Ð.Ø × Ò Ñ"Ô"Ð"Ø Œ×ÒÑÔÐÐÐr0có—|jjj}t|dd¬¦«}d | |¦«¦«}| d¦«s|dz }|jj  d|d¦«dS)NéT)rëÚtabsizeÚ expand_tabsr†rtr) rrrórër rRrárˆrÚbottomrv)rFr¨rëÚwrapperÚ wrapped_msgs r(Ú show_warningzPyShell.show_warningzsƒ€Ø” Ô%Ô+ˆÝ E°1À$ÐGÑGÔGˆØ—i’i § ¢ ¨SÑ 1Ô 1Ñ2Ô2ˆ Ø×#Ò# DÑ)Ô)ð Ø ˜4Ñ ˆKØ ŒŒ×ÒÐ1°;ÀÑIÔIÐIÐIÐIr0có€—|j dd¦«}|jr|j |¦«|j d¦«dkr|j dd¦«|j dd¦«| ¦«|j ¦«dS)Nr½r4r‘r†) rJrrÚstorervr=r�ÚctipÚremove_calltip_window)rFr’s r(rdzPyShell.resetoutput‚s¬€Ø”—’˜x¨Ñ2Ô2ˆØ Œ<ð 'Ø ŒL× Ò ˜vÑ &Ô &Ð &Ø Œ9�=Š=˜Ñ "Ô " dÒ *Ð *Ø ŒI× Ò ˜X tÑ ,Ô ,Ð ,Ø Œ ×Ò˜8 XÑ.Ô.Ð.Ø × Ò Ñ"Ô"Ð"Ø Œ ×'Ò'Ñ)Ô)Ð)Ð)Ð)r0r°cóè— |j dd¦«tj|||d¦«}|j dd¦«n#‚xYw|jrd|_t st ‚|S)Nr½Úrightr6F)rJr>rr!rÁr—rb)rFrrÎÚcounts r(r!z PyShell.writeŒs€€ð Ø ŒI× "Ò " 8¨WÑ 5Ô 5Ð 5Ý Ô& t¨Q°°hÑ?Ô?ˆEØ ŒI× "Ò " 8¨VÑ 4Ô 4Ð 4Ð 4øð Ø øøøà Œ=ð (Ø!ˆDŒMÝ!ð (Ý'Ð'؈ s ‚A AÁAc󦕗 |j ddd¦«rdSn#t$rYdSwxYwt¦« ¦«S)NrnrÈr½rF)rJrÊrËrÚr[r s €r(r[zPyShell.rmenu_check_cutšsfø€ð ØŒy× Ò  ¨c°8Ñ<Ô<ð "Ø!�zð "øåð ð ð Ø�:�:ð øøøå‰wŒw×&Ò&Ñ(Ô(Ð(s ƒ"¢ 0¯0c󀕗|j ddd¦«rdSt¦« ¦«S)NrvrÈr½rF)rJrÊrÚr_r s €r(r_zPyShell.rmenu_check_paste¢s:ø€Ø Œ9× Ò ˜X c¨(Ñ 3Ô 3ð Ø�:݉wŒw×(Ò(Ñ*Ô*Ð*r0cój—|j ¦«|j ¦«dSrC)rúÚsqueeze_current_textrér“r¸s r(rûz"PyShell.squeeze_current_text_event§s1€Ø Œ ×*Ò*Ñ,Ô,Ð,Ø Ô×)Ò)Ñ+Ô+Ð+Ð+Ð+r0có8—|j ¦«dSrC)rér“)rFrnrJrÎs r(Úon_squeezed_expandzPyShell.on_squeezed_expand«s€Ø Ô×)Ò)Ñ+Ô+Ð+Ð+Ð+r0rC)r°)Or«r¬r­Úidlelib.squeezerrÉr rUrºrrÅrrærr¯r›r6Ú itertoolsÚ takewhileÚ_idxrvÚallow_line_numbersr‰Úidlelib.historyrÙÚidlelib.sidebarrÚrIr r rrr'r÷rdr;rÁrircrer3r5rõr7rör8r9rIr¼rjr9r©rSrVr[r·r<rjrlrórôròrñrur„rûr’r{r²rørùr?r¦rdr!r[r_rûr³rÝrÞs@r(r¶r¶Ls0ø€€€€€Ø)Ð)Ð)Ð)Ð)Ð)à . .Ñ"2Ô"2Ñ2€Kð,€NØ)€Mððð€JðÔ*Ø/ð.ñ€Kð ˆsˆs�4�4Ð+˜ Ô+Ø2Ð2°KñAôAñôñôñ €Dð×Ò�tð2ñ3ô3ð3ð àÐØ$Ðð(Ð'Ð'Ð'Ð'Ð'Ø,Ð,Ð,Ð,Ð,Ð,ðL;ðL;ðL;ðL;ð\-ð-ð-ð-ð-ð /ð/ð/ð/ð/ð ððð7ð7ð7ðððð"+ð+ð+ð+ð(€GØ€IØ€HØ€IØ€GØÐð ð ð ðððð %ð %ð %ð %ð7ð7ð7ð ð ð ð ð &ð &ð &ð &ð &ð &ð>ð>ð>ðððð ððð (ð (ð (ð"ð"ð"ð ððð ð ð ð Uððððð4ððð ððð.ððððððð, ð ð ððððMðMðMð^(ð(ð(ð8"�r”zÐ"8Ñ9Ô9Ðð 0ð 0ð 0ð ,ð ,ð ,ð ,ð!ð!ð!ð!ð6ð6ð6ð6ð ð ð ðJðJðJð*ð*ð*ð ð ð ð ð)ð)ð)ð)ð)ð+ð+ð+ð+ð+ð ,ð,ð,ð,ð,ð,ð,ð,ð,ð,ð,r0r¶c ó†—|jdkr3dD]2}| |dd| |d¦«z¦«Œ1dSdS)z6Make paste replace selection on x11. See issue #5124.Úx11)ÚTextÚEntryÚSpinboxz <>z%catch {%W delete sel.first sel.last} N)Ú_windowingsystemÚ bind_class)r�Úclss r(Ú fix_x11_pasterïsk€à Ô Ò%Ð%Ø-ð ;ð ;ˆCØ �OŠOØØØ8ØŸš¨¨[Ñ9Ô9ñ:ñ ;ô ;ð ;ð ;ð&Ð%ð ;ð ;r0a¢ USAGE: idle [-deins] [-t title] [file]* idle [-dns] [-t title] (-c cmd | -r file) [arg]* idle [-dns] [-t title] - [arg]* -h print this help message and exit -n run IDLE without a subprocess (DEPRECATED, see Help/IDLE Help for details) The following options will override the IDLE 'settings' configuration: -e open an edit window -i open a shell window The following options imply -i and will open a shell: -c cmd run the command in a shell, or -r file run script from file -d enable the debugger -s run $IDLESTARTUP or $PYTHONSTARTUP before anything else -t title set title of shell window A default edit window will be bypassed when -c, -r, or - are used. [arg]* are passed to the command (-c) or script (-r) in sys.argv[1:]. Examples: idle Open an edit window or shell depending on IDLE's configuration. idle foo.py foobar.py Edit the files, also open a shell if configured to start with shell. idle -est "Baz" foo.py Run $IDLESTARTUP or $PYTHONSTARTUP, edit foo.py, and open a shell window with the title "Baz". idle -c "import sys; print(sys.argv)" "foo" Open a shell window and run the command, passing "-c" in sys.argv[0] and "foo" in sys.argv[1]. idle -d -s -r foo.py "Hello World" Open a shell window, run a startup script, enable the debugger, and run foo.py, passing "foo.py" in sys.argv[0] and "Hello World" in sys.argv[1]. echo "import sys; print(sys.argv)" | idle - "foobar" Open a shell window, run the script piped in, passing '' in sys.argv[0] and "foobar" in sys.argv[1]. cóô‡‡—ddl}ddlm}ddlm}ddlm}t d¦«dad}d}d}d}d}d} | tj dd…d¦«\} } nQ#|j $rD} td | ›d t›�tj ¬ ¦«tjd ¦«Yd} ~ nd} ~ wwxYw| D]ô\} }| d kr|}d}| dkrd}d}| dkrd}| dkr7tj t¦«tj¦«| dkrd}| dkrtdtj ¬ ¦«da| dkrG|}t"j |¦«rn#td|¦«tj¦«d}| dkrd} d}| dkr|t(_d}Œõ| r,| ddkr tj ¦«}d}t1t3tj¦«¦«D]>}t"j tj|¦«tj|<Œ?| r%| ddkrdg| dd…zt_ n÷|rd g| zt_ nä|r|g| zt_ nÑ| rŽd}g}| D]4}| t"j |¦«¦«Œ5|D]O}t"j |¦«}|tjvr tj d|¦«ŒPnAt#j¦«}|tjvr tj d|¦«t?j dddd¬¦«}|p|}|p| }tr|stC¦«tEd¬ ¦«a#tF $¦«dd!l%m&}|tF¦«t"j 't"j tP¦«d"¦«Š|¦«d#kr|¦«|s|r‹|j= ?d/ @tj ¦«¦«|r|j= A|¦«nd|r4|j= B|¦«|j= >|¦«n-|r+| C¦«}|r| D|¦«t`jEr%tF F¦«t`jE°%tF G¦«t d¦«dS)0Nr)Úsystem)Útesting)ÚmacosxTFrz c:deihnr:st:zError: r†rr¤rz-dz-ez-hz-iz-nz: Warning: running IDLE without a subprocess is deprecated.z-rzNo script file: z-sz-tú-rbr r zeditor-on-startupr )rÚIdle)Ú className)Ú fix_scalingÚIconsÚWindowszidle.ico)r g333333!@z.png)éé é0éz.gif)rÎrÏrÐcóZ•—g|]'}tj ‰d|‰fz¦«‘Œ(S)z idle_%d%s)rPrQrR)rÚsizeÚextÚicondirs €€r(r zmain..YsBø€ð(ð(ð(Øõ”W—\’\ '¨;¸$À¸Ñ+DÑEÔEð(ð(ð(r0có:—g|]}tt|¬¦«‘ŒS))Úmasterr)Ú PhotoImager�)rÚiconfiles r(r zmain..[s5€ð,ð,ð,Øõ¥4¨hÐ7Ñ7Ô7ð,ð,ð,r0Ú IDLESTARTUPÚ PYTHONSTARTUPzdif 1: import sys as _sys _sys.argv = {!r} del _sys )HÚgetoptrZrÅr‚rÆrÇr/r—rôÚargvÚerrorreÚ usage_msgrÚexitrr!rPrQr™r¶rUr×r–r¥r›r˜rpÚdirnamervÚgetcwdrrÚ NoDefaultRootrçr�rèÚ idlelib.runrËrRÚ__file__Ú wm_iconbitmapÚisAquaTkÚ TkVersionÚ wm_iconphotorrÃr²rNÚsetupApprŠr}ÚnewrOÚdictr´Úlowerrqr9Úenvironrrrr�rYrZr“r¦ÚpreferTabsPreferenceWarningr¦Ú inversedictrhÚdestroy)rÜrÅrÆrÇÚ enable_shellÚ enable_editrsÚcmdÚscriptÚstartupÚoptsrYr¨ÚoÚar1Úpathxr&ÚdirÚ edit_startrËrÙÚsizesÚ iconfilesÚiconsrÜÚprefer_tabs_preference_warningrÔrÕs @@r(r r ðsÇøø€Ø€M€M€MØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐõ�TÑÔÐØ€NØ€LØ€KØ €EØ €CØ €FØ€GðØ—]’]¥3¤8¨A¨B¨B¤<°Ñ@Ô@‰ ˆˆdˆdøØ Œ<ðððÝ Ð*˜Ð*Ð*�yÐ*Ð*µ´Ð<Ñ<Ô<Ð<Ý Œ�‰ Œ ˆ ˆ ˆ ˆ ˆ ˆ øøøøðøøøðð 𠉈ˆ1Ø �Š9ˆ9؈C؈LØ �Š9ˆ9؈E؈LØ �Š9ˆ9؈KØ �Š9ˆ9Ý ŒJ× Ò �YÑ 'Ô 'Ð 'Ý ŒH‰JŒJˆJØ �Š9ˆ9؈LØ �Š9ˆ9Ý ÐNÝ”zð #ñ #ô #ð #à"ˆNØ �Š9ˆ9؈FÝŒw�~Š~˜fÑ%Ô%ð ØåÐ(¨&Ñ1Ô1Ð1Ý”‘ ” � ؈LØ �Š9ˆ9؈G؈LØ �Š9ˆ9Ø"#�GÔ ØˆLøØ ð��Q”˜3’�ÝŒi�nŠnÑԈ؈ å •3•s”x‘=”=Ñ !Ô !ð3ð3ˆÝ”g—o’o¥c¤h¨q¤kÑ2Ô2�Œ�‰ ˆ Ø ð$��Q”˜3’�Ø�4˜$˜q˜r˜rœ(‘?�ŒˆØ ð$Ø�6˜D‘=�ŒˆØ ð$Ø�8˜d‘?�ŒˆØ ð $؈ ؈Øð 4ð 4ˆHØ �LŠL�œŸš¨Ñ2Ô2Ñ 3Ô 3Ð 3Ð 3Øð (ð (ˆCÝ”'—/’/ #Ñ&Ô&ˆCØ�#œ(�?�?Ý”—’  3Ñ'Ô'Ð'øð (õ Œi‰kŒkˆØ •c”hÐ Ð Ý ŒH�OŠO˜A˜sÑ #Ô #Ð #åÔ# F¨IØ$7¸fðFñFôF€JàÐ+ €KØÐ2 { ?€Lõð˜gð݉ŒˆÝ ˜Ð Ñ Ô €D݇M‚M�O„O€OØ'Ð'Ð'Ð'Ð'Ð'Ø€K•ÑÔÐõŒg�lŠl�2œ7Ÿ?š?­8Ñ4Ô4°gÑ>Ô>€GØ €v�x„x�9ÒÐÝ”7—<’< ¨Ñ4Ô4ˆÝ ×Ò 8ÐÑ,Ô,Ð,Ð,Ø �_Š_Ñ Ô ð (Ý ˜Ò Р؈CØ%ˆEˆEàˆCØ ˆEð(ð(ð(ð(ð(Ø!&ð(ñ(ô(ˆ ð,ð,Ø!*ð,ñ,ô,ˆå Ô˜$Ð' Ð'Ð'Ð'Ð'õ•$ÑÔÐÝ•$ÑÔÐÝ �DÑ !Ô !€EØ ‡O‚O•D�%Ñ Ô Ð àðØð �vð Ø    œGð *ð *�Ý—:’:˜hÑ'Ô'Ð/à—K’K Ñ)Ô)Ð)øØð Ý— ’ ‘ ” � àð Ý× Ò Ñ"Ô"ˆØð Ø ˆFØ �?Š?Ñ Ô ð ¥¤ð ð ŒI�OŠOÑ Ô Ð øå” ˆð ðØ ×ÒÑÔÐØð,Ý”:—>’> -Ñ0Ô0ð3Ý”:—>’> /Ñ2Ô2ð à ð ,�œŸš xÑ0Ô0ð ,Ø ŒL× !Ò ! (Ñ +Ô +Ð +Ø ð?ˆfð?Ø Œ ×Òð!÷’&�œÑ"Ô"ñ  $ô $ð $ð ð *Ø ŒL× #Ò # CÑ (Ô (Ð (Ð (Ø ð *Ø ŒL× (Ò (¨Ñ 0Ô 0Ð 0Ø ŒL× !Ò ! &Ñ )Ô )Ð )øØ ð ?ð*0×)KÒ)KÑ)MÔ)MÐ&Ø )ð ?Ø × Ò Ð=Ñ >Ô >Ð >å Ô ðÝ � Š ‰Œˆõ Ô ðå‡L‚L�N„N€NÝ�UÑÔÐÐÐs·+A#Á# B1Á-:B,Â,B1)NN)Rrôr«rõr]Ú ImportErrorrerir¿rZÚctypesÚPROCESS_SYSTEM_DPI_AWAREÚOleDLLÚSetProcessDpiAwarenessr"r#r r�r rµr4rPÚos.pathr r„r&rÚtextwrapr rKrr•r,Úidlelib.colorizerrÚidlelib.configrÚidlelib.delegatorrr‚rrÚidlelib.editorrrÚidlelib.filelistrÚidlelib.outwinrrrrärrrÚ idlelib.undorr—rrùÚeofràrfÚ NameErrorr r)r+r/Ú checkcacher<r>r²rºrÅràÚ RPCClientrãrîrðr¶rÃrßr r°r0r(úrs:ðð € € € Ø ˆzÒÐØ%(¤[°Ô%<€C„KÐ!Ñ"ðØÐÐÐÐøØðððØ €Eð 9Ø?B¼~ðOñOôOðOà ˆ*�Q‰-Œ-Ððøøøð„<�7ÒÐð Øˆ ˆ ˆ Ø#$Р؈Œ �hÑÔ×6Ò6Ð7OÑPÔPÐPÐPøØ ˜¨Ð 1ð ð ð Ø ˆð øøøðÐÐÐÐÐà'Ð'Ð'Ð'Ð'Ð'ØÐÐÐØÐÐÐØ € € € Ø€€€Ø#Ð#Ð#Ð#Ð#Ð#Ø € € € Ø € € € ØÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐØ € € € Ø€€€Ø€€€à,Ð,Ð,Ð,Ð,Ð,Ø#Ð#Ð#Ð#Ð#Ð#Ø'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐØÐÐÐÐÐØ6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ø%Ð%Ð%Ð%Ð%Ð%Ø'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐØÐÐÐÐÐØGÐGÐGÐGÐGÐGÐGÐGÐGÐGØ&Ð&Ð&Ð&Ð&Ð&ð€à€Ø€ð Ø €CØ€D„HØ€D„H€HøØð ð ð Ø€Dð øøøð”€ð>Bð ð ð ð ð"Ðð )ð )ð )ðÐ�ÑÔÐà+/Ø2;Ô2Fððððð(5€ Ôð{"ð{"ð{"ð{"ð{"˜,ñ{"ô{"ð{"ð|ðððð�hñôðð( 2ð 2ð 2ð 2ð 2˜^ñ 2ô 2ð 2ð/ð/ð/ð/ð/˜Mñ/ô/ð/ðD1ð1ð1ð1ð1  ñ1ô1ð1ððððð�#”-ñôðð ð ð ðj(ðj(ðj(ðj(ðj(Ð0ñj(ôj(ðj(ðZ ` ,ð` ,ð` ,ð` ,ð` ,ˆlñ` ,ô` ,ð` ,ðF;ð;ð;ð4 € ðlnðnðnð` ˆzÒÐØ€D�F„F€FàÐ�ÑÔÐÐÐs-¡&¦#A Á)BÂB  B Ä)D:Ä:EÅE