Ë
    úmxi1d  ã                  ó  — U d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZ ddlmZ dd	lmZmZ dd
l m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZCmDZD ddlEmFZFmGZGmHZHmIZI ddlJmKZK ddlLmMZM ddlNmOZO dd lPmQZQ dd!lRmSZS dd"lTmUZU dd#lVmWZW dd$lXmYZY dd%lZm[Z[ dd&l\m]Z] dd'l^m_Z_ dd(l`maZa dd)lbmcZc dd*ldmeZe dd+lfmgZg dd,lhmiZi dd-ljmkZk dd.llmmZm dd/lnmoZo dd0lpmqZq dd1lrmsZs dd2ltmuZu dd3lvmwZw dd4lxmyZy dd5lzm{Z{ dd6l|m}Z} dd7l~mZ dd8l€m�Z� dd9l‚mƒZƒ dd:l„m…Z… dd;l†m‡Z‡ dd<lˆm‰Z‰ dd=lŠm‹Z‹mŒZŒ dd>l�mŽZŽ dd?l�m�Z� dd@l‘m’Z’ ddAl“m”Z” ddBl•m–Z— ddCl•m˜Z˜ er$ddDl™mšZš ddEl›mœZœ ddFl�mžZž ddGlŸm Z  ddHlEm¡Z¡ ddIl¢m£Z¤ dJZ¥dKe¦dL<    edM«      Z§e¨Z©dNe¦dO<   ee©   ZªdNe¦dP<   eg e�f   Z«dNe¦dQ<   dRa¬dSe¦dT<   dZdU„Z­dZdV„Z® G dW„ dXge!‘eg‘e%‘e'‘ei‘ek‘em‘eo‘eq‘e)‘es‘e/‘e1‘ew‘e3‘e5‘e7‘e-‘e9‘e;‘e=‘eA‘eM‘eK‘eO‘eQ‘ey‘e{‘eS‘eU‘eW‘e+‘eY‘e}‘e�‘e‘eƒ‘e[‘e]‘e_‘e?‘ea‘e…‘e‡‘ec‘e‰‘e#‘ee‘eu‘e‘­Ž Z¯d[dY„Z°y)\z@Allows us to create and absorb changes (aka Deltas) to elements.é    )ÚannotationsN)ÚCallableÚIterable)Údeepcopy)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚNoReturnÚ	TypeAliasÚTypeVarÚcast)Úcli_utilÚconfigÚcursorÚenv_utilÚloggerÚruntimeÚutil)ÚBidiComponentMixin)Úcontext_dg_stackÚ"get_last_dg_added_to_context_stack)Ú
AlertMixin)Ú
ArrowMixin)ÚBalloonsMixin)Ú
BokehMixin)Ú	CodeMixin)ÚPydeckMixin)Ú	HelpMixin)Ú
EmptyMixin)ÚExceptionMixin)Ú	FormMixin)ÚGraphvizMixin)ÚHeadingMixin)Ú	HtmlMixin)ÚIframeMixin)Ú
ImageMixin)Ú	JsonMixin)ÚLayoutsMixin)ÚFormDataÚcurrent_form_id)Úget_height_configÚget_text_alignment_configÚget_width_configÚvalidate_text_alignment)ÚMapMixin)ÚMarkdownMixin)Ú
MediaMixin)ÚMetricMixin)ÚPdfMixin)ÚPlotlyMixin)ÚProgressMixin)ÚPyplotMixin)Ú	SnowMixin)Ú
SpaceMixin)ÚSpinnerMixin)Ú	TextMixin)Ú
ToastMixin)ÚVegaChartsMixin)ÚAudioInputMixin)ÚButtonMixin)ÚButtonGroupMixin)ÚCameraInputMixin)Ú	ChatMixin)ÚCheckboxMixin)ÚColorPickerMixin)ÚDataEditorMixin)ÚFileUploaderMixin)ÚMultiSelectMixin)ÚNumberInputMixin)Ú
RadioMixin)ÚSelectSliderMixin)ÚSelectboxMixin)ÚSliderMixin)ÚTextWidgetsMixin)ÚTimeWidgetsMixin)Ú
WriteMixin)ÚNoSessionContextÚStreamlitAPIException)Ú	Block_pb2)Ú
ForwardMsg)ÚRootContainer)Úcaching)Úenqueue_message)Úget_script_run_ctx)ÚTracebackType)ÚMessage)ÚCursor)ÚAddRowsMetadata)ÚLayoutConfig)ÚElementi  à z
Final[int]ÚMAX_DELTA_BYTESÚValuer   Ú	BlockTypeÚAncestorBlockTypesÚForwardMsgCreatorFÚboolÚ_use_warning_has_been_displayedc                 ó’  — t         sÁda t        j                  ddd¬«      } t        j                  «       r)t        j                  d«      j                  d| › d�«       yt        j                  «       sUt        j                  d«      r?t        j                  d	   }t        j                  d«      j                  d| › d
|› d�«       yyyy)z¡Print a warning if Streamlit is imported but not being run with `streamlit run`.
    The warning is printed only once, and is printed using the root logger.
    TúWarning:Úyellow©ÚboldÚfgÚrootú
  z’ to view a Streamlit app on a browser, use Streamlit in a file and
  run it with the following command:

    streamlit run [FILE_NAME] [ARGUMENTS]z#global.showWarningOnDirectExecutionr   zb to view this Streamlit app on a browser, run it with the following
  command:

    streamlit run z [ARGUMENTS]N)rd   r   Ústyle_for_clir   Úis_replr   Ú
