+
    VBid                        ^ RI t  ^ RIHt ^ RIt^ RIHt ^ RIH	t	H
t
HtHt Rt] P                  ! R4      t^ RIHtHtHtHtHt ^ RIHt  ! R	 R
4      t ! R R4      t ! R R]4      t ! R R]4      tR#   ] d
    ^ RIHt  Lyi ; i)    N)RLock)process_introspection_data)DBusExceptionIntrospectionParserExceptionMissingErrorHandlerExceptionMissingReplyHandlerExceptionrestructuredtextzdbus.proxies)BUS_DAEMON_IFACEBUS_DAEMON_NAMEBUS_DAEMON_PATHINTROSPECTABLE_IFACE
LOCAL_PATH)is_py2c                   6   a  ] tR t^4t o RtR tR tR tRtV t	R# )_DeferredMethodzPA proxy method which will only get called once we have its
introspection reply.
c                L    Wn         VP                  V n        W n        W0n        R # N)_proxy_method_method_name_append_block)selfproxy_methodappendblocks   &&&&1/usr/lib/python3.14/site-packages/dbus/proxies.py__init___DeferredMethod.__init__8   s     )(55    c                    R V9   g   VP                  RR4      '       d   V P                  V P                  W4       R# V P                  4        V P                  ! V/ VB # )reply_handlerignore_replyFN)getr   r   r   r   argskeywordss   &*,r   __call___DeferredMethod.__call__?   sS    x'LL//LL++T< KKM%%t8x88r   c                >    V P                  V P                  W4       R # r   )r   r   r$   s   &*,r   
call_async_DeferredMethod.call_asyncJ   s    T''8r   )r   r   r   r   N
__name__
__module____qualname____firstlineno____doc__r   r'   r*   __static_attributes____classdictcell____classdict__s   @r   r   r   4   s     	99 9r   r   c                   6   a  ] tR t^Nt o RtR tR tR tRtV t	R# )_ProxyMethodzA proxy method.

