shell bypass 403
o
_b4T � @ sz d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
ZddlZddl
Z
ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ ddlZddlZeejd
d�s�dD ]
Zeee� ejd
e = qrdejd
_dZz
dZee_ee _W n e!y� Y nw dDdd�Z" dEdd�Z#da$dd� Z%e%d� e�&� Z'e'fdd�Z(da)da*da+dFdd�Z,dd� Z-dd� Z.d d!� Z/d"d#� Z0d$d%� Z1d&d'� Z2d(d)� Zd*d+� Z3d,d-� Z4d.Z5d/d0� Z6d1d2� Z7G d3d4� d4ej8�Z9G d5d6� d6ej:�Z;G d7d8� d8e;�Z<G d9d:� d:e;�Z=G d;d<� d<ej>�Z?G d=d>� d>�Z@eAd?k�r7dd@lBm,Z, e,dAdBdC� e%d� dS )Gz� idlelib.run
Simplified, pyshell.ModifiedInterpreter spawns a subprocess with
f'''{sys.executable} -c "__import__('idlelib.run').run.main()"'''
'.run' is needed because __import__ returns idlelib, not idlelib.run.
� N)�autocomplete)�calltip)�
debugger_r)�
debugobj_r)�iomenu)�rpc)�stackviewerzidlelib.run�firstrun)ZsimpledialogZ
messagebox�fontZdialogZ
filedialogZcommondialog�ttkztkinter.Fz 127.0.0.1zCtrl-D (end-of-file)c C sV d}|d||f 7 }|du rt �||�}|�� }|r |d| 7 }|d|j| f 7 }|S )zFormat warnings the IDLE way.z!
Warning (from warnings module):
z File "%s", line %s
Nz %s
z%s: %s
)� linecache�getline�strip�__name__)�message�category�filename�lineno�line�s� r �4/usr/local/python-3.10/lib/python3.10/idlelib/run.py�idle_formatwarning3 s r c C s@ |du rt j}z|�t| ||||�� W dS ty Y dS w )zuShow Idle-format warning after replacing warnings.showwarning.
The only difference is the formatter called.
N)�sys�stderr�writer �OSError)r r r r �filer r r r �idle_showwarning_subproc@ s
��r c C s: | rt du rtja tt_dS dS t durt t_da dS dS )zFReplace warning.showwarning with idle_showwarning_subproc, or reverse.N)�_warnings_showwarning�warnings�showwarningr )�capturer r r �capture_warningsP s
��r# Tc C s | � d� dS )z�Process any tk events that are ready to be dispatched if tkinter
has been imported, a tcl interpreter has been created and tk has been
loaded.�updateN)�eval)�tclr r r �handle_tk_events` s r'