get_loggerÚwarningr   Úexistsr   Ú
get_optionÚsysÚargv)rp   Úscript_names     úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/delta_generator.pyÚ_maybe_print_use_warningrw   ‡   sÅ   € õ +Ø*.Ð'ä×(Ñ(¨¸$À8ÔLˆä×ÑÔÜ×Ñ˜fÓ%×-Ñ-Ø�w�ið  *ð *õô —‘Ô!¤f×&7Ñ&7Ø1ô'
ô Ÿ(™( 1™+ˆKä×Ñ˜fÓ%×-Ñ-Ø�w�ið  BØBMÀð Oðõð'
Ð!ð +ó    c                 óº   — t        «       } | rOt        | dd«      rAt        j                  ddd¬«      }t	        j
                  d«      j                  d|› d	�«       y
y
y
)zJPrint a warning if elements are being modified during a fragment callback.Úin_fragment_callbackFrf   Trg   rh   rk   rl   a   A fragment rerun was triggered with a callback that displays one or more elements. During a fragment rerun, within a callback, displaying elements is not officially supported because those elements will replace the existing elements at the top of your app.N)rW   Úgetattrr   rm   r   ro   rp   )Úctxrp   s     rv   Ú&_maybe_print_fragment_callback_warningr}   ¥   s`   € ä
Ó
€CÙ
Œw�sÐ2°EÔ:Ü×(Ñ(¨¸$À8ÔLˆä×Ñ˜&Ó!×)Ñ)Ø�7�)ð Xð Xõ	
ð ;€srx   c                  ól  — e Zd ZdZej
                  dddf	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Z	e
dd„«       Ze
dd„«       Zdd	„Zdd
„Ze
dd„«       Ze
dd„«       Z	 	 	 	 dd„Ze
d d„«       Ze
d!d„«       Ze
dd„«       Zd"d„Zdd„Z	 	 d#	 	 	 	 	 	 	 	 	 d$d„Z	 	 d#	 	 	 	 	 d%d„Z	 d&	 	 	 	 	 d'd„Zy)(ÚDeltaGeneratoraG  Creator of Delta protobuf messages.

    Parameters
    ----------
    root_container: BlockPath_pb2.BlockPath.ContainerValue or None
      The root container for this DeltaGenerator. If None, this is a null
      DeltaGenerator which doesn't print to the app at all (useful for
      testing).

    cursor: cursor.Cursor or None
      This is either:
      - None: if this is the running DeltaGenerator for a top-level
        container (MAIN or SIDEBAR)
      - RunningCursor: if this is the running DeltaGenerator for a
        non-top-level container (created with dg.container())
      - LockedCursor: if this is a locked DeltaGenerator returned by some
        other DeltaGenerator method. E.g. the dg returned in dg =
        st.text("foo").

    parent: DeltaGenerator
      To support the `with dg` notation, DGs are arranged as a tree. Each DG
      remembers its own parent, and the root of the tree is the main DG.

    block_type: None or "vertical" or "horizontal" or "column" or "expandable"
      If this is a block DG, we track its type to prevent nested columns/expanders

    Nc                ó4  — |�|�||j                   k7  rt        d«      ‚|| _        || _        || _        || _        d| _        | j                  j                  D ]>  }|j                  j                  «       D ]  }t        |«      sŒ| j                  |_        Œ! Œ@ y)am  Inserts or updates elements in Streamlit apps.

        As a user, you should never initialize this object by hand. Instead,
        DeltaGenerator objects are initialized for you in two places:

        1) When you call `dg = st.foo()` for some method "foo", sometimes `dg`
        is a DeltaGenerator object. You can call methods on the `dg` object to
        update the element `foo` that appears in the Streamlit app.

        2) This is an internal detail, but `st.sidebar` itself is a
        DeltaGenerator. That's why you can call `st.sidebar.foo()` to place
        an element `foo` inside the sidebar.

        NzHDeltaGenerator root_container and cursor.root_container must be the same)Úroot_containerÚRuntimeErrorÚ_root_containerÚ_provided_cursorÚ_parentÚ_block_typeÚ
_form_dataÚ	__class__Ú	__bases__Ú__dict__ÚvaluesÚcallableÚ
__module__)Úselfr�   r   ÚparentÚ
block_typeÚmixinÚfuncs          rv   Ú__init__zDeltaGenerator.__init__  s£   € ð0 Ð&ØÐ"Ø &×"7Ñ"7Ò7äØZóð ð  .ˆÔð !'ˆÔàˆŒØ%ˆÔð ,0ˆŒð —^‘^×-Ñ-ò 	6ˆEØŸ™×-Ñ-Ó/ò 6�Ü˜D•>Ø&*§o¡o�D•Oñ6ñ	6rx   c                ó,   — t        j                  | «      S ©N)r   Úrepr_©rŽ   s    rv   Ú__repr__zDeltaGenerator.__repr__:  s   € Ü�z‰z˜$ÓÐrx   c                ó\   — t        j                  g t        j                  «       ¢| ‘­«       y r•   ©r   ÚsetÚgetr—   s    rv   Ú	__enter__zDeltaGenerator.__enter__=  s%   € ä×ÑÐ<Ô/×3Ñ3Ó5Ð<°tÑ<Õ=rx   c                óX   — t        j                  t        j                  «       d d «       y)NéÿÿÿÿFrš   )rŽ   ÚtypÚexcÚtbs       rv   Ú__exit__zDeltaGenerator.__exit__A  s(   € ô 	×ÑÔ-×1Ñ1Ó3°C°RÐ8Ô9ð rx   c                ó@   — | | j                   k(  rt        «       }|�|S | S )zóReturn the DeltaGenerator that's currently 'active'.
        If we are the main DeltaGenerator, and are inside a `with` block that
        creates a container, our active_dg is that container. Otherwise,
        our active_dg is self.
        )Ú_main_dgr   )rŽ   Úlast_context_stack_dgs     rv   Ú
_active_dgzDeltaGenerator._active_dgN  s/   € ð �4—=‘=Ò ô %GÓ$HÐ!Ø$Ð0Ø,Ð,ð ˆrx   c                óJ   — | j                   r| j                   j                  S | S )z±Return this DeltaGenerator's root - that is, the top-level ancestor
        DeltaGenerator that we belong to (this generally means the st._main
        DeltaGenerator).
        )r…   r¥   r—   s    rv   r¥   zDeltaGenerator._main_dg`  s   € ð )-¯ªˆt�|‰|×$Ñ$Ð>¸$Ð>rx   c           	     óŒ   ‡ ‡‡— dd l }t        |«      D �cg c]  }t        t        ||«      «      sŒ|‘Œ c}Šdˆˆ ˆfd„}|S c c}w )Nr   c                 ó¸   •— ‰‰v rE‰j                   t        j                  k(  rd‰› d‰› d�}t        |«      ‚d‰› d‰› d�}t        |«      ‚d‰› d�}t        |«      ‚)NzMethod `z6()` does not exist for `st.sidebar`. Did you mean `st.z()`?zB()` does not exist for `DeltaGenerator` objects. Did you mean `st.ú`z%()` is not a valid Streamlit command.)rƒ   rT   ÚSIDEBARrQ   )ÚargsÚkwargsÚmessageÚnamerŽ   Ústreamlit_methodss      €€€rv   Úwrapperz+DeltaGenerator.__getattr__.<locals>.wrappero  s“   ø€ ØÐ(Ñ(Ø×'Ñ'¬=×+@Ñ+@Ò@à" 4 &ð ):Ø:>¸¸tðEð ô (¨Ó0Ð0ð # 4 &ð )à#˜f Dð*ð ô (¨Ó0Ð0ð ˜d˜VÐ#HÐI�ä'¨Ó0Ð0rx   )r­   r   r®   r   Úreturnr   )Ú	streamlitÚdirrŒ   r{   )rŽ   r°   ÚstÚmethod_namer²   r±   s   ``   @rv   Ú__getattr__zDeltaGenerator.__getattr__h  sA   ú€ Ûô ,/¨r«7ö
Ø'´h¼wÀrÈ;Ó?WÕ6XŠKò
Ð÷	1ð$ ˆùò-
s
   •A°Ac                óÌ   — t        | j                  t        | j                  «      t        | j                  «      | j
                  ¬«      }t        | j                  «      |_        |S )N©r�   r   r�   r�   )r   rƒ   r   Ú_cursorr…   r†   r‡   )rŽ   Ú_memoÚdgs      rv   Ú__deepcopy__zDeltaGenerator.__deepcopy__ƒ  sM   € ÜØ×/Ñ/Ü˜DŸL™LÓ)Ü˜DŸL™LÓ)Ø×'Ñ'ô	