Typically a member of a ProxyObject. Calls to the
method produce messages that travel over the Bus and are routed
to a specific named Service.
c                    V\         8X  d   \        R \         ,          4      hWn        W n        W0n        W@n        \        P                  ! V4       WPn        Ve   \        P                  ! V4       W`n
        R# )z1Methods may not be called on the reserved path %sN)r   r   _proxy_connection_named_service_object_path_dbus_bindingsvalidate_member_namer   validate_interface_name_dbus_interface)r   proxy
connectionbus_nameobject_pathmethod_nameifaces   &&&&&&&r   r   _ProxyMethod.__init__U   sk    *$ !*,6!7 8 8  %)'*++K8*2259$r   c           
        VP                  R R4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVf   Ve0   Vf   \        4       hVf   \        4       hV'       d   \        R4      hVP                  RV P                  4      pVfR   Vf   V P
                  pMVR,           V P
                  ,           pV P                  P                  P                  VR4      pV'       g   VeE   V P                  P                  ! V P                  V P                  VV P
                  VVVV3/ VB  R# V P                  P                  ! V P                  V P                  VV P
                  VV3/ VB # )	r!   Nerror_handlerr"   F	signaturez6ignore_reply and reply_handler cannot be used togetherdbus_interface.)popr   r   	TypeErrorr@   r   r9   _introspect_method_mapr#   r:   r*   r;   r<   call_blocking)	r   r%   r&   r!   rI   r"   rJ   rK   keys	   &*,      r   r'   _ProxyMethod.__call__i   sx    _d; _d;||NE:LLd3	$(A$244&244 !0 1 1 "&68L8LM%''$s*T->->>::>>sDII=4''(;(;(,(9(9(6(,(9(9(1(,(5(54 +34 ##11$2E2E262C2C2@262C2C2;26> 5=> >r   c           
        VP                  R R4      pVP                  RR4      pVP                  RR4      pVP                  RV P                  4      pVfV   V'       d   VR,           V P                  ,           pMV P                  pV P                  P                  P                  VR4      pV P                  P                  ! V P                  V P                  VV P                  VVVV3/ VB  R# )r!   NrI   rJ   rK   rL   )
rM   r@   r   r9   rO   r#   r:   r*   r;   r<   )r   r%   r&   r!   rI   rJ   rK   rQ   s   &*,     r   r*   _ProxyMethod.call_async   s     _d; _d;LLd3	!&68L8LM$s*T->->>''::>>sDII##D$7$7$($5$5$2$($5$5$-$($1$1	0 '/	0r   )r:   r@   r   r;   r<   r9   Nr,   r4   s   @r   r7   r7   N   s     %(*>X0 0r   r7   c                      a  ] tR t^t o Rt]t]t^ t	^t
^tRR lt]! R RRR4      t]! R RRR4      t]! R RRR	4      tRR
 ltR tR tR tR tR tR tR tRR ltR t]tRtV tR# )ProxyObjectzA proxy to the remote Object.

A ProxyObject is provided by the Bus. ProxyObjects
have member functions, and can be called like normal Python objects.
Nc                X   VP                  RR4      pVe'   Ve   \        R4      hTp^ RIHp V! R\        ^R7       VP                  RR4      p	V	e'   Ve   \        R4      hT	p^ RIHp V! R	\        ^R7       V'       d0   \        R
RP                  VP                  4       4      ,          4      hV'       d   VP                  4        Wn        Ve   \        P                  ! V4       V;V n        V n        \        P                  ! V4       W0n        V'       g   VP                  V4      V n        RV n        . V n        / V n        \'        4       V n        V'       d   V P                  \*        8X  d   V P,                  V n        R# V P0                  V n        V P3                  4       V n        R# )ah  Initialize the proxy object.

:Parameters:
    `conn` : `dbus.connection.Connection`
        The bus or connection on which to find this object.
        The keyword argument `bus` is a deprecated alias for this.
    `bus_name` : str
        A bus name for the application owning the object, to be used
        as the destination for method calls and the sender for
        signal matches. The keyword argument ``named_service`` is a
        deprecated alias for this.
    `object_path` : str
        The object path at which the application exports the object
    `introspect` : bool
        If true (default), attempt to introspect the remote
        object to find out supported methods and their signatures
    `follow_name_owner_changes` : bool
        If true (default is false) and the `bus_name` is a
        well-known name, follow ownership changes for that name
busNz%conn and bus cannot both be specified)warnz`Passing the bus parameter to ProxyObject by name is deprecated: please use positional parameters)
stacklevelnamed_servicez3bus_name and named_service cannot both be specifiedzjPassing the named_service parameter to ProxyObject by name is deprecated: please use positional parametersz>ProxyObject.__init__ does not take these keyword arguments: %sz, )rM   rN   warningsrY   DeprecationWarningjoinkeys_require_main_loop_busr=   validate_bus_namer;   _requested_bus_namevalidate_object_path__dbus_object_path__activate_name_owner_pending_introspect_pending_introspect_queuerO   r   _introspect_lockr    INTROSPECT_STATE_DONT_INTROSPECT_introspect_state'INTROSPECT_STATE_INTROSPECT_IN_PROGRESS_Introspect)
r   connrC   rD   
introspectfollow_name_owner_changeskwargsrX   rY   r[   s
   &&&&&&,   r   r   ProxyObject.__init__   s   , jj%? GHHD% @#3 

?D9$# !, - -$H% C#3  4"ii67 8 8 % ##%	,,X6 :BAd6++K8$/!("&":":8"DD $( )+&&(# !&T66*D%)%J%JD"%)%Q%QD"'+'7'7'9D$r   c                    V P                   # r   )r;   r   s   &r   <lambda>ProxyObject.<lambda>  s
    T%8%8r   a  The bus name to which this proxy is bound. (Read-only,
            may change.)

            If the proxy was instantiated using a unique name, this property
            is that unique name.

            If the proxy was instantiated with a well-known name and with
            ``follow_name_owner_changes`` set false (the default), this
            property is the unique name of the connection that owned that
            well-known name when the proxy was instantiated, which might
            not actually own the requested well-known name any more.

            If the proxy was instantiated with a well-known name and with
            ``follow_name_owner_changes`` set true, this property is that
            well-known name.
            c                    V P                   # r   )rc   rt   s   &r   ru   rv      s
    t/G/Gr   z[The bus name which was requested when this proxy was
            instantiated.
            c                    V P                   # r   )re   rt   s   &r   ru   rv   &  s
    (A(Ar   zThe object-path of this proxy.c                t    V P                   P                  ! V3RVRVRV P                  RV P                  /VB # )a:  Arrange for the given function to be called when the given signal
is received.

:Parameters:
    `signal_name` : str
        The name of the signal
    `handler_function` : callable
        A function to be called when the signal is emitted by
        the remote object. Its positional arguments will be the
        arguments of the signal; optionally, it may be given
        keyword arguments as described below.
    `dbus_interface` : str
        Optional interface with which to qualify the signal name.
        If None (the default) the handler will be called whenever a
        signal of the given member name is received, whatever
        its interface.
:Keywords:
    `utf8_strings` : bool
        If True, the handler function will receive any string
        arguments as dbus.UTF8String objects (a subclass of str
        guaranteed to be UTF-8). If False (default) it will receive
        any string arguments as dbus.String objects (a subclass of
        unicode).
    `byte_arrays` : bool
        If True, the handler function will receive any byte-array
        arguments as dbus.ByteArray objects (a subclass of str).
        If False (default) it will receive any byte-array
        arguments as a dbus.Array of dbus.Byte (subclasses of:
        a list of ints).
    `sender_keyword` : str
        If not None (the default), the handler function will receive
        the unique name of the sending endpoint as a keyword
        argument with this name
    `destination_keyword` : str
        If not None (the default), the handler function will receive
        the bus name of the destination (or None if the signal is a
        broadcast, as is usual) as a keyword argument with this name.
    `interface_keyword` : str
        If not None (the default), the handler function will receive
        the signal interface as a keyword argument with this name.
    `member_keyword` : str
        If not None (the default), the handler function will receive
        the signal name as a keyword argument with this name.
    `path_keyword` : str
        If not None (the default), the handler function will receive
        the object-path of the sending object as a keyword argument
        with this name
    `message_keyword` : str
        If not None (the default), the handler function will receive
        the `dbus.lowlevel.SignalMessage` as a keyword argument with
        this name.
    `arg...` : unicode or UTF-8 str
        If there are additional keyword parameters of the form
        ``arg``\ *n*, match only signals where the *n*\ th argument
        is the value given for that keyword parameter. As of this time
        only string arguments can be matched (in particular,
        object paths and signatures can't).
    `arg0namespace` : str
        If not None (the default) match only signals where the first
        argument is a string that either is equal to the
        keyword parameter, or starts with the keyword parameter
        followed by a dot (and optionally more text).
    `arg...path`: str
        If there are additional keyword parameters of the form
        ``arg``\ *n* ``path``, match only signals where the *n*\ th
        argument is either equal or matches in a path-like manner.
        A path-like comparison matches when either the keyword or the
        argument ends with a '/' and is a prefix of the other. An
        example argument path match is arg0path='/aa/bb/'. This would
        match messages with first arguments of '/', '/aa/', '/aa/bb/',
        '/aa/bb/cc/' and '/aa/bb/cc'. It would not match messages with
        first arguments of '/aa/b', '/aa' or even '/aa/bb'.
signal_namerK   rC   path)ra   add_signal_receiverr;   re   r   rz   handler_functionrK   r&   s   &&&&,r   connect_to_signalProxyObject.connect_to_signal2  sY    V 			%%&6 	22=	25C	2 04/B/B	2 ,0+D+D		2
 )1	2	2r   c           
         / pV P                   P                  ! V P                  V P                  \        R RRV P
                  V P                  3RR/VB # )
Introspect require_main_loopF )ra   r*   r;   re   r   _introspect_reply_handler_introspect_error_handler)r   rq   s   & r   rm   ProxyObject._Introspect  sd    yy##D$7$7$($=$=$8,B$($B$B$($B$B	G
 7<G
 @FG 	Gr   c                P    V P                    F  w  rpV! V/ VB  K  	  . V n         R # r   )rh   )r   r   r%   r&   s   &   r   _introspect_execute_queue%ProxyObject._introspect_execute_queue  s/     /3.L.L*\$+(+ /M)+&r   c                   V P                   P                  4          \        V4      V n        T P                  T n        R T n	        T P                  4        T P                   P                  4        R #   \         d7   pT P                  T4        R p?T P                   P                  4        R # R p?ii ; i  T P                   P                  4        i ; ir   )ri   acquirer   rO   r   r   release INTROSPECT_STATE_INTROSPECT_DONErk   rg   r   )r   dataes   && r   r   %ProxyObject._introspect_reply_handler  s    %%'	,.H.N+
 &*%J%JD"'+D$**,!!))+ 0 ..q1 !!))+ !!))+s.   A1 (B5 1B2<B-B5 -B22B5 5Cc                   \         P                  ! 4        \        P                  R V P                  V P
                  VP                  P                  VP                  P                  V4       V P                  P                  4         \        P                  R4       V P                  V n        RV n        V P                  4        V P                  P!                  4        R#   T P                  P!                  4        i ; i)z$Introspect error on %s:%s: %s.%s: %sz'Executing introspect queue due to errorN)loggingbasicConfig_loggererrorr;   re   	__class__r.   r-   ri   r   debugrj   rk   rg   r   r   )r   r   s   &&r   r   %ProxyObject._introspect_error_handler  s    <))4+D+Doo00%//2J2J	 	%%'	,MMCD%)%J%JD"'+D$**,!!))+D!!))+s   =C   C<c                    V P                   P                  4         V P                  e   V P                  P                  4        V P                   P	                  4        R #   T P                   P	                  4        i ; ir   )ri   r   rg   r   r   rt   s   &r   _introspect_blockProxyObject._introspect_block  s^    %%'	,''3((..0 !!))+D!!))+s   (A   A<c                0   V P                   P                  4         V P                  V P                  8X  d   V P                  P                  WV34       MV! V/ VB  V P                   P                  4        R #   T P                   P                  4        i ; ir   )ri   r   rk   rl   rh   r   r   )r   callbackr%   rq   s   &&&&r   _introspect_add_to_queue$ProxyObject._introspect_add_to_queue  sz    %%'	,%%)U)UU..55xv6NO $)&)!!))+D!!))+s   AA9 9Bc                    VP                  R 4      '       d#   VP                  R 4      '       d   \        V4      hV P                  V4      # __)
startswithendswithAttributeErrorget_dbus_methodr   members   &&r   __getattr__ProxyObject.__getattr__  s=    T""vt'<'< ((''//r   c                    V P                  W P                  V P                  V P                  VV4      pV P                  V P
                  8X  d'   V P                  W0P                  V P                  4      pV# )a  Return a proxy method representing the given D-Bus method. The
returned proxy method can be called in the usual way. For instance, ::

    proxy.get_dbus_method("Foo", dbus_interface='com.example.Bar')(123)

is equivalent to::

    proxy.Foo(123, dbus_interface='com.example.Bar')

or even::

    getattr(proxy, "Foo")(123, dbus_interface='com.example.Bar')

However, using `get_dbus_method` is the only way to call D-Bus
methods with certain awkward names - if the author of a service
implements a method called ``connect_to_signal`` or even
``__getattr__``, you'll need to use `get_dbus_method` to call them.

For services which follow the D-Bus convention of CamelCaseMethodNames
this won't be a problem.
)	ProxyMethodClassra   r;   re   rk   rl   DeferredMethodClassr   r   )r   r   rK   rets   &&& r   r   ProxyObject.get_dbus_method  sp    . ##D))$($7$7$($=$=v$24 !!T%Q%QQ**30M0M+/+A+ACC 
r   c                j    R V P                   V P                  V P                  \        V 4      3,          # )z&<ProxyObject wrapping %s %s %s at %#x>)ra   r;   re   idrt   s   &r   __repr__ProxyObject.__repr__  s4    7IIt**D,E,Er$x9Q Q 	Qr   )	re   ra   ri   rO   rk   r;   rg   rh   rc   )NNNTFr   )r-   r.   r/   r0   r1   r7   r   r   r   rj   rl   r   r   propertyrC   requested_bus_namerD   r   rm   r   r   r   r   r   r   r   r   __str__r2   r3   r4   s   @r   rV   rV      s     
 $)'($./+'($Q:f 8$H$ ""G$ A$02KP2dG,,,,
,0$LQ Gr   rV   c                      a  ] tR tRt o RtR t]! R RRR4      t]t]! R RRR4      t	]! R	 RRR
4      t
]! R RRR4      t]! R RRR4      tRR ltR tRR ltR t]tRtV tR# )	Interfacei  zAn interface into a remote object.