ˆô ! §¡Ó1ˆŒØˆ	rx   c              #  ó<   K  — | }|�|–— |j                   }|�Œy y ­wr•   )r…   )rŽ   Ú
current_dgs     rv   Ú
_ancestorszDeltaGenerator._ancestors�  s*   è ø€ à,0ˆ
ØÐ$ØÒØ#×+Ñ+ˆJð Ó$ùs   ‚šc              #  ód   K  — | j                   D ]  }|j                  €Œ|j                  –— Œ y­w)znIterate all the block types used by this DeltaGenerator and all
        its ancestor DeltaGenerators.
        N)rÁ   r†   )rŽ   Úas     rv   Ú_ancestor_block_typesz$DeltaGenerator._ancestor_block_types”  s/   è ø€ ð
 —‘ò 	$ˆAØ�}‰}Ñ(Ø—m‘mÓ#ñ	$ùs   ‚0Ÿ0c                ó&   — t        d„ |D «       «      S )Nc              3  ó,   K  — | ]  }|d k(  sŒ	d–— Œ y­w)Úcolumné   N© )Ú.0Úancestor_blocks     rv   ú	<genexpr>z>DeltaGenerator._count_num_of_parent_columns.<locals>.<genexpr>   s   è ø€ ò 
Ø ¸NÈhÓ<VŒAñ
ùs   ‚
�)Úsum)rŽ   Úancestor_block_typess     rv   Ú_count_num_of_parent_columnsz+DeltaGenerator._count_num_of_parent_columns�  s   € ô ñ 
Ø$8ô
ó 
ð 	
rx   c                óp   — | j                   €t        j                  | j                  «      S | j                   S )z£Return our Cursor. This will be None if we're not running in a
        ScriptThread - e.g., if we're running a "bare" script outside of
        Streamlit.
        )r„   r   Úget_container_cursorrƒ   r—   s    rv   r»   zDeltaGenerator._cursor¤  s3   € ð × Ñ Ð(Ü×.Ñ.¨t×/CÑ/CÓDÐDØ×$Ñ$Ð$rx   c                ó   — | j                   d u S r•   )r„   r—   s    rv   Ú_is_top_levelzDeltaGenerator._is_top_level®  s   € à×$Ñ$¨Ð,Ð,rx   c                ó*   — t        t        | «      «      S r•   )ÚstrÚidr—   s    rv   rÖ   zDeltaGenerator.id²  s   € ä”2�d“8‹}Ðrx   c                ój   — | j                   j                  }|€t        d«      ‚ |j                  «       S )NzCursor is not set)r§   r»   rP   Úget_transient_cursor)rŽ   r   s     rv   Ú_get_transient_cursorz$DeltaGenerator._get_transient_cursor¶  s3   € Ø—‘×(Ñ(ˆØˆ>Ü"Ð#6Ó7Ð7à*ˆv×*Ñ*Ó,Ð,rx   c                ót   — | j                   }|j                  �t        |j                  j                  «      S dS )aÝ  Returns the element's delta path as a string like "[0, 2, 3, 1]".

        This uniquely identifies the element's position in the front-end,
        which allows (among other potential uses) the MediaFileManager to maintain
        session-specific maps of MediaFile objects placed with their "coordinates".

        This way, users can (say) use st.image with a stream of different images,
        and Streamlit will expire the older images and replace them in place.
        z[])r§   r»   rÕ   Ú
delta_path)rŽ   r½   s     rv   Ú_get_delta_path_strz"DeltaGenerator._get_delta_path_str½  s0   € ð �_‰_ˆØ-/¯Z©ZÐ-CŒs�2—:‘:×(Ñ(Ó)ÐMÈÐMrx   c                óö  — | j                   }t        «       }|r"|j                  rt        |«      rt	        d«      ‚t        «        t        «        t        «       }t        |j                  j                  |«      }|j                  |«       |rÿ|j                  �B|j                  j                  j                  j                  t        |j                  «      «       |j                  �B|j                  j                  j                   j                  t#        |j                  «      «       |j$                  �Wt'        |j$                  «       |j                  j                  j(                  j                  t+        |j$                  «      «       d}	|j,                  �F|j.                  �:|j.                  j0                  |j2                  j0                  dd t5        |«       d}	|	r]|j.                  �|j.                  j7                  ||¬«      nd}
t9        |j,                  |
|¬«      }t;        t=        |«      «      |_        n|}tA        jB                  ||| jD                  |jD                  |jD                  |¬«       |S )a  Create NewElement delta, fill it, and enqueue it.

        Parameters
        ----------
        delta_type : str
            The name of the streamlit method being called
        element_proto : proto
            The actual proto in the NewElement type e.g. Alert/Button/Slider
        add_rows_metadata : AddRowsMetadata or None
            Metadata for the add_rows method

        Returns
        -------
        DeltaGenerator
            Return a DeltaGenerator that can be used to modify the newly-created
            element.
        zÉCalling `st.sidebar` in a function wrapped with `st.fragment` is not supported. To write elements to the sidebar with a fragment, call your fragment function inside a `with st.sidebar` context manager.NFT)Ú
delta_typeÚadd_rows_metadata)r�   r   r�   )Úinvoked_dg_idÚ
used_dg_idÚreturned_dg_idÚlayout_config)#r§   rW   Úcurrent_fragment_idÚ_writes_directly_to_sidebarrQ   rw   r}   rS   r{   ÚdeltaÚnew_elementÚCopyFromÚheightÚheight_configr,   ÚwidthÚwidth_configr.   Útext_alignmentr/   Útext_alignment_configr-   rƒ   r»   rÛ   ÚmetadataÚ_enqueue_messageÚget_locked_cursorr   r*   r+   r‡   rU   Úsave_element_messagerÖ   )rŽ   rÞ   Úelement_protorß   rã   r½   r|   ÚmsgÚmsg_el_protoÚmsg_was_enqueuedÚ
new_cursorÚ	output_dgs               rv   Ú_enqueuezDeltaGenerator._enqueueË  s   € ð2 �_‰_ˆä Ó"ˆÙ�3×*Ò*Ô/JÈ2Ô/NÜ'ðPóð ô 	!Ô"ä.Ô0ô ‹lˆÜ˜sŸy™y×4Ñ4°jÓAˆØ×Ñ˜mÔ,áØ×#Ñ#Ð/Ø—	‘	×%Ñ%×3Ñ3×<Ñ<Ü% m×&:Ñ&:Ó;ôð ×"Ñ"Ð.Ø—	‘	×%Ñ%×2Ñ2×;Ñ;Ü$ ]×%8Ñ%8Ó9ôð ×+Ñ+Ð7Ü'¨×(DÑ(DÔEØ—	‘	×%Ñ%×;Ñ;×DÑDÜ-¨m×.JÑ.JÓKôð
 !ÐØ×ÑÐ)¨b¯j©jÐ.DØ)+¯©×)>Ñ)>ˆC�L‰L×#Ñ#¡AÐ&ä˜SÔ!Ø#Ðáð —:‘:Ð)ð —