An Interface can be used to wrap ProxyObjects
so that calls can be routed to their correct
D-Bus interface.
c                n    \        V\        4      '       d   VP                  V n        MWn        W n        R# )a
  Construct a proxy for the given interface on the given object.

:Parameters:
    `object` : `dbus.proxies.ProxyObject` or `dbus.Interface`
        The remote object or another of its interfaces
    `dbus_interface` : str
        An interface the `object` implements
N)
isinstancer   proxy_object_objr@   )r   objectrK   s   &&&r   r   Interface.__init__  s)     fi((++DII-r   c                .    V P                   P                  # r   )r   rD   rt   s   &r   ru   Interface.<lambda>  s    )>)>r   Nz.The D-Bus object path of the underlying objectc                .    V P                   P                  # r   )r   rC   rt   s   &r   ru   r     s    dii&8&8r   z:The bus name to which the underlying proxy object is boundc                .    V P                   P                  # r   )r   r   rt   s   &r   ru   r     s    		0L0Lr   zGThe bus name which was requested when the underlying object was createdc                    V P                   # r   )r   rt   s   &r   ru   r     s    $))r   zThe underlying proxy objectc                    V P                   # r   )r@   rt   s   &r   ru   r     s
    D,@,@r   zThe D-Bus interface representedc                f    V'       g   V P                   pV P                  P                  ! WV3/ VB # )a1  Arrange for a function to be called when the given signal is
emitted.

The parameters and keyword arguments are the same as for
`dbus.proxies.ProxyObject.connect_to_signal`, except that if
`dbus_interface` is None (the default), the D-Bus interface that
was passed to the `Interface` constructor is used.
)r@   r   r   r}   s   &&&&,r   r   Interface.connect_to_signal!  s9     !11Nyy**;+9G=EG 	Gr   c                    VP                  R 4      '       d#   VP                  R 4      '       d   \        V4      hV P                  P	                  WP
                  4      # r   )r   r   r   r   r   r@   r   s   &&r   r   Interface.__getattr__1  sG    T""vt'<'< ((99,,V5I5IJJr   c                X    Vf   V P                   pV P                  P                  W4      # )zReturn a proxy method representing the given D-Bus method.

This is the same as `dbus.proxies.ProxyObject.get_dbus_method`
except that if `dbus_interface` is None (the default),
the D-Bus interface that was passed to the `Interface` constructor
is used.
)r@   r   r   )r   r   rK   s   &&&r   r   Interface.get_dbus_method7  s*     !!11Nyy((@@r   c                T    R V P                   V P                  \        V 4      3,          # )z%<Interface %r implementing %r at %#x>)r   r@   r   rt   s   &r   r   Interface.__repr__C  s)    6		4''D83 3 	3r   )r@   r   r   )r-   r.   r/   r0   r1   r   r   rD   re   rC   r   r   rK   r   r   r   r   r   r2   r3   r4   s   @r   r   r     s     . >dLNK&8$$%H "#L#'$CD 3T4>@L@$DFNG K
A3 Gr   r   )r   	threadingr   ImportErrordummy_threadingr=   dbus._expat_introspect_parserr   dbus.exceptionsr   r   r   r   __docformat__	getLoggerr   r
   r   r   r   r   dbus._compatr   r   r7   r   rV   r   r   r   r   <module>r      s   8 &  D" " # 

N
+   9 94]0 ]0@J& JZ
K Kw  &%&s   A6 6BB