‘
×,Ñ,Ø)Ð=Nð -ô ð ð ô 'Ø!×1Ñ1Ø!ØôˆIô $,¬O¸BÓ,?Ó#@ˆIÕ ð ˆIô 	×$Ñ$ØØØŸ'™'Ø—u‘uØ$Ÿ<™<Ø'õ	
ð Ðrx   c           	     ó2  — |€t        j                  «       }| j                  }|j                  d«      }|j                  �|j
                  €|S t        «       }|j
                  j                  |j                  j                  d d  |j                  j                  j                  |«       t        j                  |j                  g |j
                  j                  ¢|j
                  j                  ‘­¬«      }|€t         }t#        d ||j                  |||¬«      «      }t%        t'        |«      «      |_        |j
                  j+                  d ¬«       t-        |«       t/        j0                  || j2                  |j2                  |j2                  ¬«       |S )NÚtype)r�   Úparent_pathr   rº   )rß   )rà   rá   râ   )rR   ÚBlockr§   Ú
WhichOneofrƒ   r»   rS   rÛ   rï   ræ   Ú	add_blockrè   r   ÚRunningCursorrü   Úindexr   r   r*   r+   r‡   rñ   rð   rU   Úsave_block_messagerÖ   )rŽ   Úblock_protoÚdg_typer½   r�   rô   Úblock_cursorÚblock_dgs           rv   Ú_blockzDeltaGenerator._block4  sY  € ð
 ÐÜ#Ÿ/™/Ó+ˆKð �_‰_ˆð !×+Ñ+¨FÓ3ˆ
à×ÑÐ%¨¯©Ð);ØˆIä‹lˆØ%'§Z¡Z×%:Ñ%:ˆ�‰×Ñ¡Ð"Ø�	‰	×Ñ×$Ñ$ [Ô1ô
 ×+Ñ+Ø×-Ñ-ØC˜"Ÿ*™*×0Ñ0ÐC°"·*±*×2BÑ2BÑCô
ˆð ˆ?Ü$ˆGäØÙØ!×1Ñ1Ø#ØØ%ô	ó
ˆô '¤°rÓ':Ó;ˆÔð 	�
‰
×$Ñ$°tÐ$Ô<Ü˜Ôä×"Ñ"ØØŸ'™'Ø—u‘uØ#Ÿ;™;õ		
ð ˆrx   c                ó¶  ‡‡‡‡‡	— | j                  «       }|j                  Š|j                  Š|j                  Š|rt|j                  �.‰j
                  j                  t        |j                  «      «       |j                  �.‰j                  j                  t        |j                  «      «       t        j                  «       Š	dˆˆˆˆˆ	fd„}dˆˆˆˆ	fd„}||fS )aa  Provides the factory functions for creating and clearing transient elements.
        It preserves the delta path, transient index, and the set of transient elements.

        Returns a tuple of two functions:
        - create_transient_element: Creates the new transient element.
        - clear_transient_element: Clears the transient element.
        c                 ó|  •— ‰5  ‰‰‰<   t        «       } ‰| j                  j                  d d  d| j                  _        | j                  j
                  j                  «        ‰D ]?  }| j                  j
                  j                  j                  «       j                  |«       ŒA 	 d d d «       | S # 1 sw Y    S xY w©NF©
rS   rï   rÛ   Ú	cacheableræ   Únew_transientÚSetInParentÚelementsÚaddrè   )Ú
create_msgÚerÛ   ró   Útransient_elementsÚtransient_indexÚtransient_locks     €€€€€rv   Úcreate_transient_elementz;DeltaGenerator._transient.<locals>.create_transient_element�  s³   ø€ Øñ 
NØ6CÐ" ?Ñ3ä'›\�
Ø4>�
×#Ñ#×.Ñ.©qÐ1Ø05�
×#Ñ#Ô-ð × Ñ ×.Ñ.×:Ñ:Ô<Ø+ò N�AØ×$Ñ$×2Ñ2×;Ñ;×?Ñ?ÓA×JÑJÈ1ÕMñN÷
Nð Ð÷
Nð Ðús   „B"B1Â1B;c                 ó€  •— ‰5  ‰‰v r‰‰= t        «       } ‰| j                  j                  d d  d| j                  _        | j                  j
                  j                  «        ‰D ]?  }| j                  j
                  j                  j                  «       j                  |«       ŒA 	 d d d «       | S # 1 sw Y    S xY wr
  r  )Ú	clear_msgr  rÛ   r  r  r  s     €€€€rv   Úclear_transient_elementz:DeltaGenerator._transient.<locals>.clear_transient_elementž  s³   ø€ Øñ 	MØ"Ð&8Ñ8Ø*¨?Ð;ä&›L�	Ø3=�	×"Ñ"×-Ñ-©aÐ0Ø/4�	×"Ñ"Ô,Ø—‘×-Ñ-×9Ñ9Ô;Ø+ò M�AØ—O‘O×1Ñ1×:Ñ:×>Ñ>Ó@×IÑIÈ!ÕLñM÷	Mð Ð÷	Mð Ðús   „B$B3Â3B=)r³   rS   )rÙ   rÛ   r  r  ré   rê   rè   r,   rë   rì   r.   Ú	threadingÚLock)
rŽ   ró   rã   Útransient_cursorr  r  rÛ   r  r  r  s
    `    @@@@rv   Ú
_transientzDeltaGenerator._transientp  sÇ   ü€ ð  ×5Ñ5Ó7ÐØ%×0Ñ0ˆ
Ø*×:Ñ:ˆØ-×@Ñ@ÐáØ×#Ñ#Ð/Ø×+Ñ+×4Ñ4Ü% m×&:Ñ&:Ó;ôð ×"Ñ"Ð.Ø×*Ñ*×3Ñ3Ü$ ]×%8Ñ%8Ó9ôô #Ÿ™Ó)ˆ÷	ñ 	÷	ð 	ð (Ð)@Ð@Ð@rx   )
r�   z
int | Noner   úCursor | Noner�   zDeltaGenerator | Noner�   z
str | Noner³   ÚNone)r³   rÕ   ©r³   r  )r    ztype[BaseException] | Noner¡   zBaseException | Noner¢   zTracebackType | Noner³   zLiteral[False])r³   r   )r°   rÕ   r³   zCallable[..., NoReturn])r¼   r   r³   r   )r³   zIterable[DeltaGenerator])r³   ra   )rÎ   ra   r³   Úint)r³   r  )r³   rc   )r³   zcursor.Cursor)NN)
rÞ   rÕ   ró   rY   rß   zAddRowsMetadata | Nonerã   úLayoutConfig | Noner³   r   )r  zBlock_pb2.Block | Noner  ztype | Noner³   r   r•   )ró   ÚElementProtorã   r"  r³   z+tuple[ForwardMsgCreator, ForwardMsgCreator])Ú__name__r�   Ú__qualname__Ú__doc__rT   ÚMAINr“   r˜   r�   r£   Úpropertyr§   r¥   r¸   r¾   rÁ   rÄ   rÏ   r»   rÓ   rÖ   rÙ   rÜ   rù   r  r  rÉ   rx   rv   r   r   ²   sÖ  „ ñhðB &3×%7Ñ%7Ø $Ø(,Ø!%ð36à"ð36ð ð36ð &ð	36ð
 ð36ð 
ó36ój ó>ðà'ðð "ðð !ð	ð
 
óð òó ðð" ò?ó ð?óó6ð ò,ó ð,ð ò$ó ð$ð
Ø$6ð
à	ó
ð ò%ó ð%ð ò-ó ð-ð òó ðó-óNð$ 59Ø-1ðgàðgð ðgð 2ð	gð
 +ðgð 
ógðV /3Ø#ð:à+ð:ð ð:ð 
ó	:ð~ .2ð<Aà#ð<Að +ð<Að 
5ô	<Arx   r   c                ó„   — t        d„ | j                  D «       «      }t        t        | j                  «      «      }|xr | S )Nc              3  óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr•   )rƒ   rT   r¬   )rÊ   rÃ   s     rv   rÌ   z._writes_directly_to_sidebar.<locals>.<genexpr>°  s!   è ø€ ÒWÀA�Q×&Ñ&¬-×*?Ñ*?Õ?ÑWùs   ‚'))ÚanyrÁ   rc   ÚlistrÄ   )r½   Ú
in_sidebarÚhas_containers      rv   rå   rå   ¯  s9   € ÜÑWÈÏÉÔWÓW€JÜœ˜b×6Ñ6Ó7Ó8€MØÒ+˜mÐ+Ð+rx   r   )r½   r   r³   rc   )±r&  Ú
__future__r   rs   r  Úcollections.abcr   r   Úcopyr   Útypingr   r   r	   r
   r   r   r   r   r´   r   r   r   r   r   r   r   Ú&streamlit.components.v2.bidi_componentr   Ú$streamlit.delta_generator_singletonsr   r   Ústreamlit.elements.alertr   Ústreamlit.elements.arrowr   Ústreamlit.elements.balloonsr   Ústreamlit.elements.bokeh_chartr   Ústreamlit.elements.coder   Ú%streamlit.elements.deck_gl_json_chartr   Ústreamlit.elements.doc_stringr   Ústreamlit.elements.emptyr    Ústreamlit.elements.exceptionr!   Ústreamlit.elements.formr"   Ú!streamlit.elements.graphviz_chartr#   Ústreamlit.elements.headingr$   Ústreamlit.elements.htmlr%   Ústreamlit.elements.iframer&   Ústreamlit.elements.imager'   Ústreamlit.elements.jsonr(   Ústreamlit.elements.layoutsr)   Ú!streamlit.elements.lib.form_utilsr*   r+   Ú#streamlit.elements.lib.layout_utilsr,   r-   r.   r/   Ústreamlit.elements.mapr0   Ústreamlit.elements.markdownr1   Ústreamlit.elements.mediar2   Ústreamlit.elements.metricr3   Ústreamlit.elements.pdfr4   Ústreamlit.elements.plotly_chartr5   Ústreamlit.elements.progressr6   Ústreamlit.elements.pyplotr7   Ústreamlit.elements.snowr8   Ústreamlit.elements.spacer9   Ústreamlit.elements.spinnerr:   Ústreamlit.elements.textr;   Ústreamlit.elements.toastr<   Ústreamlit.elements.vega_chartsr=   Ú&streamlit.elements.widgets.audio_inputr>   Ú!streamlit.elements.widgets.buttonr?   Ú'streamlit.elements.widgets.button_groupr@   Ú'streamlit.elements.widgets.camera_inputrA   Ústreamlit.elements.widgets.chatrB   Ú#streamlit.elements.widgets.checkboxrC   Ú'streamlit.elements.widgets.color_pickerrD   Ú&streamlit.elements.widgets.data_editorrE   Ú(streamlit.elements.widgets.file_uploaderrF   Ú&streamlit.elements.widgets.multiselectrG   Ú'streamlit.elements.widgets.number_inputrH   Ú streamlit.elements.widgets.radiorI   Ú(streamlit.elements.widgets.select_sliderrJ   Ú$streamlit.elements.widgets.selectboxrK   Ú!streamlit.elements.widgets.sliderrL   Ú'streamlit.elements.widgets.text_widgetsrM   Ú'streamlit.elements.widgets.time_widgetsrN   Ústreamlit.elements.writerO   Ústreamlit.errorsrP   rQ   Ústreamlit.protorR   Ústreamlit.proto.ForwardMsg_pb2rS   Ú!streamlit.proto.RootContainer_pb2rT   Ústreamlit.runtimerU   Ústreamlit.runtime.scriptrunnerrV   rð   rW   ÚtypesrX   Úgoogle.protobuf.messagerY   Ústreamlit.cursorrZ   Ú+streamlit.elements.lib.built_in_chart_utilsr[   r\   Ústreamlit.proto.Element_pb2r]   r#  r^   Ú__annotations__r_   rÕ   r`   ra   rb   rd   rw   r}   r   rå   rÉ   rx   rv   ú<module>rt     só  ðò Gå "ã 
Û ß .Ý ÷	÷ 	ó 	÷÷ ñ õ F÷õ 0Ý /Ý 5Ý 5Ý -Ý =Ý 3Ý /Ý 7Ý -Ý ;Ý 3Ý -Ý 1Ý /Ý -Ý 3ß G÷ó õ ,Ý 5Ý /Ý 1Ý +Ý 7Ý 5Ý 1Ý -Ý /Ý 3Ý -Ý /Ý :Ý BÝ 9Ý DÝ DÝ 5Ý =Ý DÝ BÝ FÝ CÝ DÝ 7Ý FÝ ?Ý 9Ý DÝ DÝ /ß DÝ %Ý 5Ý ;Ý %Ý NÝ =áÝ#å/å'ÝKÝ@ÝCà.€�Ó .á�Ó€ð €	ˆ9Ó Ø (¨Ñ 3Ð �IÓ 3Ø'¨¨J¨Ñ7Ð �9Ó 7ð ).Ð  Ó -óó<

õzAØðzAàðzAð ðzAð ð	zAð
 ðzAð ðzAð ðzAð ðzAð ðzAð ðzAð ðzAð ðzAð ðzAð ðzAð ðzAð  ð!zAð" ð#zAð$ ð%zAð& ð'zAð( ð)zAð* ð+zAð, ð-zAð. ð/zAð0 ð1zAð2 ð3zAð4 ð5zAð6 ð7zAð8 ð9zAð: ð;zAð< ð=zAð> ð?zAð@ ðAzAðB ðCzAðD ðEzAðF ðGzAðH ðIzAðJ ðKzAðL ðMzAðN ðOzAðP ðQzAðR ðSzAðT ðUzAðV ðWzAðX ðYzAðZ ð[zAð\ ð]zAð^ ð_zAð` ðazAðb ðczAðd óezAôz,rx   