§
    ÌtºfRC ã                   ó†  — d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl	Z	d dl
mZ d dlmZmZ d dlmZ 	 d dlZd dlZd dlmZ dZn# e$ r d	ZY nw xY wd
Z e j        d¦  «        Z e j        d¦  «        Z e j        d¦  «        Z e j        d¦  «        Z e j        d¦  «        Z e j        d¦  «        Z e j        d¦  «        Z e j        d¦  «        Z  e j        d¦  «        Z! e j        d¦  «        Z" e j        d¦  «        Z#dZ$dZ%dZ&e$e%e&gZ'g d¢Z(d Z)dZ*dZ+dZ,e)de*de+de,diZ-d„ e- .                    ¦   «         D ¦   «         Z/d Z0dZ1dZ2dZ3dZ4d Z5d!Z6e0de1d"e2d#e3d$e4d%e5d&e6d'iZ7d(„ e7 .                    ¦   «         D ¦   «         Z8d)„ Z9d*„ Z:dod,„Z;d-ed.ee<         fd/„Z=	 	 	 dpd-ed1e<d2e>d3e>d4e>d5e>d.e<fd6„Z?dqd7„Z@drd-ed1e<d.eAfd8„ZBdrd-ed1e<d.ee<ef         fd9„ZCdrd:„ZD G d;„ d<eE¦  «        ZF G d=„ d>eF¦  «        ZG G d?„ d@eF¦  «        ZH G dA„ dBeF¦  «        ZI G dC„ dDeF¦  «        ZJ G dE„ dFeF¦  «        ZK G dG„ dHeF¦  «        ZL G dI„ dJeF¦  «        ZM G dK„ dLeF¦  «        ZN G dM„ dNeF¦  «        ZO G dO„ dPeF¦  «        ZP G dQ„ dReF¦  «        ZQ G dS„ dTeF¦  «        ZR G dU„ dVeF¦  «        ZS G dW„ dXeF¦  «        ZT G dY„ dZeF¦  «        ZU G d[„ d\eF¦  «        ZV G d]„ d^eF¦  «        ZW G d_„ d`eF¦  «        ZX G da„ dbeF¦  «        ZY G dc„ ddeF¦  «        ZZ G de„ dfeF¦  «        Z[ G dg„ dheF¦  «        Z\ G di„ djeF¦  «        Z] G dk„ dleF¦  «        Z^ G dm„ dneF¦  «        Z_dS )sé    N)Úpformat)ÚAnyÚDictÚOptional)Úhlval)ÚProtocolErrorÚInvalidUriError)ÚROLE_NAME_TO_CLASS)Úmessage_fbsTF)#ÚMessageÚHelloÚWelcomeÚAbortÚ	ChallengeÚAuthenticateÚGoodbyeÚErrorÚPublishÚ	PublishedÚ	SubscribeÚ
SubscribedÚUnsubscribeÚUnsubscribedÚEventÚCallÚCancelÚResultÚRegisterÚ
RegisteredÚ
UnregisterÚUnregisteredÚ
InvocationÚ	InterruptÚYieldÚcheck_or_raise_uriÚcheck_or_raise_realm_nameÚcheck_or_raise_idÚcheck_or_raise_extraÚis_valid_enc_algoÚis_valid_enc_serializerÚidentify_realm_name_categoryÚPAYLOAD_ENC_CRYPTO_BOXÚPAYLOAD_ENC_MQTTÚ PAYLOAD_ENC_STANDARD_IDENTIFIERSz!^[A-Za-z][A-Za-z\d_\-@\.]{2,254}$z^0x([A-Fa-f\d]{40})$z^([a-z\d_\-@\.]{2,250})\.eth$z^eth\.([a-z\d_\-@\.]{2,250})$z!^(([\da-z_]+\.)|\.)*([\da-z_]+)?$z!^(([^\s\.#]+\.)|\.)*([^\s\.#]+)?$z^([\da-z_]+\.)*([\da-z_]+)$z^([^\s\.#]+\.)*([^\s\.#]+)$z^([\da-z_]+\.)*([\da-z_]*)$z^([^\s\.#]+\.)*([^\s\.#]*)$z^x_([a-z][\da-z_]+)?$Ú	cryptoboxÚmqttÚxbr)ÚjsonÚmsgpackÚcborÚubjsonÚflatbuffersé   é   é   Únullc                 ó   — i | ]\  }}||“Œ	S © r<   ©Ú.0ÚvalueÚkeys      úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/wamp/message.pyú
<dictcomp>rB   ‘   s   € ÐDÐDÐD¡J E¨3�S˜%ÐDÐDÐDó    é   é   é   r2   r3   r4   r5   Úopaquer6   c                 ó   — i | ]\  }}||“Œ	S r<   r<   r=   s      rA   rB   rB   ¥   s   € ÐBÐBÐB¡: 5¨#�C˜ÐBÐBÐBrC   c                 óx   — t          | ¦  «        t          k    o"| t          v pt                               | ¦  «        S )a'  
    For WAMP payload transparency mode, check if the provided ``enc_algo``
    identifier in the WAMP message is a valid one.

    Currently defined standard identifiers are:

    * ``"cryptobox"``
    * ``"mqtt"``
    * ``"xbr"``

    Users can select arbitrary identifiers too, but these MUST start with ``"x_"``.

    :param enc_algo: The payload transparency algorithm identifier to check.
    :type enc_algo: str

    :returns: Returns ``True`` if and only if the payload transparency
        algorithm identifier is valid.
    :rtype: bool
    )ÚtypeÚstrr.   Ú_CUSTOM_ATTRIBUTEÚmatch)Úenc_algos    rA   r)   r)   ¨   s5   € õ( �‰>Œ>�SÒ Ðx hÕ2RÐ&RÐ&wÕVg×VmÒVmÐnvÑVwÔVwÐxrC   c                 óx   — t          | ¦  «        t          k    o"| t          v pt                               | ¦  «        S )am  
    For WAMP payload transparency mode, check if the provided ``enc_serializer``
    identifier in the WAMP message is a valid one.

    Currently, the only standard defined identifier are

    * ``"json"``
    * ``"msgpack"``
    * ``"cbor"``
    * ``"ubjson"``
    * ``"flatbuffers"``

    Users can select arbitrary identifiers too, but these MUST start with ``"x_"``.

    :param enc_serializer: The payload transparency serializer identifier to check.
    :type enc_serializer: str

    :returns: Returns ``True`` if and only if the payload transparency
        serializer identifier is valid.
    :rtype: bool
    )rJ   rK   Ú PAYLOAD_ENC_STANDARD_SERIALIZERSrL   rM   )Úenc_serializers    rA   r*   r*   ¿   sL   € õ, �ÑÔ¥3Ò&ð  K¨NÕ>^Ð,^ð  -JÕbs×byÒbyð  {Iñ  cJô  cJð  KrC   é(   c                 ó0  — t          | ¦  «        t          k    r| }nZt          | ¦  «        t          k    r(t          j        | ¦  «                             d¦  «        }n| €d}nd                     | ¦  «        }t          |¦  «        |k    r|d |…         dz   S |S )NÚasciiú-z{}z..)rJ   rK   ÚbytesÚbinasciiÚb2a_hexÚdecodeÚformatÚlen)ÚdataÚmax_lenÚss      rA   Úb2ar_   Ø   s‘   € ÝˆD�z„z•SÒÐØˆˆÝ	ˆd‰Œ•uÒ	Ð	ÝÔ˜TÑ"Ô"×)Ò)¨'Ñ2Ô2ˆˆØ	ˆØˆˆà�KŠK˜ÑÔˆÝ
ˆ1�v„v�ÒÐØ��'�Œ{˜TÑ!Ð!àˆrC   r?   Úreturnc                 ó  — t          | ¦  «        t          k    rdS t                               | ¦  «        r:t                               | ¦  «        rdS t
                               | ¦  «        rdS dS t                               | ¦  «        rdS dS )az  
    Identify the real name category of the given value:

    * ``"standalone"``: A normal, standalone WAMP realm name, e.g. ``"realm1"``.
    * ``"eth"``: An Ethereum address, e.g. ``"0xe59C7418403CF1D973485B36660728a5f4A8fF9c"``.
    * ``"ens"``: An Ethereum ENS name, e.g. ``"wamp-proto.eth"``.
    * ``"reverse_ens"``: An Ethereum ENS name in reverse notation, e.g. ``"eth.wamp-proto"``.
    * ``None``: The value is not a WAMP realm name.

    :param value: The value for which to identify realm name category.
    :return: The category identified, one of ``["standalone", "eth", "ens", "reverse-ens"]``
        or ``None``.
    NÚensÚreverse_ensÚ
standaloneÚeth)rJ   rK   Ú_URI_PAT_REALM_NAMErM   Ú_URI_PAT_REALM_NAME_ENSÚ_URI_PAT_REALM_NAME_ENS_REVERSEÚ_URI_PAT_REALM_NAME_ETH)r?   s    rA   r+   r+   ç   s‹   € õ ˆE�{„{•cÒÐØˆtÝ× Ò  Ñ'Ô'ð 
Ý"×(Ò(¨Ñ/Ô/ð 	 Ø�5Ý,×2Ò2°5Ñ9Ô9ð 	 Ø �=à�<Ý	 ×	&Ò	& uÑ	-Ô	-ð ØˆuàˆtrC   úWAMP message invalidÚmessageÚstrictÚallow_empty_componentsÚallow_last_emptyÚ
allow_nonec                 óä  — | €&|rdS t          d                     |¦  «        ¦  «        ‚t          | ¦  «        t          k    r4| €|s0t          d                     |t          | ¦  «        ¦  «        ¦  «        ‚|r|rt          }n-|rt
          }n#t          }n|rt          }n|rt          }nt          }| 
                    | ¦  «        s-t          d                     || |j        ||||¦  «        ¦  «        ‚| S )a^  
    Check a value for being a valid WAMP URI.

    If the value is not a valid WAMP URI is invalid, raises :class:`autobahn.wamp.exception.InvalidUriError`,
    otherwise returns the value.

    :param value: The value to check.
    :param message: Prefix for message in exception raised when value is invalid.
    :param strict: If ``True``, do a strict check on the URI (the WAMP spec SHOULD behavior).
    :param allow_empty_components: If ``True``, allow empty URI components (for pattern based
       subscriptions and registrations).
    :param allow_last_empty: If ``True``, allow the last URI component to be empty (for prefix based
       subscriptions and registrations).
    :param allow_none: If ``True``, allow ``None`` for URIs.
    :returns: The URI value (if valid).
    :raises: instance of :class:`autobahn.wamp.exception.InvalidUriError`
    Nz{0}: URI cannot be nullz{0}: invalid type {1} for URIz˜{0}: invalid value "{1}" for URI (did not match pattern "{2}" with options strict={3}, allow_empty_components={4}, allow_last_empty={5}, allow_none={6}))r	   rZ   rJ   rK   Ú_URI_PAT_STRICT_LAST_EMPTYÚ_URI_PAT_STRICT_EMPTYÚ_URI_PAT_STRICT_NON_EMPTYÚ_URI_PAT_LOOSE_LAST_EMPTYÚ_URI_PAT_LOOSE_EMPTYÚ_URI_PAT_LOOSE_NON_EMPTYrM   Úpattern)r?   rk   rl   rm   rn   ro   Úpats          rA   r%   r%     sK  € ð( €}Øð 	MØˆFå!Ð";×"BÒ"BÀ7Ñ"KÔ"KÑLÔLÐLåˆE�{„{•cÒÐØ� *�Ý!Ð"A×"HÒ"HÈÕRVÐW\ÑR]ÔR]Ñ"^Ô"^Ñ_Ô_Ð_àð +Øð 	,Ý,ˆCˆCØ#ð 	,Ý'ˆCˆCå+ˆCˆCàð 	+Ý+ˆCˆCØ#ð 	+Ý&ˆCˆCå*ˆCà�9Š9�UÑÔð Ýð  y÷  @ò  @ð  AHð  JOð  QTô  Q\ð  ^dð  f|ð  ~Nð  PZñ  [ô  [ñ  \ô  \ð  	\àˆrC   c                 óP  — | €"t          d                     |¦  «        ¦  «        ‚t          | ¦  «        t          k    r0t          d                     |t          | ¦  «        ¦  «        ¦  «        ‚|rot                               | ¦  «        st                               | ¦  «        r| S t          d                     || t          j        t          j        ¦  «        ¦  «        ‚t                               | ¦  «        r| S t          d                     || t          j        ¦  «        ¦  «        ‚)a|  
    Check a value for being a valid WAMP URI.

    If the value is not a valid WAMP URI is invalid, raises :class:`autobahn.wamp.exception.InvalidUriError`,
    otherwise returns the value.

    :param value: The value to check, e.g. ``"realm1"`` or ``"com.example.myapp"`` or ``"eth.example"``.
    :param message: Prefix for message in exception raised when value is invalid.
    :param allow_eth: If ``True``, allow Ethereum addresses as realm names,
        e.g. ``"0xe59C7418403CF1D973485B36660728a5f4A8fF9c"``.
    :returns: The URI value (if valid).
    :raises: instance of :class:`autobahn.wamp.exception.InvalidUriError`
    Nz{0}: realm name cannot be nullz${0}: invalid type {1} for realm namezO{0}: invalid value "{1}" for realm name (did not match patterns "{2}" or "{3}")zE{0}: invalid value "{1}" for realm name (did not match pattern "{2}"))r	   rZ   rJ   rK   rf   rM   ri   rw   )r?   rk   Ú	allow_eths      rA   r&   r&   7  s#  € ð €}ÝÐ>×EÒEÀgÑNÔNÑOÔOÐOåˆE�{„{•cÒÐÝÐD×KÒKÈGÕUYÐZ_ÑU`ÔU`ÑaÔaÑbÔbÐbàð >Ý×$Ò$ UÑ+Ô+ð 	KÕ/F×/LÒ/LÈUÑ/SÔ/Sð 	KØˆLå!ð"ß"(¢&¨°%Ý)<Ô)DÝ)@Ô)Hñ#Jô #JñKô Kð Kõ ×$Ò$ UÑ+Ô+ð 	>ØˆLå!ðßš ¨Ý 3Ô ;ñ=ô =ñ>ô >ð >rC   c                 óô   — t          | ¦  «        t          k    r0t          d                     |t          | ¦  «        ¦  «        ¦  «        ‚| dk     s| dk    r#t          d                     || ¦  «        ¦  «        ‚| S )a›  
    Check a value for being a valid WAMP ID.

    If the value is not a valid WAMP ID, raises :class:`autobahn.wamp.exception.ProtocolError`,
    otherwise return the value.

    :param value: The value to check.
    :param message: Prefix for message in exception raised when value is invalid.
    :returns: The ID value (if valid).
    :raises: instance of :class:`autobahn.wamp.exception.ProtocolError`
    z{0}: invalid type {1} for IDr   l          z{0}: invalid value {1} for ID)rJ   Úintr   rZ   )r?   rk   s     rA   r'   r'   ^  su   € õ ˆE�{„{•cÒÐÝÐ:×AÒAÀ'Í4ÐPUÉ;Ì;ÑWÔWÑXÔXÐXð ˆq‚y€y�EÐ,Ò,Ð,ÝÐ;×BÒBÀ7ÈEÑRÔRÑSÔSÐSØ€LrC   c           	      óP  — t          | ¦  «        t          k    r0t          d                     |t          | ¦  «        ¦  «        ¦  «        ‚|                      ¦   «         D ]H}t          |t          ¦  «        s1t          d                     |t          |¦  «        |¦  «        ¦  «        ‚ŒI| S )a¿  
    Check a value for being a valid WAMP extra dictionary.

    If the value is not a valid WAMP extra dictionary, raises :class:`autobahn.wamp.exception.ProtocolError`,
    otherwise return the value.

    :param value: The value to check.
    :param message: Prefix for message in exception raised when value is invalid.
    :returns: The extra dictionary (if valid).
    :raises: instance of :class:`autobahn.wamp.exception.ProtocolError`
    z${0}: invalid type {1} for WAMP extraz3{0}: invalid type {1} for key in WAMP extra ('{2}')©rJ   Údictr   rZ   ÚkeysÚ
isinstancerK   )r?   rk   Úks      rA   r(   r(   s  s¢   € õ ˆE�{„{•dÒÐÝÐB×IÒIÈ'ÕSWÐX]ÑS^ÔS^Ñ_Ô_Ñ`Ô`Ð`Ø�ZŠZ‰\Œ\ð sð sˆÝ˜!�SÑ!Ô!ð 	sÝÐ U× \Ò \Ð]dÕfjÐklÑfmÔfmÐopÑ qÔ qÑrÔrÐrð	sà€LrC   c           	      óX  — | �§t          | ¦  «        t          k    r0t          d                     |t          | ¦  «        ¦  «        ¦  «        ‚|                      ¦   «         D ]H}t          |t          ¦  «        s1t          d                     |t          |¦  «        |¦  «        ¦  «        ‚ŒI| S dS )a*  
    Check a value for being a valid WAMP kwargs dictionary.

    If the value is not a valid WAMP kwargs dictionary,
    raises :class:`autobahn.wamp.exception.ProtocolError`.
    Otherwise return the kwargs.

    The WAMP spec requires that the keys in kwargs are proper
    strings (unicode), not bytes. Note that the WAMP spec
    says nothing about keys in application payload. Key in the
    latter can be potentially of other type (if that is really
    wanted).

    :param kwargs: The keyword arguments to check.
    :type kwargs: dict

    :param message: Prefix for message in exception raised when
        value is invalid.
    :type message: str

    :returns: The kwargs dictionary (if valid).
    :rtype: dict

    :raises: instance of
        :class:`autobahn.wamp.exception.ProtocolError`
    Nz%{0}: invalid type {1} for WAMP kwargsz4{0}: invalid type {1} for key in WAMP kwargs ('{2}')r~   )Úkwargsrk   r‚   s      rA   Ú_validate_kwargsr…   ‡  s°   € ð6 ÐÝ�‰<Œ<�4ÒÐÝÐ G× NÒ NÈwÕX\Ð]cÑXdÔXdÑ eÔ eÑfÔfÐfØ—’‘”ð 	xð 	xˆAÝ˜a¥Ñ%Ô%ð xÝ#Ð$Z×$aÒ$aÐbiÕkoÐpqÑkrÔkrÐtuÑ$vÔ$vÑwÔwÐwðxàˆð ÐrC   c                   óX  — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zej	        d„ ¦   «         Zed„ ¦   «         Z
e
j	        d„ ¦   «         Z
ed	„ ¦   «         Zej	        d
„ ¦   «         Zed„ ¦   «         Zej	        d„ ¦   «         Zd„ Zd„ Zdefd„Zed„ ¦   «         Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ ZdS )r   zo
    WAMP message base class.

    .. note:: This is not supposed to be instantiated, but subclassed only.
    N©Ú	_from_fbsÚ_serializedÚ_correlation_idÚ_correlation_uriÚ_correlation_is_anchorÚ_correlation_is_lastÚ_router_internalc                 óh   — || _         i | _        d | _        d | _        d | _        d | _        d | _        d S ©Nr‡   )ÚselfÚfrom_fbss     rA   Ú__init__zMessage.__init__Â  sE   € à!ˆŒð ˆÔð  $ˆÔØ $ˆÔØ&*ˆÔ#Ø$(ˆÔ!ð !%ˆÔÐÐrC   c                 ó   — | j         S r�   )rŠ   ©r‘   s    rA   Úcorrelation_idzMessage.correlation_idÒ  s   € àÔ#Ð#rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rK   rŠ   ©r‘   r?   s     rA   r–   zMessage.correlation_idÖ  s+   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Ø$ˆÔÐÐrC   c                 ó   — | j         S r�   )r‹   r•   s    rA   Úcorrelation_urizMessage.correlation_uriÛ  s   € àÔ$Ð$rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rK   r‹   r˜   s     rA   rš   zMessage.correlation_uriß  s+   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Ø %ˆÔÐÐrC   c                 ó   — | j         S r�   )rŒ   r•   s    rA   Úcorrelation_is_anchorzMessage.correlation_is_anchorä  s   € àÔ*Ð*rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   ÚboolrŒ   r˜   s     rA   r�   zMessage.correlation_is_anchorè  s+   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Ø&+ˆÔ#Ð#Ð#rC   c                 ó   — | j         S r�   )r�   r•   s    rA   Úcorrelation_is_lastzMessage.correlation_is_lastí  s   € àÔ(Ð(rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rŸ   r�   r˜   s     rA   r¡   zMessage.correlation_is_lastñ  s+   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Ø$)ˆÔ!Ð!Ð!rC   c                 óÄ   — t          || j        ¦  «        sdS | j        D ]@}|dvr:|                     d¦  «        s%t	          | |¦  «        t	          ||¦  «        k    s dS ŒAdS )zç
        Compare this message to another message for equality.

        :param other: The other message to compare with.
        :type other: obj

        :returns: ``True`` iff the messages are equal.
        :rtype: bool
        F)r‰   rŠ   r‹   rŒ   r�   Ú_T)r�   Ú	__class__Ú	__slots__Ú
startswithÚgetattr)r‘   Úotherr‚   s      rA   Ú__eq__zMessage.__eq__ö  s„   € õ ˜% ¤Ñ0Ô0ð 	Ø�5à”ð 	!ð 	!ˆAØð 1ð 1ð 1ð :;¿ºÀcÑ9JÔ9Jð	1õ
 ˜t QÑ'Ô'­7°5¸!Ñ+<Ô+<Ò<Ð<Ø ˜5˜5øØˆtrC   c                 ó.   — |                       |¦  «         S )zí
        Compare this message to another message for inequality.

        :param other: The other message to compare with.
        :type other: obj

        :returns: ``True`` iff the messages are not equal.
        :rtype: bool
        ©rª   ©r‘   r©   s     rA   Ú__ne__zMessage.__ne__  s   € ð —;’;˜uÑ%Ô%Ð%Ð%rC   r`   c                 ó  — d                      t          | j        j                             ¦   «         dz   dd¬¦  «        t          t          j        t          |                      ¦   «         ¦  «        d¦  «        dd¬¦  «        ¦  «        S )Nz{}
{}z::ÚblueT)ÚcolorÚboldz    F)	rZ   r   r¥   Ú__name__ÚupperÚtextwrapÚindentr   Úmarshalr•   s    rA   Ú__str__zMessage.__str__  st   € Ø�Š�u T¤^Ô%<×%BÒ%BÑ%DÔ%DÀtÑ%KÐSYÐ`dÐeÑeÔeÝ$¥X¤_µW¸T¿\º\¹^¼^Ñ5LÔ5LÈfÑ%UÔ%UÐ]cÐjoÐpÑpÔpñrô rð 	rrC   c                 ó   — t          ¦   «         ‚)a   
        Factory method that parses a unserialized raw message (as returned byte
        :func:`autobahn.interfaces.ISerializer.unserialize`) into an instance
        of this class.

        :returns: An instance of this class.
        :rtype: obj
        ©ÚNotImplementedError)Úwmsgs    rA   ÚparsezMessage.parse  s   € õ "Ñ#Ô#Ð#rC   c                 ó   — t          ¦   «         ‚r�   rº   r•   s    rA   r·   zMessage.marshal)  ó   € Ý!Ñ#Ô#Ð#rC   c                 ó   — t          ¦   «         ‚r�   rº   ©Úbufs    rA   ÚcastzMessage.cast,  s   € å!Ñ#Ô#Ð#rC   c                 ó   — t          ¦   «         ‚r�   rº   )r‘   Úbuilders     rA   ÚbuildzMessage.build0  r¿   rC   c                 ó   — i | _         dS )z1
        Resets the serialization cache.
        N)r‰   r•   s    rA   ÚuncachezMessage.uncache3  s   € ð ˆÔÐÐrC   c                 óv  — || j         vr¤|j        dk    rjt          j        d¦  «        }|                      |¦  «        }|                     |¦  «         |                     ¦   «         }t          |¦  «        | j         |<   n/|                     |  	                    ¦   «         ¦  «        | j         |<   | j         |         S )aÅ  
        Serialize this object into a wire level bytes representation and cache
        the resulting bytes. If the cache already contains an entry for the given
        serializer, return the cached representation directly.

        :param serializer: The wire level serializer to use.
        :type serializer: An instance that implements :class:`autobahn.interfaces.ISerializer`

        :returns: The serialized bytes.
        :rtype: bytes
        r6   i   )
r‰   ÚNAMEr6   ÚBuilderrÆ   ÚFinishÚOutputrV   Ú	serializer·   )r‘   Ú
serializerrÅ   ÚobjrÂ   s        rA   rÎ   zMessage.serialize9  s®   € ð ˜TÔ-Ð-Ð-ØŒ -Ò/Ð/å%Ô-¨dÑ3Ô3�ð —j’j Ñ)Ô)�à—’˜sÑ#Ô#Ð#Ø—n’nÑ&Ô&�Ý/4°S©z¬z�Ô  Ñ,Ð,ð 0:×/CÒ/CÀDÇLÂLÁNÄNÑ/SÔ/S�Ô  Ñ,ð Ô 
Ô+Ð+rC   r�   )r³   Ú
__module__Ú__qualname__Ú__doc__ÚMESSAGE_TYPEr¦   r“   Úpropertyr–   Úsetterrš   r�   r¡   rª   r®   rK   r¸   Ústaticmethodr½   r·   rÃ   rÆ   rÈ   rÎ   r<   rC   rA   r   r   «  sÝ  € € € € € ðð ð €Lðð	€Ið%ð %ð %ð %ð  ð$ð $ñ „Xð$ð Ôð%ð %ñ Ôð%ð ð%ð %ñ „Xð%ð Ôð&ð &ñ Ôð&ð ð+ð +ñ „Xð+ð Ô!ð,ð ,ñ "Ô!ð,ð ð)ð )ñ „Xð)ð Ôð*ð *ñ  Ôð*ðð ð ð.
&ð 
&ð 
&ðr˜ð rð rð rð rð ð	$ð 	$ñ „\ð	$ð$ð $ð $ð ð$ð $ñ „\ð$ð$ð $ð $ðð ð ð,ð ,ð ,ð ,ð ,rC   r   c                   óN   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Z	dS )	r   zU
    A WAMP ``HELLO`` message.

    Format: ``[HELLO, Realm|uri, Details|dict]``
    r7   )	ÚrealmÚrolesÚauthmethodsÚauthidÚauthroleÚ	authextraÚ	resumableÚresume_sessionÚresume_tokenNc
                 óˆ  — |�t          |t          ¦  «        sJ ‚t          |¦  «        t          k    sJ ‚t	          |¦  «        dk    sJ ‚|D ]:}
|
dv sJ ‚t          ||
         t
          j        j        j        |
         ¦  «        sJ ‚Œ;|r9t          |¦  «        t          k    sJ ‚|D ]}t          |¦  «        t          k    sJ ‚Œ|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|	�t          |	¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        || _        || _        || _        || _        || _        || _        |	| _        dS )a  

        :param realm: The URI of the WAMP realm to join.
        :type realm: str

        :param roles: The WAMP session roles and features to announce.
        :type roles: dict of :class:`autobahn.wamp.role.RoleFeatures`

        :param authmethods: The authentication methods to announce.
        :type authmethods: list of str or None

        :param authid: The authentication ID to announce.
        :type authid: str or None

        :param authrole: The authentication role to announce.
        :type authrole: str or None

        :param authextra: Application-specific "extra data" to be forwarded to the client.
        :type authextra: dict or None

        :param resumable: Whether the client wants this to be a session that can be later resumed.
        :type resumable: bool or None

        :param resume_session: The session the client would like to resume.
        :type resume_session: int or None

        :param resume_token: The secure authorisation token to resume the session.
        :type resume_token: str or None
        Nr   ©Ú
subscriberÚ	publisherÚcallerÚcallee)r�   rK   rJ   r   r[   ÚautobahnÚwampÚroler
   ÚlistrŸ   r|   r   r“   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   )r‘   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rê   Ú
authmethods               rA   r“   zHello.__init__r  sç  € ðN ˆ}¥
¨5µ#Ñ 6Ô 6ˆ}ˆ}ˆ}Ý�E‰{Œ{�dÒ"Ð"Ð"Ð"Ý�5‰zŒz˜AŠ~ˆ~ˆ~ˆ~Øð 	Yð 	YˆDØÐJÐJÐJÐJÐJÝ˜e Dœk­8¬=Ô+=Ô+PÐQUÔ+VÑWÔWÐXÐXÐXÐXØð 	0Ý˜Ñ$Ô$­Ò,Ð,Ð,Ð,Ø)ð 0ð 0�
Ý˜JÑ'Ô'­3Ò.Ð.Ð.Ð.Ð.Øˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ¥4¨¡>¤>µSÒ#8Ð#8Ð#8Ð#8ØÐ ¥D¨¡O¤OµtÒ$;Ð$;Ð$;Ð$;ØÐ ¥D¨¡O¤OµtÒ$;Ð$;Ð$;Ð$;ØÐ%­¨nÑ)=Ô)=ÅÒ)DÐ)DÐ)DÐ)DØÐ#¥t¨LÑ'9Ô'9½SÒ'@Ð'@Ð'@Ð'@å×Ò˜ÑÔÐØˆŒ
ØˆŒ
Ø&ˆÔØˆŒØ ˆŒØ"ˆŒØ"ˆŒØ,ˆÔØ(ˆÔÐÐrC   c                 óÎ  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         dd¬¦  «        }t          | d         d	¦  «        }i }d
|vrt          d¦  «        ‚t          |d
         d¦  «        }t          |¦  «        dk    rt          d¦  «        ‚|D ]©}|dvr"t          d                     |¦  «        ¦  «        ‚t          |         }t          ||         d                     |¦  «        ¦  «        }d|v r8t          |d         d                     |¦  «        ¦  «          |d$i |d         ¤Ž}n
 |¦   «         }|||<   Œªd}	d|v r�|d         }
t          |
¦  «        t          k    r/t          d                     t          |
¦  «        ¦  «        ¦  «        ‚|
D ]I}t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ|
}	d}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d}d|v rO|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d}d|v rO|d         }t          |¦  «        t          k    r/t          d                      t          |¦  «        ¦  «        ¦  «        ‚d}d!|v rP|d!         }t          |¦  «        t          k    r/t          d"                     t          |¦  «        ¦  «        ¦  «        ‚n|rt          d#¦  «        ‚t          |||	||||||¦	  «	        }|S )%úâ
        Verifies and parses an unserialized raw message into an actual WAMP message instance.

        :param wmsg: The unserialized raw message.
        :type wmsg: list

        :returns: An instance of this class.
        r   r9   z$invalid message length {0} for HELLOr7   z'realm' in HELLOT)ro   r8   z'details' in HELLOrÚ   z5missing mandatory roles attribute in options in HELLOz'roles' in 'details' in HELLOz#empty 'roles' in 'details' in HELLOrã   z3invalid role '{0}' in 'roles' in 'details' in HELLOz+role '{0}' in 'roles' in 'details' in HELLOÚfeaturesz9'features' in role '{0}' in 'roles' in 'details' in HELLONrÛ   z2invalid type {0} for 'authmethods' detail in HELLOz:invalid type {0} for item in 'authmethods' detail in HELLOrÜ   z-invalid type {0} for 'authid' detail in HELLOrÝ   z/invalid type {0} for 'authrole' detail in HELLOrÞ   z0invalid type {0} for 'authextra' detail in HELLOrß   z0invalid type {0} for 'resumable' detail in HELLOúresume-sessionz5invalid type {0} for 'resume-session' detail in HELLOúresume-tokenz3invalid type {0} for 'resume-token' detail in HELLOzDresume-token must be provided if resume-session is provided in HELLOr<   )r[   r   rÔ   r   rZ   r%   r(   r
   rJ   rë   rK   r   rŸ   r|   )r¼   rÙ   ÚdetailsrÚ   Údetails_rolesrê   Úrole_clsÚdetails_roleÚrole_featuresrÛ   Údetails_authmethodsÚauth_methodrÜ   Údetails_authidrÝ   Údetails_authrolerÞ   Údetails_authextrarß   rà   rá   rÐ   s                         rA   r½   zHello.parseµ  sÈ  € õ �4‰yŒy˜1Š}ˆ}  a¤­EÔ,>Ò!>Ð!>Ð!>Ð!>åˆt‰9Œ9˜Š>ˆ>ÝÐ F× MÒ MÍcÐRVÉiÌiÑ XÔ XÑYÔYÐYå" 4¨¤7Ð,>È4ÐPÑPÔPˆÝ& t¨A¤wÐ0DÑEÔEˆàˆà˜'Ð!Ð!ÝÐ WÑXÔXÐXå,¨W°WÔ-=Ð?^Ñ_Ô_ˆåˆ}ÑÔ Ò"Ð"ÝÐ EÑFÔFÐFà!ð 	(ð 	(ˆDØÐJÐJÐJÝ#Ð$Y×$`Ò$`ÐaeÑ$fÔ$fÑgÔgÐgå)¨$Ô/ˆHå/°¸dÔ0CÐEr×EyÒEyÐz~ÑEÔEñ  Aô  AˆLà˜\Ð)Ð)Ý$ \°*Ô%=Ð?z÷  @Bò  @Bð  CGñ  @Hô  @Hñ  Iô  Ið  Ià ( Ð DÐ D¨<¸
Ô+CÐ DÐ D��ð !) ¡
¤
�à'ˆE�$‰KˆKàˆØ˜GÐ#Ð#Ø")¨-Ô"8ÐÝÐ'Ñ(Ô(­DÒ0Ð0Ý#Ð$X×$_Ò$_Õ`dÐexÑ`yÔ`yÑ$zÔ$zÑ{Ô{Ð{à2ð @ð @�Ý˜Ñ$Ô$­Ò+Ð+Ý'Ð(d×(kÒ(kÕlpÐq|Ñl}Ôl}Ñ(~Ô(~ÑÔÐð ,ð .ˆKàˆØ�wÐÐØ$ XÔ.ˆNÝ�NÑ#Ô#¥sÒ*Ð*Ý#Ð$S×$ZÒ$ZÕ[_Ð`nÑ[oÔ[oÑ$pÔ$pÑqÔqÐqà#ˆFàˆØ˜Ð Ð Ø& zÔ2ÐÝÐ$Ñ%Ô%­Ò,Ð,Ý#Ð$U×$\Ò$\Õ]aÐbrÑ]sÔ]sÑ$tÔ$tÑuÔuÐuà'ˆHàˆ	Ø˜'Ð!Ð!Ø '¨Ô 4ÐÝÐ%Ñ&Ô&­$Ò.Ð.Ý#Ð$V×$]Ò$]Õ^bÐctÑ^uÔ^uÑ$vÔ$vÑwÔwÐwà)ˆIàˆ	Ø˜'Ð!Ð!Ø Ô,ˆIÝ�I‰Œ¥$Ò&Ð&Ý#Ð$V×$]Ò$]Õ^bÐclÑ^mÔ^mÑ$nÔ$nÑoÔoÐoàˆØ˜wÐ&Ð&Ø$Ð%5Ô6ˆNÝ�NÑ#Ô#¥sÒ*Ð*Ý#Ð$[×$bÒ$bÕcgÐhvÑcwÔcwÑ$xÔ$xÑyÔyÐyàˆØ˜WÐ$Ð$Ø" >Ô2ˆLÝ�LÑ!Ô!¥SÒ(Ð(Ý#Ð$Y×$`Ò$`ÕaeÐfrÑasÔasÑ$tÔ$tÑuÔuÐuð )ð ð lÝ#Ð$jÑkÔkÐkå�E˜5 +¨v°xÀÈIÐWeÐgsÑtÔtˆàˆ
rC   c                 ó„  — di i}| j                              ¦   «         D ]˜}i |d         |j        <   |j        D ]~}|                     d¦  «        sg|dk    rat          ||¦  «        �Qd|d         |j                 vrdi i|d         |j        <   t          ||¦  «        |d         |j                 d         |<   ŒŒ™| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j	        �
| j	        |d	<   | j
        �
| j
        |d
<   | j        �
| j        |d<   | j        �
| j        |d<   t          j        | j        |gS )ú£
        Marshal this object into a raw message for subsequent serialization to bytes.

        :returns: The serialized raw message.
        :rtype: list
        rÚ   r¤   ÚROLENrï   rÛ   rÜ   rÝ   rÞ   rß   rð   rñ   )rÚ   Úvaluesrþ   Ú__dict__r§   r¨   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   r   rÔ   rÙ   ©r‘   rò   rê   Úfeatures       rA   r·   zHello.marshal!  sƒ  € ð ˜B�-ˆØ”J×%Ò%Ñ'Ô'ð 	^ð 	^ˆDØ*,ˆG�GÔ˜TœYÑ'Øœ=ð ^ð ^�Ø×)Ò)¨#Ñ.Ô.ð ^°7¸fÒ3DÐ3DÍÐQUÐW^ÑI_ÔI_ÐIkØ!¨°Ô)9¸$¼)Ô)DÐDÐDØ7AÀ2Ð6F˜ Ô(¨¬Ñ3ÝGNÈtÐU\ÑG]ÔG]�G˜GÔ$ T¤YÔ/°
Ô;¸GÑDøð	^ð ÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ;Ð"Ø $¤ˆG�HÑàŒ=Ð$Ø"&¤-ˆG�JÑàŒ>Ð%Ø#'¤>ˆG�KÑ àŒ>Ð%Ø#'¤>ˆG�KÑ àÔÐ*Ø(,Ô(;ˆGÐ$Ñ%àÔÐ(Ø&*Ô&7ˆG�NÑ#åÔ" D¤J°Ð8Ð8rC   )NNNNNNN©
r³   rÑ   rÒ   rÓ   rÔ   r¦   r“   r×   r½   r·   r<   rC   rA   r   r   Z  s�   € € € € € ðð ð €Lðð
€Ið "ØØØØØ $Ø"ðA)ð A)ð A)ð A)ðF ðið iñ „\ðiðV%9ð %9ð %9ð %9ð %9rC   r   c                   óT   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Z	dS )	r   zZ
    A WAMP ``WELCOME`` message.

    Format: ``[WELCOME, Session|id, Details|dict]``
    r8   )ÚsessionrÚ   rÙ   rÜ   rÝ   rì   ÚauthproviderrÞ   Úresumedrß   rá   ÚcustomNc                 óh  — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚t          |¦  «        dk    sJ ‚|D ]:}|dv sJ ‚t	          ||         t
          j        j        j        |         ¦  «        sJ ‚Œ;|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|	�t          |	¦  «        t          k    sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|r!|D ]}t                               |¦  «        sJ ‚Œt                               | ¦  «         || _        || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _        || _        |pi | _        dS )a0  

        :param session: The WAMP session ID the other peer is assigned.
        :type session: int

        :param roles: The WAMP roles to announce.
        :type roles: dict of :class:`autobahn.wamp.role.RoleFeatures`

        :param realm: The effective realm the session is joined on.
        :type realm: str or None

        :param authid: The authentication ID assigned.
        :type authid: str or None

        :param authrole: The authentication role assigned.
        :type authrole: str or None

        :param authmethod: The authentication method in use.
        :type authmethod: str or None

        :param authprovider: The authentication provided in use.
        :type authprovider: str or None

        :param authextra: Application-specific "extra data" to be forwarded to the client.
        :type authextra: arbitrary or None

        :param resumed: Whether the session is a resumed one.
        :type resumed: bool or None

        :param resumable: Whether this session can be resumed later.
        :type resumable: bool or None

        :param resume_token: The secure authorisation token to resume the session.
        :type resume_token: str or None

        :param custom: Implementation-specific "custom attributes" (`x_my_impl_attribute`) to be set.
        :type custom: dict or None
        r   ©ÚbrokerÚdealerN)rJ   r|   r   r[   r�   rè   ré   rê   r
   rK   rŸ   rL   rM   r   r“   r  rÚ   rÙ   rÜ   rÝ   rì   r  rÞ   r  rß   rá   r  )r‘   r  rÚ   rÙ   rÜ   rÝ   rì   r  rÞ   r  rß   rá   r  rê   r‚   s                  rA   r“   zWelcome.__init__d  sT  € õf �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�E‰{Œ{�dÒ"Ð"Ð"Ð"Ý�5‰zŒz˜AŠ~ˆ~ˆ~ˆ~Øð 	Yð 	YˆDØÐ/Ð/Ð/Ð/Ð/Ý˜e Dœk­8¬=Ô+=Ô+PÐQUÔ+VÑWÔWÐXÐXÐXÐXØˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Øˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ¥4¨¡>¤>µSÒ#8Ð#8Ð#8Ð#8ØÐ!¥T¨*Ñ%5Ô%5½Ò%<Ð%<Ð%<Ð%<ØÐ#¥t¨LÑ'9Ô'9½SÒ'@Ð'@Ð'@Ð'@ØÐ ¥D¨¡O¤OµtÒ$;Ð$;Ð$;Ð$;Øˆ¥$ w¡-¤-µ4Ò"7Ð"7Ð"7Ð"7ØÐ ¥D¨¡O¤OµtÒ$;Ð$;Ð$;Ð$;ØÐ#¥t¨LÑ'9Ô'9½SÒ'@Ð'@Ð'@Ð'@Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øð 	3Øð 3ð 3�Ý(×.Ò.¨qÑ1Ô1Ð2Ð2Ð2Ð2å×Ò˜ÑÔÐØˆŒØˆŒ
ØˆŒ
ØˆŒØ ˆŒØ$ˆŒØ(ˆÔØ"ˆŒØˆŒØ"ˆŒØ(ˆÔØ�l ˆŒˆˆrC   c                 óì  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }|                     dd	¦  «        }|                     d
d	¦  «        }|                     dd	¦  «        }|                     dd	¦  «        }|                     dd	¦  «        }|                     dd	¦  «        }d	}	d|v rO|d         }	t          |	¦  «        t          k    s/t          d                     t          |	¦  «        ¦  «        ¦  «        ‚d	}
d|v rO|d         }
t          |
¦  «        t          k    s/t          d                     t          |
¦  «        ¦  «        ¦  «        ‚d	}d|v rP|d         }t          |¦  «        t          k    s/t          d                     t          |¦  «        ¦  «        ¦  «        ‚n|
rt          d¦  «        ‚i }d|vrt          d¦  «        ‚t          |d         d¦  «        }t          |¦  «        dk    rt          d¦  «        ‚|D ]¯}|dvr"t          d                     |¦  «        ¦  «        ‚t          |         }t          ||         d                     |¦  «        ¦  «        }d|v r>t          |d         d                     |¦  «        ¦  «          |di ||         d         ¤Ž}n
 |¦   «         }|||<   Œ°i }|D ]'}t                               |¦  «        r||         ||<   Œ(t          |||||||||	|
||¦  «        }|S ) rî   r   r9   z&invalid message length {0} for WELCOMEr7   z'session' in WELCOMEr8   z'details' in WELCOMErÙ   NrÜ   rÝ   rì   r  rÞ   r  z0invalid type {0} for 'resumed' detail in WELCOMErß   z2invalid type {0} for 'resumable' detail in WELCOMErá   z5invalid type {0} for 'resume_token' detail in WELCOMEz8resume_token required when resumable is given in WELCOMErÚ   z7missing mandatory roles attribute in options in WELCOMEz'roles' in 'details' in WELCOMEz%empty 'roles' in 'details' in WELCOMEr
  z5invalid role '{0}' in 'roles' in 'details' in WELCOMEz-role '{0}' in 'roles' in 'details' in WELCOMErï   z;'features' in role '{0}' in 'roles' in 'details' in WELCOMEr<   )r[   r   rÔ   r   rZ   r'   r(   ÚgetrJ   rŸ   rK   r
   rL   rM   )r¼   r  rò   rÙ   rÜ   rÝ   rì   r  rÞ   r  rß   rá   rÚ   ró   rê   rô   rõ   rö   r  r‚   rÐ   s                        rA   r½   zWelcome.parse¹  sÙ  € õ �4‰yŒy˜1Š}ˆ}  a¤­GÔ,@Ò!@Ð!@Ð!@Ð!@åˆt‰9Œ9˜Š>ˆ>ÝÐ H× OÒ OÕPSÐTXÑPYÔPYÑ ZÔ ZÑ[Ô[Ð[å# D¨¤GÐ-CÑDÔDˆÝ& t¨A¤wÐ0FÑGÔGˆð —’˜G TÑ*Ô*ˆØ—’˜X tÑ,Ô,ˆØ—;’;˜z¨4Ñ0Ô0ˆØ—[’[ ¨tÑ4Ô4ˆ
Ø—{’{ >°4Ñ8Ô8ˆØ—K’K ¨TÑ2Ô2ˆ	àˆØ˜ÐÐØ˜iÔ(ˆGÝ˜‘=”=¥DÒ(Ð(Ý#Ð$V×$]Ò$]Õ^bÐcjÑ^kÔ^kÑ$lÔ$lÑmÔmÐmàˆ	Ø˜'Ð!Ð!Ø Ô,ˆIÝ˜	‘?”?¥dÒ*Ð*Ý#Ð$X×$_Ò$_Õ`dÐenÑ`oÔ`oÑ$pÔ$pÑqÔqÐqàˆØ˜WÐ$Ð$Ø" >Ô2ˆLÝ˜Ñ%Ô%­Ò,Ð,Ý#Ð$[×$bÒ$bÕcgÐhtÑcuÔcuÑ$vÔ$vÑwÔwÐwð -àð 	\ÝÐ ZÑ[Ô[Ð[àˆà˜'Ð!Ð!ÝÐ YÑZÔZÐZå,¨W°WÔ-=Ð?`ÑaÔaˆåˆ}ÑÔ Ò"Ð"ÝÐ GÑHÔHÐHà!ð 	(ð 	(ˆDØÐ/Ð/Ð/Ý#Ð$[×$bÒ$bÐcgÑ$hÔ$hÑiÔiÐiå)¨$Ô/ˆHå/°¸dÔ0CÐEt×E{ÒE{ð  }Añ  FBô  FBñ  Cô  CˆLà˜\Ð)Ð)Ý$ \°*Ô%=Ð?|÷  @Dò  @Dð  EIñ  @Jô  @Jñ  Kô  Kð  Kà ( Ð KÐ K¨=¸Ô+>¸zÔ+JÐ KÐ K��ð !) ¡
¤
�à'ˆE�$‰KˆKàˆØð 	'ð 	'ˆAÝ ×&Ò& qÑ)Ô)ð 'Ø# AœJ��q‘	øå�g˜u e¨V°X¸zÈ<ÐYbÐdkÐmvð  yEð  GMñ  Nô  Nˆàˆ
rC   c                 ó  — i }|                      | j        ¦  «         | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j	        r
| j	        |d<   | j
        r
| j
        |d	<   i |d
<   | j                             ¦   «         D ]˜}i |d
         |j        <   |j        D ]~}|                     d¦  «        sg|dk    rat!          ||¦  «        �Qd|d
         |j                 vrdi i|d
         |j        <   t!          ||¦  «        |d
         |j                 d         |<   ŒŒ™t"          j        | j        |gS )rý   rÙ   rÜ   rÝ   rì   r  rÞ   r  rß   rá   rÚ   r¤   rþ   Nrï   )Úupdater  rÙ   rÜ   rÝ   rì   r  rÞ   r  rß   rá   rÚ   rÿ   rþ   r   r§   r¨   r   rÔ   r  r  s       rA   r·   zWelcome.marshal  sÔ  € ð ˆØ�Š�t”{Ñ#Ô#Ð#àŒ:ð 	*Ø#œzˆG�GÑàŒ;ð 	,Ø $¤ˆG�HÑàŒ=ð 	0Ø"&¤-ˆG�JÑàŒ=ð 	4Ø$(¤OˆG�LÑ!àÔð 	8Ø&*Ô&7ˆG�NÑ#àŒ>ð 	2Ø#'¤>ˆG�KÑ àŒ<ð 	.Ø!%¤ˆG�IÑàŒ>ð 	2Ø#'¤>ˆG�KÑ àÔð 	8Ø&*Ô&7ˆG�NÑ#àˆ�ÑØ”J×%Ò%Ñ'Ô'ð 	^ð 	^ˆDØ*,ˆG�GÔ˜TœYÑ'Øœ=ð ^ð ^�Ø×)Ò)¨#Ñ.Ô.ð ^°7¸fÒ3DÐ3DÍÐQUÐW^ÑI_ÔI_ÐIkØ!¨°Ô)9¸$¼)Ô)DÐDÐDØ7AÀ2Ð6F˜ Ô(¨¬Ñ3ÝGNÈtÐU\ÑG]ÔG]�G˜GÔ$ T¤YÔ/°
Ô;¸GÑDøð	^õ Ô$ d¤l°GÐ<Ð<rC   ©
NNNNNNNNNNr  r<   rC   rA   r   r   I  s˜   € € € € € ðð ð €Lðð€Ið$ ØØØ Ø"ØØØØ"ØðS#ð S#ð S#ð S#ðj ðQð Qñ „\ðQðf.=ð .=ð .=ð .=ð .=rC   r   c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r   zV
    A WAMP ``ABORT`` message.

    Format: ``[ABORT, Details|dict, Reason|uri]``
    r9   )Úreasonrk   Nc                 óÂ   — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        dS )zî

        :param reason: WAMP or application error URI for aborting reason.
        :type reason: str

        :param message: Optional human-readable closing message, e.g. for logging purposes.
        :type message: str or None
        N)rJ   rK   r   r“   r  rk   )r‘   r  rk   s      rA   r“   zAbort.__init__O  s\   € õ �F‰|Œ|�sÒ"Ð"Ð"Ð"Øˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6å×Ò˜ÑÔÐØˆŒØˆŒˆˆrC   c                 ó  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}d	|v rQ|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|}t          ||¦  «        }|S )rî   r   r9   z$invalid message length {0} for ABORTr7   z'details' in ABORTr8   z'reason' in ABORTNrk   z.invalid type {0} for 'message' detail in ABORT)	r[   r   rÔ   r   rZ   r(   r%   rJ   rK   )r¼   rò   r  rk   Údetails_messagerÐ   s         rA   r½   zAbort.parse_  sò   € õ �4‰yŒy˜1Š}ˆ}  a¤­EÔ,>Ò!>Ð!>Ð!>Ð!>åˆt‰9Œ9˜Š>ˆ>ÝÐ F× MÒ MÍcÐRVÉiÌiÑ XÔ XÑYÔYÐYå& t¨A¤wÐ0DÑEÔEˆÝ# D¨¤GÐ-@ÑAÔAˆàˆà˜ÐÐà% iÔ0ˆOÝ�OÑ$Ô$­Ò+Ð+Ý#Ð$T×$[Ò$[Õ\`ÐapÑ\qÔ\qÑ$rÔ$rÑsÔsÐsà%ˆGå�F˜GÑ$Ô$ˆàˆ
rC   c                 óP   — i }| j         r
| j         |d<   t          j        || j        gS )rý   rk   )rk   r   rÔ   r  ©r‘   rò   s     rA   r·   zAbort.marshal€  s1   € ð ˆØŒ<ð 	.Ø!%¤ˆG�IÑåÔ" G¨T¬[Ð9Ð9rC   r�   r  r<   rC   rA   r   r   >  sp   € € € € € ðð ð €Lðð€Ið
ð ð ð ð  ðð ñ „\ðð@:ð :ð :ð :ð :rC   r   c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r   z_
    A WAMP ``CHALLENGE`` message.

    Format: ``[CHALLENGE, Method|string, Extra|dict]``
    rD   )ÚmethodÚextraNc                 óÆ   — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        |pi | _        dS )z»

        :param method: The authentication method.
        :type method: str

        :param extra: Authentication method specific information.
        :type extra: dict or None
        N)rJ   rK   r   r   r“   r  r  )r‘   r  r  s      rA   r“   zChallenge.__init__Ÿ  s`   € õ �F‰|Œ|�sÒ"Ð"Ð"Ð"Øˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3å×Ò˜ÑÔÐØˆŒØ�[˜bˆŒ
ˆ
ˆ
rC   c                 óÊ  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚| d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          ||¦  «        }|S )rî   r   r9   z(invalid message length {0} for CHALLENGEr7   z*invalid type {0} for 'method' in CHALLENGEr8   z'extra' in CHALLENGE)r[   r   rÔ   r   rZ   rJ   rK   r(   )r¼   r  r  rÐ   s       rA   r½   zChallenge.parse¯  sÉ   € õ �4‰yŒy˜1Š}ˆ}  a¤­IÔ,BÒ!BÐ!BÐ!BÐ!Båˆt‰9Œ9˜Š>ˆ>ÝÐ J× QÒ QÕRUÐVZÑR[ÔR[Ñ \Ô \Ñ]Ô]Ð]à�a”ˆÝ�‰<Œ<�3ÒÐÝÐ L× SÒ SÕTXÐY_ÑT`ÔT`Ñ aÔ aÑbÔbÐbå$ T¨!¤WÐ.DÑEÔEˆå˜ Ñ&Ô&ˆàˆ
rC   c                 ó4   — t           j        | j        | j        gS ©rý   )r   rÔ   r  r  r•   s    rA   r·   zChallenge.marshalÉ  s   € õ Ô&¨¬°T´ZÐ@Ð@rC   r�   r  r<   rC   rA   r   r   Ž  st   € € € € € ðð ð €Lðð€Ið
!ð !ð !ð !ð  ðð ñ „\ðð2Að Að Að Að ArC   r   c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r   zh
    A WAMP ``AUTHENTICATE`` message.

    Format: ``[AUTHENTICATE, Signature|string, Extra|dict]``
    rE   )Ú	signaturer  Nc                 óÆ   — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        |pi | _        dS )zÖ

        :param signature: The signature for the authentication challenge.
        :type signature: str

        :param extra: Authentication method specific information.
        :type extra: dict or None
        N)rJ   rK   r   r   r“   r!  r  )r‘   r!  r  s      rA   r“   zAuthenticate.__init__ä  s`   € õ �I‰Œ¥#Ò%Ð%Ð%Ð%Øˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3å×Ò˜ÑÔÐØ"ˆŒØ�[˜bˆŒ
ˆ
ˆ
rC   c                 óÊ  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚| d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          ||¦  «        }|S )rî   r   r9   z+invalid message length {0} for AUTHENTICATEr7   z0invalid type {0} for 'signature' in AUTHENTICATEr8   z'extra' in AUTHENTICATE)r[   r   rÔ   r   rZ   rJ   rK   r(   )r¼   r!  r  rÐ   s       rA   r½   zAuthenticate.parseô  sÉ   € õ �4‰yŒy˜1Š}ˆ}  a¤­LÔ,EÒ!EÐ!EÐ!EÐ!Eåˆt‰9Œ9˜Š>ˆ>ÝÐ M× TÒ TÕUXÐY]ÑU^ÔU^Ñ _Ô _Ñ`Ô`Ð`à˜”Gˆ	Ý�	‰?Œ?�cÒ!Ð!ÝÐ R× YÒ YÕZ^Ð_hÑZiÔZiÑ jÔ jÑkÔkÐkå$ T¨!¤WÐ.GÑHÔHˆå˜9 eÑ,Ô,ˆàˆ
rC   c                 ó4   — t           j        | j        | j        gS r  )r   rÔ   r!  r  r•   s    rA   r·   zAuthenticate.marshal  s   € õ Ô)¨4¬>¸4¼:ÐFÐFrC   r�   r  r<   rC   rA   r   r   Ó  st   € € € € € ðð ð €Lðð€Ið
!ð !ð !ð !ð  ðð ñ „\ðð2Gð Gð Gð Gð GrC   r   c                   óL   — e Zd ZdZdZ	 dZ	 dZeddfd„Zed„ ¦   «         Z	d„ Z
dS )	r   zZ
    A WAMP ``GOODBYE`` message.

    Format: ``[GOODBYE, Details|dict, Reason|uri]``
    rF   zwamp.close.normal©r  rk   rß   Nc                 ó  — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        || _        dS )aÜ  

        :param reason: Optional WAMP or application error URI for closing reason.
        :type reason: str

        :param message: Optional human-readable closing message, e.g. for logging purposes.
        :type message: str or None

        :param resumable: From the server: Whether the session is able to be resumed (true) or destroyed (false). From the client: Whether it should be resumable (true) or destroyed (false).
        :type resumable: bool or None
        N)rJ   rK   rŸ   r   r“   r  rk   rß   )r‘   r  rk   rß   s       rA   r“   zGoodbye.__init__/  s   € õ �F‰|Œ|�sÒ"Ð"Ð"Ð"Øˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ ¥D¨¡O¤OµtÒ$;Ð$;Ð$;Ð$;å×Ò˜ÑÔÐØˆŒØˆŒØ"ˆŒˆˆrC   c                 ó´  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}d}d	|v rQ|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rO|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          |||¬¦  «        }|S )rî   r   r9   z&invalid message length {0} for GOODBYEr7   z'details' in GOODBYEr8   z'reason' in GOODBYENrk   z0invalid type {0} for 'message' detail in GOODBYErß   z2invalid type {0} for 'resumable' detail in GOODBYEr&  )
r[   r   rÔ   r   rZ   r(   r%   rJ   rK   rŸ   )r¼   rò   r  rk   rß   r  rÐ   s          rA   r½   zGoodbye.parseD  sV  € õ �4‰yŒy˜1Š}ˆ}  a¤­GÔ,@Ò!@Ð!@Ð!@Ð!@åˆt‰9Œ9˜Š>ˆ>ÝÐ H× OÒ OÕPSÐTXÑPYÔPYÑ ZÔ ZÑ[Ô[Ð[å& t¨A¤wÐ0FÑGÔGˆÝ# D¨¤GÐ-BÑCÔCˆàˆØˆ	à˜ÐÐà% iÔ0ˆOÝ�OÑ$Ô$­Ò+Ð+Ý#Ð$V×$]Ò$]Õ^bÐcrÑ^sÔ^sÑ$tÔ$tÑuÔuÐuà%ˆGà˜'Ð!Ð!Ø Ô,ˆIÝ�I‰Œ¥$Ò&Ð&Ý#Ð$X×$_Ò$_Õ`dÐenÑ`oÔ`oÑ$pÔ$pÑqÔqÐqå˜VØ%Ø )ð+ñ +ô +ˆð ˆ
rC   c                 ór   — i }| j         r
| j         |d<   | j        r
| j        |d<   t          j        || j        gS )rý   rk   rß   )rk   rß   r   rÔ   r  r  s     rA   r·   zGoodbye.marshalm  sG   € ð ˆØŒ<ð 	.Ø!%¤ˆG�IÑàŒ>ð 	2Ø#'¤>ˆG�KÑ åÔ$ g¨t¬{Ð;Ð;rC   )r³   rÑ   rÒ   rÓ   rÔ   ÚDEFAULT_REASONr¦   r“   r×   r½   r·   r<   rC   rA   r   r     s…   € € € € € ðð ð €Lðð )€Nðð€Ið -°dÀdð #ð #ð #ð #ð* ð&ð &ñ „\ð&ðP<ð <ð <ð <ð <rC   r   c                   óT   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Z	dS )	r   a¸  
    A WAMP ``ERROR`` message.

    Formats:

    * ``[ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri]``
    * ``[ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, Arguments|list]``
    * ``[ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, Arguments|list, ArgumentsKw|dict]``
    * ``[ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, Payload|binary]``
    é   )Úrequest_typeÚrequestÚerrorÚargsr„   ÚpayloadrN   Úenc_keyrQ   rç   Úcallee_authidÚcallee_authroleÚforward_forNc                 ó  — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          t          fv sJ ‚|�t          |¦  «        t
          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        sJ ‚|€|€|	�|�|€J ‚|�t          |¦  «        t          k    sJ ‚|	�t          |	¦  «        sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t
          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t           
                    | ¦  «         || _        || _        || _        || _        t          |¦  «        | _        || _        || _        || _        |	| _        |
| _        || _        || _        || _        dS )a»  

        :param request_type: The WAMP message type code for the original request.
        :type request_type: int

        :param request: The WAMP request ID of the original request (`Call`, `Subscribe`, ...) this error occurred for.
        :type request: int

        :param error: The WAMP or application error URI for the error that occurred.
        :type error: str

        :param args: Positional values for application-defined exception.
           Must be serializable using any serializers in use.
        :type args: list or None

        :param kwargs: Keyword values for application-defined exception.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None

        :param callee: The WAMP session ID of the effective callee that responded with the error. Only filled if callee is disclosed.
        :type callee: None or int

        :param callee_authid: The WAMP authid of the responding callee. Only filled if callee is disclosed.
        :type callee_authid: None or unicode

        :param callee_authrole: The WAMP authrole of the responding callee. Only filled if callee is disclosed.
        :type callee_authrole: None or unicode

        :param forward_for: When this Error is forwarded for a client/callee (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   )rJ   r|   rK   rë   Útupler   rV   r)   r*   r   r“   r-  r.  r/  r0  r…   r„   r1  rN   r2  rQ   rç   r3  r4  r5  )r‘   r-  r.  r/  r0  r„   r1  rN   r2  rQ   rç   r3  r4  r5  Úffs                  rA   r“   zError.__init__Ÿ  sß  € õr �LÑ!Ô!¥SÒ(Ð(Ð(Ð(Ý�G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�E‰{Œ{�cÒ!Ð!Ð!Ð!Øˆ|�t D™zœz­dµE¨]Ð:Ð:Ð:Ð:Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNàÐÕ#4°XÑ#>Ô#>ÐÐÐØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%àˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ$­¨]Ñ(;Ô(;½sÒ(BÐ(BÐ(BÐ(BØÐ&­$¨Ñ*?Ô*?Å3Ò*FÐ*FÐ*FÐ*FàÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØ(ˆÔØˆŒØˆŒ
ØˆŒ	Ý& vÑ.Ô.ˆŒØˆŒð !ˆŒØˆŒØ,ˆÔð ˆŒØ*ˆÔØ.ˆÔð 'ˆÔÐÐrC   c                 ó”
  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚| d         }t          |¦  «        t          k    r"t          d                     |¦  «        ¦  «        ‚|t          j        t          j        t          j        t          j        t          j        t          j        t          j        fvr"t          d                     |¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d	         d
¦  «        }t!          | d         d¦  «        }d}d}d}d}d}	d}
d}d}d}d}t          | ¦  «        dk    �rt          | d         ¦  «        t"          k    rú| d         }|                     dd¦  «        }|r1t'          |¦  «        s"t          d                     |¦  «        ¦  «        ‚|                     dd¦  «        }	|	rGt          |	¦  «        t(          k    r/t          d                     t          |	¦  «        ¦  «        ¦  «        ‚|                     dd¦  «        }
|
r1t+          |
¦  «        s"t          d                     |
¦  «        ¦  «        ‚nÆt          | ¦  «        dk    rQ| d         }|�Gt          |¦  «        t,          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        dk    rO| d         }t          |¦  «        t.          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t(          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t(          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rÀ|d         }d}t          |¦  «        t,          k    r�|D ]ˆ}t          |¦  «        t.          k    r nmd |vst          |d          ¦  «        t          k    r nId!|vst          |d!         ¦  «        t(          k    r n%d"|vst          |d"         ¦  «        t(          k    r nŒ‰d#}|st          d$¦  «        ‚t          ||||||||	|
||||¬%¦  «        }|S )&rî   r   )rE   rF   é   z$invalid message length {0} for ERRORr7   z,invalid type {0} for 'request_type' in ERRORz-invalid value {0} for 'request_type' in ERRORr8   z'request' in ERRORr9   z'details' in ERRORrD   z'error' in ERRORNrF   rE   rN   ú0invalid value {0} for 'enc_algo' detail in EVENTr2  ú.invalid type {0} for 'enc_key' detail in EVENTrQ   ú6invalid value {0} for 'enc_serializer' detail in EVENTz$invalid type {0} for 'args' in ERRORz&invalid type {0} for 'kwargs' in ERRORrç   z-invalid type {0} for 'callee' detail in ERRORr3  z4invalid type {0} for 'callee_authid' detail in ERRORr4  z6invalid type {0} for 'callee_authrole' detail in ERRORr5  Fr  rÜ   rÝ   Tz?invalid type/value {0} for/within 'forward_for' option in ERROR)
r0  r„   r1  rN   r2  rQ   rç   r3  r4  r5  )r[   r   rÔ   r   rZ   rJ   r|   r   r   r   r   r    r   r"   r'   r(   r%   rV   r  r)   rK   r*   rë   r   )r¼   r-  r.  rò   r/  r0  r„   r1  rN   r2  rQ   rç   r3  r4  r5  Údetail_calleeÚdetail_callee_authidÚdetail_callee_authroleÚvalidr8  rÐ   s                        rA   r½   zError.parse  s`  € õ �4‰yŒy˜1Š}ˆ}  a¤­EÔ,>Ò!>Ð!>Ð!>Ð!>åˆt‰9Œ9˜IÐ%Ð%ÝÐ F× MÒ MÍcÐRVÉiÌiÑ XÔ XÑYÔYÐYà˜A”wˆÝ�ÑÔ¥Ò$Ð$ÝÐ N× UÒ UÐVbÑ cÔ cÑdÔdÐdà¥	Ô 6Ý +Ô 8Ý 'Ô 4Ý (Ô 5Ý *Ô 7Ý $Ô 1Ý *Ô 7ð 9ð 9ð 9õ  Ð O× VÒ VÐWcÑ dÔ dÑeÔeÐeå# D¨¤GÐ-AÑBÔBˆÝ& t¨A¤wÐ0DÑEÔEˆÝ" 4¨¤7Ð,>Ñ?Ô?ˆàˆØˆØˆØˆØˆØˆØˆØˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœm­uÒ4Ð4à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð iÕ 1°(Ñ ;Ô ;ð iÝ#Ð$V×$]Ò$]Ð^fÑ$gÔ$gÑhÔhÐhà—k’k )¨TÑ2Ô2ˆGØð l�4 ™=œ=­CÒ/Ð/Ý#Ð$T×$[Ò$[Õ\`ÐahÑ\iÔ\iÑ$jÔ$jÑkÔkÐkà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð uÕ&=¸nÑ&MÔ&Mð uÝ#Ð$\×$cÒ$cÐdrÑ$sÔ$sÑtÔtÐtøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�ØÐ#­¨T©
¬
µdÒ(:Ð(:Ý'Ð(N×(UÒ(UÕVZÐ[_ÑV`ÔV`Ñ(aÔ(aÑbÔbÐbå�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<¥4Ò'Ð'Ý'Ð(P×(WÒ(WÕX\Ð]cÑXdÔXdÑ(eÔ(eÑfÔfÐfà�wÐÐà# HÔ-ˆMÝ�MÑ"Ô"¥cÒ)Ð)Ý#Ð$S×$ZÒ$ZÕ[_Ð`mÑ[nÔ[nÑ$oÔ$oÑpÔpÐpà"ˆFà˜gÐ%Ð%à#*¨?Ô#;Ð ÝÐ(Ñ)Ô)­SÒ0Ð0Ý#Ð$Z×$aÒ$aÕbfÐg{Ñb|Ôb|Ñ$}Ô$}Ñ~Ô~Ð~à0ˆMà Ð'Ð'à%,Ð->Ô%?Ð"ÝÐ*Ñ+Ô+­sÒ2Ð2Ý#Ð$\×$cÒ$cÕdhÐiñ  eAô  eAñ  %Bô  %Bñ  Cô  Cð  Cà4ˆOà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð gÝ#Ð$eÑfÔfÐfå�LØØØØ!Ø#Ø%Ø#Ø#1Ø!Ø"/Ø$3Ø +ð-ñ -ô -ˆð ˆ
rC   c                 ó&  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        rT| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        | j	        | j
        || j        | j        gS | j        r'| j        | j	        | j
        || j        | j        | j        gS | j        r!| j        | j	        | j
        || j        | j        gS | j        | j	        | j
        || j        gS )	rý   Nrç   r3  r4  r5  rN   r2  rQ   )rç   r3  r4  r5  r1  rN   r2  rQ   rÔ   r-  r.  r/  r„   r0  r  s     rA   r·   zError.marshal‡  sL  € ð ˆàŒ;Ð"Ø $¤ˆG�HÑØÔÐ)Ø'+Ô'9ˆG�OÑ$ØÔÐ+Ø)-Ô)=ˆGÐ%Ñ&ØÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ<ð 	aØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)ØÔ% tÔ'8¸$¼,ÈÐQUÔQ[Ð]aÔ]iÐjÐjàŒ{ð aØÔ)¨4Ô+<¸d¼lÈGÐUYÔU_ÐaeÔajÐlpÔlwÐxÐxØ”ð aØÔ)¨4Ô+<¸d¼lÈGÐUYÔU_ÐaeÔajÐkÐkàÔ)¨4Ô+<¸d¼lÈGÐUYÔU_Ð`Ð`rC   r  r  r<   rC   rA   r   r   ~  s�   € € € € € ð	ð 	ð €Lðð€Ið( ØØØØØ $ØØ#Ø!%Ø!ðe'ð e'ð e'ð e'ðN ð~ð ~ñ „\ð~ð@ að  að  að  að  arC   r   c                   ó˜  — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d„Zd„ Zd„ Ze	d„ ¦   «         Z
e
j        d	„ ¦   «         Z
e	d
„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d „ ¦   «         Zej        d!„ ¦   «         Ze	d"„ ¦   «         Zej        d#„ ¦   «         Ze	d$„ ¦   «         Zej        d%„ ¦   «         Ze	d&„ ¦   «         Zej        d'„ ¦   «         Ze	d(„ ¦   «         Zej        d)„ ¦   «         Ze	d*„ ¦   «         Zej        d+„ ¦   «         Ze	d,„ ¦   «         Zej        d-„ ¦   «         Zed.„ ¦   «         Zd/„ Z ed0„ ¦   «         Z!d1„ Z"d2„ Z#dS )4r   aZ  
    A WAMP ``PUBLISH`` message.

    Formats:

    * ``[PUBLISH, Request|id, Options|dict, Topic|uri]``
    * ``[PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list]``
    * ``[PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list, ArgumentsKw|dict]``
    * ``[PUBLISH, Request|id, Options|dict, Topic|uri, Payload|binary]``
    é   )Ú_requestÚ_topicÚ_argsÚ_kwargsÚ_payloadÚ	_enc_algoÚ_enc_serializerÚ_enc_keyÚ_acknowledgeÚ_exclude_meÚ_excludeÚ_exclude_authidÚ_exclude_authroleÚ	_eligibleÚ_eligible_authidÚ_eligible_authroleÚ_retainÚ_transaction_hashÚ_forward_forNc                 ó€  — |�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�+t          |¦  «        t          t          t          t
          fv sJ ‚|�%t          |¦  «        t          t          t
          fv sJ ‚|�t          |¦  «        t
          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|	�t          |	¦  «        t          k    sJ ‚|	r|	D ]}t          |¦  «        t          k    sJ ‚Œ|
�t          |
¦  «        t          k    sJ ‚|
r|
D ]}t          |¦  «        t          k    sJ ‚Œ|�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|�t          |¦  «        sJ ‚|€|€|�|�|€J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | |¬¦  «         || _        || _        || _        t          |¦  «        | _        || _        || _        || _        || _        |	| _        |
| _        || _        || _        || _        || _        || _        || _        || _        || _        || _        dS )a©  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param topic: The WAMP or application URI of the PubSub topic the event should
           be published to.
        :type topic: str

        :param args: Positional values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type args: list or tuple or None

        :param kwargs: Keyword values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param acknowledge: If True, acknowledge the publication with a success or
           error response.
        :type acknowledge: bool or None

        :param exclude_me: If ``True``, exclude the publisher from receiving the event, even
           if he is subscribed (and eligible).
        :type exclude_me: bool or None

        :param exclude: List of WAMP session IDs to exclude from receiving this event.
        :type exclude: list of int or None

        :param exclude_authid: List of WAMP authids to exclude from receiving this event.
        :type exclude_authid: list of str or None

        :param exclude_authrole: List of WAMP authroles to exclude from receiving this event.
        :type exclude_authrole: list of str or None

        :param eligible: List of WAMP session IDs eligible to receive this event.
        :type eligible: list of int or None

        :param eligible_authid: List of WAMP authids eligible to receive this event.
        :type eligible_authid: list of str or None

        :param eligible_authrole: List of WAMP authroles eligible to receive this event.
        :type eligible_authrole: list of str or None

        :param retain: If ``True``, request the broker retain this event.
        :type retain: bool or None

        :param transaction_hash: An application provided transaction hash for the published event, which may
            be used in the router to throttle or deduplicate the events on the topic. See the discussion
            `here <https://github.com/wamp-proto/wamp-proto/issues/391#issuecomment-998577967>`_.
        :type transaction_hash: str

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None or None

        :param forward_for: When this Call is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   ©r’   ) rJ   r|   rK   rë   r7  rV   r   rŸ   r)   r*   r   r“   rE  rF  rG  r…   rH  rI  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rJ  rL  rK  rW  )r‘   r.  Útopicr0  r„   r1  ÚacknowledgeÚ
exclude_meÚexcludeÚexclude_authidÚexclude_authroleÚeligibleÚeligible_authidÚeligible_authroleÚretainÚtransaction_hashrN   r2  rQ   r5  r’   Ú	sessionidrÜ   rÝ   r8  s                            rA   r“   zPublish.__init__ö  s	  € ðn ˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6Øˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Øˆ|�t D™zœz­dµE½3ÅÐ-FÐFÐFÐFÐFØˆ~¥ f¡¤µ$½½UÐ1CÐ!CÐ!CÐ!CÐ!CØˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNØÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5ØÐ'­4Ð0@Ñ+AÔ+AÅSÒ+HÐ+HÐ+HÐ+Hð Ð!¥T¨*Ñ%5Ô%5½Ò%=Ð%=Ð%=Ð%=àˆ¥$ w¡-¤-µ4Ò"7Ð"7Ð"7Ð"7Øð 	/Ø$ð /ð /�	Ý˜I‘”­#Ò-Ð-Ð-Ð-Ð-àÐ%­¨nÑ)=Ô)=ÅÒ)EÐ)EÐ)EÐ)EØð 	,Ø(ð ,ð ,�Ý˜F‘|”|¥sÒ*Ð*Ð*Ð*Ð*àÐ'­4Ð0@Ñ+AÔ+AÅTÒ+IÐ+IÐ+IÐ+IØð 	.Ø,ð .ð .�Ý˜H‘~”~­Ò,Ð,Ð,Ð,Ð,àÐ¥4¨¡>¤>µTÒ#9Ð#9Ð#9Ð#9Øð 	/Ø%ð /ð /�	Ý˜I‘”­#Ò-Ð-Ð-Ð-Ð-àÐ&­$¨Ñ*?Ô*?Å4Ò*GÐ*GÐ*GÐ*GØð 	,Ø)ð ,ð ,�Ý˜F‘|”|¥sÒ*Ð*Ð*Ð*Ð*à Ð(­DÐ1BÑ,CÔ,CÅtÒ,KÐ,KÐ,KÐ,KØð 	.Ø-ð .ð .�Ý˜H‘~”~­Ò,Ð,Ð,Ð,Ð,àÐÕ#4°XÑ#>Ô#>ÐÐÐØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%àÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜¨ÐÑ1Ô1Ð1ØˆŒØˆŒØˆŒ
Ý'¨Ñ/Ô/ˆŒØˆŒØ'ˆÔð &ˆÔØˆŒØ-ˆÔØ!1ˆÔØ!ˆŒØ /ˆÔØ"3ˆÔð ˆŒð "2ˆÔð "ˆŒØˆŒØ-ˆÔð (ˆÔÐÐrC   c                 ó  — t          || j        ¦  «        sdS t                               | |¦  «        sdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j	        | j	        k    rdS |j
        | j
        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS dS ©NFT)r�   r¥   r   rª   r.  rZ  r0  r„   r1  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  rN   r2  rQ   r5  r­   s     rA   rª   zPublish.__eq__¤  sÈ  € Ý˜% ¤Ñ0Ô0ð 	Ø�5Ý�~Š~˜d EÑ*Ô*ð 	Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØŒ;˜$œ*Ò$Ð$Ø�5ØŒ:˜œÒ"Ð"Ø�5ØŒ<˜4œ;Ò&Ð&Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØÔ Ô 0Ò0Ð0Ø�5ØÔ˜tœÒ.Ð.Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØÔ 4Ô#6Ò6Ð6Ø�5ØÔ! TÔ%:Ò:Ð:Ø�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØÔ  DÔ$8Ò8Ð8Ø�5ØÔ" dÔ&<Ò<Ð<Ø�5ØŒ<˜4œ;Ò&Ð&Ø�5ØÔ! TÔ%:Ò:Ð:Ø�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØÔ 4Ô#6Ò6Ð6Ø�5ØÔ Ô 0Ò0Ð0Ø�5ØˆtrC   c                 ó.   — |                       |¦  «         S r�   r¬   r­   s     rA   r®   zPublish.__ne__Ñ  ó   € Ø—;’;˜uÑ%Ô%Ð%Ð%rC   c                 óh   — | j         €%| j        r| j                             ¦   «         | _         | j         S r�   )rE  rˆ   ÚRequestr•   s    rA   r.  zPublish.requestÔ  s.   € àŒ=Ð  T¤^Ð Ø œN×2Ò2Ñ4Ô4ˆDŒMØŒ}ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   r|   rE  r˜   s     rA   r.  zPublish.requestÚ  s(   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2ØˆŒˆˆrC   c                 ó–   — | j         €<| j        r5| j                             ¦   «         }|r|                     d¦  «        | _         | j         S ©NÚutf8©rF  rˆ   ÚTopicrY   ©r‘   r^   s     rA   rZ  zPublish.topicß  óG   € àŒ;Ð 4¤>ÐØ”×$Ò$Ñ&Ô&ˆAØð /ØŸhšh vÑ.Ô.�”ØŒ{ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   ©rJ   rK   rF  r˜   s     rA   rZ  zPublish.topicç  ó(   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2ØˆŒˆˆrC   c                 óØ   — | j         €]| j        rV| j                             ¦   «         r=t          j        t          | j                             ¦   «         ¦  «        ¦  «        | _         | j         S r�   ©rG  rˆ   Ú
ArgsLengthÚcbor2ÚloadsrV   ÚArgsAsBytesr•   s    rA   r0  zPublish.argsì  óW   € àŒ:Ð $¤.ÐØŒ~×(Ò(Ñ*Ô*ð NÝ"œ[­¨t¬~×/IÒ/IÑ/KÔ/KÑ)LÔ)LÑMÔM�”
ØŒzÐrC   c                 óV   — |�t          |¦  «        t          t          fv sJ ‚|| _        d S r�   ©rJ   rë   r7  rG  r˜   s     rA   r0  zPublish.argsó  ó,   € àˆ}¥ U¡¤µµe¨}Ð <Ð <Ð <Ð <ØˆŒ
ˆ
ˆ
rC   c                 óØ   — | j         €]| j        rV| j                             ¦   «         r=t          j        t          | j                             ¦   «         ¦  «        ¦  «        | _         | j         S r�   ©rH  rˆ   ÚKwargsLengthrz  r{  rV   ÚKwargsAsBytesr•   s    rA   r„   zPublish.kwargsø  óW   € àŒ<Ð D¤NÐØŒ~×*Ò*Ñ,Ô,ð RÝ$œ{­5°´×1MÒ1MÑ1OÔ1OÑ+PÔ+PÑQÔQ�”ØŒ|ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   ©rJ   r   rH  r˜   s     rA   r„   zPublish.kwargsÿ  ó(   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3ØˆŒˆˆrC   c                 óš   — | j         €>| j        r7| j                             ¦   «         r| j                             ¦   «         | _         | j         S r�   ©rI  rˆ   ÚPayloadLengthÚPayloadAsBytesr•   s    rA   r1  zPublish.payload  óE   € àŒ=Ð  T¤^Ð ØŒ~×+Ò+Ñ-Ô-ð @Ø $¤× =Ò =Ñ ?Ô ?�”ØŒ}ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   ©rJ   rV   rI  r˜   s     rA   r1  zPublish.payload  ó(   € àˆ}¥ U¡¤­uÒ 4Ð 4Ð 4Ð 4ØˆŒˆˆrC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   )rM  rˆ   ÚAcknowledge)r‘   r[  s     rA   r[  zPublish.acknowledge  s>   € àÔÐ$¨¬Ð$Øœ.×4Ò4Ñ6Ô6ˆKØð 0Ø$/�Ô!ØÔ Ð rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rŸ   rM  r˜   s     rA   r[  zPublish.acknowledge  s+   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Ø!ˆÔÐÐrC   c                 ót   — | j         €+| j        r$| j                             ¦   «         }|du r|| _         | j         S )NF)rN  rˆ   Ú	ExcludeMe)r‘   r\  s     rA   r\  zPublish.exclude_me  sA   € àÔÐ#¨¬Ð#Øœ×1Ò1Ñ3Ô3ˆJØ˜UÐ"Ð"Ø#-�Ô ØÔÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rŸ   rN  r˜   s     rA   r\  zPublish.exclude_me%  s+   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Ø ˆÔÐÐrC   c                 ó  — | j         €| j        rx| j                             ¦   «         r_g }t          | j                             ¦   «         ¦  «        D ]/}|                     | j                             |¦  «        ¦  «         Œ0|| _         | j         S r�   )rO  rˆ   ÚExcludeLengthÚrangeÚappendÚExclude)r‘   r]  Újs      rA   r]  zPublish.exclude*  s…   € àŒ=Ð  T¤^Ð ØŒ~×+Ò+Ñ-Ô-ð (Ø�Ý˜tœ~×;Ò;Ñ=Ô=Ñ>Ô>ð >ð >�AØ—N’N 4¤>×#9Ò#9¸!Ñ#<Ô#<Ñ=Ô=Ð=Ð=Ø '�”ØŒ}ÐrC   c                 óŽ   — |�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|| _        d S r�   )rJ   rë   r|   rO  ©r‘   r?   Úxs      rA   r]  zPublish.exclude4  sT   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Øð 	&Øð &ð &�Ý˜A‘w”w¥#’~�~�~�~�~ØˆŒˆˆrC   c                 óB  — | j         €’| j        r‹| j                             ¦   «         rrg }t          | j                             ¦   «         ¦  «        D ]B}|                     | j                             |¦  «                             d¦  «        ¦  «         ŒC|| _         | j         S rn  )rP  rˆ   ÚExcludeAuthidLengthr™  rš  ÚExcludeAuthidrY   )r‘   r^  rœ  s      rA   r^  zPublish.exclude_authid<  s›   € àÔÐ'¨D¬NÐ'ØŒ~×1Ò1Ñ3Ô3ð 6Ø!#�Ý˜tœ~×AÒAÑCÔCÑDÔDð Zð Z�AØ"×)Ò)¨$¬.×*FÒ*FÀqÑ*IÔ*I×*PÒ*PÐQWÑ*XÔ*XÑYÔYÐYÐYØ'5�Ô$ØÔ#Ð#rC   c                 óŽ   — |�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|| _        d S r�   )rJ   rë   rK   rP  rž  s      rA   r^  zPublish.exclude_authidF  sW   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Øð 	&Øð &ð &�Ý˜A‘w”w¥#’~�~�~�~�~Ø$ˆÔÐÐrC   c                 óB  — | j         €’| j        r‹| j                             ¦   «         rrg }t          | j                             ¦   «         ¦  «        D ]B}|                     | j                             |¦  «                             d¦  «        ¦  «         ŒC|| _         | j         S rn  )rQ  rˆ   ÚExcludeAuthroleLengthr™  rš  ÚExcludeAuthrolerY   )r‘   r_  rœ  s      rA   r_  zPublish.exclude_authroleN  sœ   € àÔ!Ð)¨d¬nÐ)ØŒ~×3Ò3Ñ5Ô5ð :Ø#%Ð Ý˜tœ~×CÒCÑEÔEÑFÔFð ^ð ^�AØ$×+Ò+¨D¬N×,JÒ,JÈ1Ñ,MÔ,M×,TÒ,TÐU[Ñ,\Ô,\Ñ]Ô]Ð]Ð]Ø)9�Ô&ØÔ%Ð%rC   c                 óŽ   — |�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|| _        d S r�   )rJ   rë   rK   rQ  rž  s      rA   r_  zPublish.exclude_authroleX  sW   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Øð 	&Øð &ð &�Ý˜A‘w”w¥#’~�~�~�~�~Ø!&ˆÔÐÐrC   c                 ó  — | j         €| j        rx| j                             ¦   «         r_g }t          | j                             ¦   «         ¦  «        D ]/}|                     | j                             |¦  «        ¦  «         Œ0|| _         | j         S r�   )rR  rˆ   ÚEligibleLengthr™  rš  ÚEligible)r‘   r`  rœ  s      rA   r`  zPublish.eligible`  s‡   € àŒ>Ð! d¤nÐ!ØŒ~×,Ò,Ñ.Ô.ð *Ø�Ý˜tœ~×<Ò<Ñ>Ô>Ñ?Ô?ð @ð @�AØ—O’O D¤N×$;Ò$;¸AÑ$>Ô$>Ñ?Ô?Ð?Ð?Ø!)�”ØŒ~ÐrC   c                 óŽ   — |�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|| _        d S r�   )rJ   rë   r|   rR  rž  s      rA   r`  zPublish.eligiblej  sT   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Øð 	&Øð &ð &�Ý˜A‘w”w¥#’~�~�~�~�~ØˆŒˆˆrC   c                 óB  — | j         €’| j        r‹| j                             ¦   «         rrg }t          | j                             ¦   «         ¦  «        D ]B}|                     | j                             |¦  «                             d¦  «        ¦  «         ŒC|| _         | j         S rn  )rS  rˆ   ÚEligibleAuthidLengthr™  rš  ÚEligibleAuthidrY   )r‘   ra  rœ  s      rA   ra  zPublish.eligible_authidr  s›   € àÔ Ð(¨T¬^Ð(ØŒ~×2Ò2Ñ4Ô4ð 8Ø"$�Ý˜tœ~×BÒBÑDÔDÑEÔEð \ð \�AØ#×*Ò*¨4¬>×+HÒ+HÈÑ+KÔ+K×+RÒ+RÐSYÑ+ZÔ+ZÑ[Ô[Ð[Ð[Ø(7�Ô%ØÔ$Ð$rC   c                 óŽ   — |�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|| _        d S r�   )rJ   rë   rK   rS  rž  s      rA   ra  zPublish.eligible_authid|  sW   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Øð 	&Øð &ð &�Ý˜A‘w”w¥#’~�~�~�~�~Ø %ˆÔÐÐrC   c                 óB  — | j         €’| j        r‹| j                             ¦   «         rrg }t          | j                             ¦   «         ¦  «        D ]B}|                     | j                             |¦  «                             d¦  «        ¦  «         ŒC|| _         | j         S rn  )rT  rˆ   ÚEligibleAuthroleLengthr™  rš  ÚEligibleAuthrolerY   )r‘   rb  rœ  s      rA   rb  zPublish.eligible_authrole„  sœ   € àÔ"Ð*¨t¬~Ð*ØŒ~×4Ò4Ñ6Ô6ð <Ø$&Ð!Ý˜tœ~×DÒDÑFÔFÑGÔGð `ð `�AØ%×,Ò,¨T¬^×-LÒ-LÈQÑ-OÔ-O×-VÒ-VÐW]Ñ-^Ô-^Ñ_Ô_Ð_Ð_Ø*;�Ô'ØÔ&Ð&rC   c                 óŽ   — |�t          |¦  «        t          k    sJ ‚|r|D ]}t          |¦  «        t          k    sJ ‚Œ|| _        d S r�   )rJ   rë   rK   rT  rž  s      rA   rb  zPublish.eligible_authroleŽ  sW   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Øð 	&Øð &ð &�Ý˜A‘w”w¥#’~�~�~�~�~Ø"'ˆÔÐÐrC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   )rU  rˆ   ÚRetain)r‘   rc  s     rA   rc  zPublish.retain–  s;   € àŒ<Ð D¤NÐØ”^×*Ò*Ñ,Ô,ˆFØð &Ø%�”ØŒ|ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rŸ   rU  r˜   s     rA   rc  zPublish.retainž  rˆ  rC   c                 ó–   — | j         €<| j        r5| j                             ¦   «         }|r|                     d¦  «        | _         | j         S rn  ©rV  rˆ   ÚTransactionHashrY   rr  s     rA   rd  zPublish.transaction_hash£  óJ   € àÔ!Ð)¨d¬nÐ)Ø”×.Ò.Ñ0Ô0ˆAØð :Ø)*¯ª°&Ñ)9Ô)9�Ô&ØÔ%Ð%rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   ©rJ   rK   rV  r˜   s     rA   rd  zPublish.transaction_hash«  ó+   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Ø!&ˆÔÐÐrC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   ©rJ  rˆ   ÚEncAlgo©r‘   rN   s     rA   rN   zPublish.enc_algo°  ó;   € àŒ>Ð! d¤nÐ!Ø”~×-Ò-Ñ/Ô/ˆHØð *Ø!)�”ØŒ~ÐrC   c                 óH   — |�|t           t          t          fv sJ ‚|| _        d S r�   ©ÚENC_ALGO_CRYPTOBOXÚENC_ALGO_MQTTÚENC_ALGO_XBRrJ  r˜   s     rA   rN   zPublish.enc_algo¸  ó*   € àˆ} Õ*<½mÍ\Ð)ZÐ ZÐ ZÐ ZÐ ZØˆŒˆˆrC   c                 óš   — | j         €>| j        r7| j                             ¦   «         r| j                             ¦   «         | _         | j         S r�   ©rL  rˆ   ÚEncKeyLengthÚEncKeyAsBytesr•   s    rA   r2  zPublish.enc_key½  óD   € àŒ=Ð  T¤^Ð ØŒ~×*Ò*Ñ,Ô,ð ?Ø $¤× <Ò <Ñ >Ô >�”ØŒ}ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   ©rJ   rV   rL  r˜   s     rA   r2  zPublish.enc_keyÄ  r�  rC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   ©rK  rˆ   ÚEncSerializer©r‘   rQ   s     rA   rQ   zPublish.enc_serializerÉ  ó>   € àÔÐ'¨D¬NÐ'Ø!œ^×9Ò9Ñ;Ô;ˆNØð 6Ø'5�Ô$ØÔ#Ð#rC   c                 óT   — |�|t           t          t          t          fv sJ ‚|| _        d S r�   ©ÚENC_SER_JSONÚENC_SER_MSGPACKÚENC_SER_CBORÚENC_SER_UBJSONrK  r˜   s     rA   rQ   zPublish.enc_serializerÑ  ó/   € àˆ} ­,½ÍÕWeÐ)fÐ fÐ fÐ fÐ fØ$ˆÔÐÐrC   c                 ó   — | j         S r�   ©rW  r•   s    rA   r5  zPublish.forward_forÖ  ó   € ð Ô Ð rC   c                 ó   — || _         d S r�   rÝ  r˜   s     rA   r5  zPublish.forward_forÛ  ó   € ð "ˆÔÐÐrC   c                 ó^   — t          t          j                              | d¦  «        ¬¦  «        S ©Nr   rY  )r   r   ÚGetRootAsPublishrÁ   s    rA   rÃ   zPublish.castà  s&   € å¥Ô 3× DÒ DÀSÈ!Ñ LÔ LÐMÑMÔMÐMrC   c                 ó  — | j         }|r'|                     t          j        |¦  «        ¦  «        }| j        }|r'|                     t          j        |¦  «        ¦  «        }| j        }|r|                     |¦  «        }| j        }|r|                     |¦  «        }| j        }|r|                     |¦  «        }| j	        }|r|                     |¦  «        }| j
        }|rvt          j                             |t          |¦  «        ¦  «         t          |¦  «        D ]}	|                     |	¦  «         Œ|                     t          |¦  «        ¦  «        }| j        }
|
r¥g }|
D ]*}|                     |                     |¦  «        ¦  «         Œ+t          j                             |t          |¦  «        ¦  «         t          |¦  «        D ]}|                     |¦  «         Œ|                     t          |¦  «        ¦  «        }
| j        }|
r¥g }|D ]*}|                     |                     |¦  «        ¦  «         Œ+t          j                             |t          |¦  «        ¦  «         t          |¦  «        D ]}|                     |¦  «         Œ|                     t          |¦  «        ¦  «        }| j        }|rvt          j                             |t          |¦  «        ¦  «         t          |¦  «        D ]}	|                     |	¦  «         Œ|                     t          |¦  «        ¦  «        }| j        }|r¥g }|D ]*}|                     |                     |¦  «        ¦  «         Œ+t          j                             |t          |¦  «        ¦  «         t          |¦  «        D ]}|                     |¦  «         Œ|                     t          |¦  «        ¦  «        }| j        }|r¥g }|D ]*}|                     |                     |¦  «        ¦  «         Œ+t          j                             |t          |¦  «        ¦  «         t          |¦  «        D ]}|                     |¦  «         Œ|                     t          |¦  «        ¦  «        }t          j                             |¦  «         | j        �%t          j                             || j        ¦  «         |r t          j                             ||¦  «         |r t          j                              ||¦  «         |r t          j         !                    ||¦  «         |r t          j         "                    ||¦  «         | j#        r%t          j         $                    || j#        ¦  «         | j%        r%t          j         &                    || j%        ¦  «         |r t          j         '                    ||¦  «         | j(        �%t          j         )                    || j(        ¦  «         | j*        �%t          j         +                    || j*        ¦  «         |r t          j         ,                    ||¦  «         |
r t          j         -                    ||
¦  «         |r t          j         .                    ||¦  «         |r t          j         /                    ||¦  «         |r t          j         0                    ||¦  «         |r t          j         1                    ||¦  «         | j2        �%t          j         3                    || j2        ¦  «         |�%t          j         4                    || j        ¦  «         t          j         5                    |¦  «        }t          j6         7                    |¦  «         t          j6         8                    |t          j9        j:        ¦  «         t          j6         ;                    ||¦  «         t          j6         <                    |¦  «        }|S r�   )=r0  ÚCreateByteVectorrz  Údumpsr„   r1  rZ  ÚCreateStringrd  r2  r]  r   Ú
PublishGenÚPublishStartExcludeAuthidVectorr[   ÚreversedÚPrependUint64Ú	EndVectorr^  rš  ÚPrependUOffsetTRelativer_  Ú!PublishStartExcludeAuthroleVectorr`  Ú PublishStartEligibleAuthidVectorra  rb  Ú"PublishStartEligibleAuthroleVectorÚPublishStartr.  ÚPublishAddRequestÚPublishAddTopicÚPublishAddArgsÚPublishAddKwargsÚPublishAddPayloadrN   ÚPublishAddEncAlgorQ   ÚPublishAddEncSerializerÚPublishAddEncKeyr[  ÚPublishAddAcknowledger\  ÚPublishAddExcludeMeÚPublishAddExcludeÚPublishAddExcludeAuthidÚPublishAddExcludeAuthroleÚPublishAddEligibleÚPublishAddEligibleAuthidÚPublishAddEligibleAuthrolerc  ÚPublishAddRetainÚPublishAddTransactionHashÚ
PublishEndr   ÚMessageStartÚMessageAddMsgTypeÚMessageTypeÚPUBLISHÚMessageAddMsgÚ
MessageEnd)r‘   rÅ   r0  r„   r1  rZ  rd  r2  r]  r  r^  rP  rÜ   Úor_  rQ  rÝ   r`  ra  rS  rb  rT  ÚmsgÚ	union_msgs                           rA   rÆ   zPublish.buildä  sÛ  € àŒyˆØð 	?Ø×+Ò+­E¬K¸Ñ,=Ô,=Ñ>Ô>ˆDà”ˆØð 	CØ×-Ò-­e¬k¸&Ñ.AÔ.AÑBÔBˆFà”,ˆØð 	8Ø×.Ò.¨wÑ7Ô7ˆGà”
ˆØð 	0Ø×(Ò(¨Ñ/Ô/ˆEàÔ0ÐØð 	FØ&×3Ò3Ð4DÑEÔEÐà”,ˆØð 	8Ø×.Ò.¨wÑ7Ô7ˆGð ”,ˆØð 	6ÝÔ"×BÒBÀ7ÍCÐPWÉLÌLÑYÔYÐYÝ# GÑ,Ô,ð /ð /�Ø×%Ò% gÑ.Ô.Ð.Ð.Ø×'Ò'­¨G©¬Ñ5Ô5ˆGð Ô,ˆØð 	EØ ˆOØ(ð Eð E�Ø×&Ò& w×';Ò';¸FÑ'CÔ'CÑDÔDÐDÐDÝÔ"×BÒBÀ7ÍCÐP_ÑL`ÔL`ÑaÔaÐaÝ˜oÑ.Ô.ð 3ð 3�Ø×/Ò/°Ñ2Ô2Ð2Ð2Ø$×.Ò.­s°?Ñ/CÔ/CÑDÔDˆNð  Ô0ÐØð 	IØ "ÐØ,ð Ið I�Ø!×(Ò(¨×)=Ò)=¸hÑ)GÔ)GÑHÔHÐHÐHÝÔ"×DÒDÀWÍcÐRcÑNdÔNdÑeÔeÐeÝÐ/Ñ0Ô0ð 3ð 3�Ø×/Ò/°Ñ2Ô2Ð2Ð2Ø&×0Ò0µÐ5FÑ1GÔ1GÑHÔHÐð ”=ˆØð 	8ÝÔ"×CÒCÀGÍSÐQYÉ]Ì]Ñ[Ô[Ð[Ý# HÑ-Ô-ð /ð /�Ø×%Ò% gÑ.Ô.Ð.Ð.Ø×(Ò(­¨X©¬Ñ7Ô7ˆHð Ô.ˆØð 	GØ!ÐØ)ð Fð F�Ø ×'Ò'¨×(<Ò(<¸VÑ(DÔ(DÑEÔEÐEÐEÝÔ"×CÒCÀGÍSÐQaÑMbÔMbÑcÔcÐcÝÐ.Ñ/Ô/ð 3ð 3�Ø×/Ò/°Ñ2Ô2Ð2Ð2Ø%×/Ò/µÐ4DÑ0EÔ0EÑFÔFˆOð !Ô2ÐØð 	KØ!#ÐØ-ð Jð J�Ø"×)Ò)¨'×*>Ò*>¸xÑ*HÔ*HÑIÔIÐIÐIÝÔ"×EÒEÀgÍsÐSeÑOfÔOfÑgÔgÐgÝÐ0Ñ1Ô1ð 3ð 3�Ø×/Ò/°Ñ2Ô2Ð2Ð2Ø '× 1Ò 1µ#Ð6HÑ2IÔ2IÑ JÔ JÐõ 	Ô×+Ò+¨GÑ4Ô4Ð4àŒ<Ð#ÝÔ"×4Ò4°W¸d¼lÑKÔKÐKàð 	CÝÔ"×2Ò2°7¸EÑBÔBÐBàð 	AÝÔ"×1Ò1°'¸4Ñ@Ô@Ð@Øð 	EÝÔ"×3Ò3°G¸VÑDÔDÐDØð 	GÝÔ"×4Ò4°W¸gÑFÔFÐFàŒ=ð 	MÝÔ"×4Ò4°W¸d¼mÑLÔLÐLØÔð 	YÝÔ"×:Ò:¸7ÀDÔDWÑXÔXÐXØð 	FÝÔ"×3Ò3°G¸WÑEÔEÐEàÔÐ'ÝÔ"×8Ò8¸À$ÔBRÑSÔSÐSØŒ?Ð&ÝÔ"×6Ò6°wÀÄÑPÔPÐPàð 	GÝÔ"×4Ò4°W¸gÑFÔFÐFØð 	TÝÔ"×:Ò:¸7ÀNÑSÔSÐSØð 	XÝÔ"×<Ò<¸WÐFVÑWÔWÐWàð 	IÝÔ"×5Ò5°g¸xÑHÔHÐHØð 	VÝÔ"×;Ò;¸GÀ_ÑUÔUÐUØð 	ZÝÔ"×=Ò=¸gÐGXÑYÔYÐYàŒ;Ð"ÝÔ"×3Ò3°G¸T¼[ÑIÔIÐIØÐ'ÝÔ"×<Ò<¸WÀdÔF[Ñ\Ô\Ð\õ Ô$×/Ò/°Ñ8Ô8ˆåÔ×(Ò(¨Ñ1Ô1Ð1ÝÔ×-Ò-¨gµ{Ô7NÔ7VÑWÔWÐWÝÔ×)Ò)¨'°3Ñ7Ô7Ð7ÝÔ'×2Ò2°7Ñ;Ô;ˆ	àÐrC   c                 óì  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          | d         d	¦  «        }d
}d
}d
}t          | ¦  «        dk    �rt          | d         ¦  «        t          t          fv rú| d         }|                     dd
¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚|                     dd
¦  «        }|rGt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|                     dd
¦  «        }	|	r1t          |	¦  «        s"t          d                     |	¦  «        ¦  «        ‚nàt          | ¦  «        dk    rZ| d         }t          |¦  «        t          t          t          fvr/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        dk    rZ| d         }t          |¦  «        t          t          t          fvr/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d
}d
}d
}	d
}
d
}d
}d
}d
}d
}d
}d
}d
}d
}d
}d|v rQ|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}
d|v rQ|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v r�|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|D ]I}t          |¦  «        t"          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ|}d|v r�|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|D ]I}t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ|}d|v r�|d         }t          |¦  «        t          k    r/t          d                      t          |¦  «        ¦  «        ¦  «        ‚|D ]I}t          |¦  «        t          k    r/t          d!                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ|}d"|v r�|d"         }t          |¦  «        t          k    r/t          d#                     t          |¦  «        ¦  «        ¦  «        ‚|D ]I}t          |¦  «        t"          k    r/t          d$                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ|}d%|v r�|d%         }t          |¦  «        t          k    r/t          d&                     t          |¦  «        ¦  «        ¦  «        ‚|D ]I}t          |¦  «        t          k    r/t          d'                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ|}d(|v r�|d(         } t          | ¦  «        t          k    r/t          d)                     t          | ¦  «        ¦  «        ¦  «        ‚| D ]I}t          |¦  «        t          k    r/t          d*                     t          |¦  «        ¦  «        ¦  «        ‚ŒJ| }d+|v rO|d+         }t          |¦  «        t           k    r/t          d,                     t          |¦  «        ¦  «        ¦  «        ‚d-|v rO|d-         }t          |¦  «        t          k    r/t          d.                     t          |¦  «        ¦  «        ¦  «        ‚d/|v rÀ|d/         }d0}!t          |¦  «        t          k    r�|D ]ˆ}"t          |"¦  «        t          k    r nmd1|"vst          |"d1         ¦  «        t"          k    r nId2|"vst          |"d2         ¦  «        t          k    r n%d3|"vst          |"d3         ¦  «        t          k    r nŒ‰d4}!|!st          d5¦  «        ‚t          ||fi d6|“d7|“d8|“d|
“d|“d|“d|“d|“d"|“d%|“d(|“d+|“d-|“d|“d|“d|	“d/|“Ž}#|#S )9rî   r   ©rD   rE   rF   z&invalid message length {0} for PUBLISHr7   z'request' in PUBLISHr8   z'options' in PUBLISHr9   z'topic' in PUBLISHNrE   rD   rN   z2invalid value {0} for 'enc_algo' option in PUBLISHr2  z0invalid type {0} for 'enc_key' option in PUBLISHrQ   z8invalid value {0} for 'enc_serializer' option in PUBLISHz&invalid type {0} for 'args' in PUBLISHz(invalid type {0} for 'kwargs' in PUBLISHr[  z4invalid type {0} for 'acknowledge' option in PUBLISHr\  z3invalid type {0} for 'exclude_me' option in PUBLISHr]  z0invalid type {0} for 'exclude' option in PUBLISHz9invalid type {0} for value in 'exclude' option in PUBLISHr^  z7invalid type {0} for 'exclude_authid' option in PUBLISHz@invalid type {0} for value in 'exclude_authid' option in PUBLISHr_  z9invalid type {0} for 'exclude_authrole' option in PUBLISHzBinvalid type {0} for value in 'exclude_authrole' option in PUBLISHr`  z1invalid type {0} for 'eligible' option in PUBLISHz:invalid type {0} for value in 'eligible' option in PUBLISHra  z8invalid type {0} for 'eligible_authid' option in PUBLISHzAinvalid type {0} for value in 'eligible_authid' option in PUBLISHrb  z:invalid type {0} for 'eligible_authrole' option in PUBLISHzCinvalid type {0} for value in 'eligible_authrole' option in PUBLISHrc  z/invalid type {0} for 'retain' option in PUBLISHrd  z9invalid type {0} for 'transaction_hash' option in PUBLISHr5  Fr  rÜ   rÝ   TzAinvalid type/value {0} for/within 'forward_for' option in PUBLISHr0  r„   r1  )r[   r   rÔ   r   rZ   r'   r(   r%   rJ   rK   rV   r  r)   r*   rë   r   rŸ   r|   )$r¼   r.  ÚoptionsrZ  r0  r„   r1  rN   r2  rQ   r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  r5  Úoption_acknowledgeÚoption_exclude_meÚoption_excludeÚ
_sessionidÚoption_exclude_authidÚ_authidÚoption_exclude_authroleÚ	_authroleÚoption_eligibleÚ	sessionIdÚoption_eligible_authidÚoption_eligible_authrolerA  r8  rÐ   s$                                       rA   r½   zPublish.parset	  sŒ
  € õ �4‰yŒy˜1Š}ˆ}  a¤­GÔ,@Ò!@Ð!@Ð!@Ð!@åˆt‰9Œ9˜IÐ%Ð%ÝÐ H× OÒ OÕPSÐTXÑPYÔPYÑ ZÔ ZÑ[Ô[Ð[å# D¨¤GÐ-CÑDÔDˆÝ& t¨A¤wÐ0FÑGÔGˆÝ" 4¨¤7Ð,@ÑAÔAˆàˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœmµµU¨|Ð;Ð;à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð kÕ 1°(Ñ ;Ô ;ð kÝ#Ð$X×$_Ò$_Ð`hÑ$iÔ$iÑjÔjÐjà—k’k )¨TÑ2Ô2ˆGØð n�4 ™=œ=­CÒ/Ð/Ý#Ð$V×$]Ò$]Õ^bÐcjÑ^kÔ^kÑ$lÔ$lÑmÔmÐmà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð wÕ&=¸nÑ&MÔ&Mð wÝ#Ð$^×$eÒ$eÐftÑ$uÔ$uÑvÔvÐvøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�Ý˜‘:”:¥d­CµÐ%7Ð7Ð7Ý'Ð(P×(WÒ(WÕX\Ð]aÑXbÔXbÑ(cÔ(cÑdÔdÐdå�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<­­cµ5Ð'9Ð9Ð9Ý'Ð(R×(YÒ(YÕZ^Ð_eÑZfÔZfÑ(gÔ(gÑhÔhÐhàˆHØˆGØ!ˆNàˆØˆ
ØˆØˆØÐØˆØˆØ ÐØˆØÐØˆà˜GÐ#Ð#à!(¨Ô!7ÐÝÐ&Ñ'Ô'­4Ò/Ð/Ý#Ð$Z×$aÒ$aÕbfÐgyÑbzÔbzÑ${Ô${Ñ|Ô|Ð|à,ˆKà˜7Ð"Ð"à '¨Ô 5ÐÝÐ%Ñ&Ô&­$Ò.Ð.Ý#Ð$Y×$`Ò$`ÕaeÐfwÑaxÔaxÑ$yÔ$yÑzÔzÐzà*ˆJà˜ÐÐà$ YÔ/ˆNÝ�NÑ#Ô#¥tÒ+Ð+Ý#Ð$V×$]Ò$]Õ^bÐcqÑ^rÔ^rÑ$sÔ$sÑtÔtÐtà,ð ~ð ~�
Ý˜
Ñ#Ô#¥sÒ*Ð*Ý'Ð(c×(jÒ(jÕkoÐpzÑk{Ôk{Ñ(|Ô(|Ñ}Ô}Ð}ð +ð %ˆGà˜wÐ&Ð&à$+Ð,<Ô$=Ð!ÝÐ)Ñ*Ô*­dÒ2Ð2Ý#Ð$]×$dÒ$dÕeiÐjñ  fAô  fAñ  %Bô  %Bñ  Cô  Cð  Cà0ð Bð B�Ý˜‘=”=¥CÒ'Ð'Ý'Ð(j×(qÒ(qÕrvÐw~ÑrÔrñ  )Aô  )Añ  Bô  Bð  Bð (ð 3ˆNà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ4Ð4Ý#Ð$_×$fÒ$fÕgkð  mDñ  hEô  hEñ  %Fô  %Fñ  Gô  Gð  Gà4ð Fð F�	Ý˜	‘?”?¥cÒ)Ð)Ý'Ð(l×(sÒ(sÕtxð  zCñ  uDô  uDñ  )Eô  )Eñ  Fô  Fð  Fð *ð  7Ðà˜Ð Ð à% jÔ1ˆOÝ�OÑ$Ô$­Ò,Ð,Ý#Ð$W×$^Ò$^Õ_cÐdsÑ_tÔ_tÑ$uÔ$uÑvÔvÐvà,ð ~ð ~�	Ý˜	‘?”?¥cÒ)Ð)Ý'Ð(d×(kÒ(kÕlpÐqzÑl{Ôl{Ñ(|Ô(|Ñ}Ô}Ð}ð *ð 'ˆHà Ð'Ð'à%,Ð->Ô%?Ð"ÝÐ*Ñ+Ô+­tÒ3Ð3Ý#Ð$^×$eÒ$eÕfjð  lBñ  gCô  gCñ  %Dô  %Dñ  Eô  Eð  Eà1ð Cð C�Ý˜‘=”=¥CÒ'Ð'Ý'Ð(k×(rÒ(rÕswÐxñ  tAô  tAñ  )Bô  )Bñ  Cô  Cð  Cð (ð 5ˆOà 'Ð)Ð)à'.Ð/BÔ'CÐ$ÝÐ,Ñ-Ô-µÒ5Ð5Ý#Ð$`×$gÒ$gÕhlð  nFñ  iGô  iGñ  %Hô  %Hñ  Iô  Ið  Ià5ð Gð G�	Ý˜	‘?”?¥cÒ)Ð)Ý'Ð(m×(tÒ(tÕuyð  {Dñ  vEô  vEñ  )Fô  )Fñ  Gô  Gð  Gð *ð !9Ðà�wÐÐØ˜XÔ&ˆFÝ�F‰|Œ|�tÒ#Ð#Ý#Ð$U×$\Ò$\Õ]aÐbhÑ]iÔ]iÑ$jÔ$jÑkÔkÐkà Ð(Ð(Ø&Ð'9Ô:ÐÝÐ$Ñ%Ô%­Ò,Ð,Ý#Ð$_×$fÒ$fÕgkÐl|Ñg}Ôg}Ñ$~Ô$~ÑÔÐà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð iÝ#Ð$gÑhÔhÐhå�gØð/ð /ð /à˜4ð/ð $˜Vð/ð &˜gð	/ð
 #. +ð/ð ", ð/ð &˜gð/ð &4 ^ð/ð (8Ð'7ð/ð  (˜xð/ð '6 oð/ð ):Ð(9ð/ð $˜Vð/ð (8Ð'7ð/ð  (˜xð/ð  &˜gð!/ð" &4 ^ð#/ð$ #. +ð%/ˆð( ˆ
rC   c                 óô  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d	<   | j	        �
| j	        |d
<   | j
        r3| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   |S )Nr[  r\  r]  r^  r_  r`  ra  rb  rc  rd  rN   r2  rQ   r5  )r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  r1  rN   r2  rQ   r5  ©r‘   r  s     rA   Úmarshal_optionszPublish.marshal_optionsA
  sE  € ØˆàÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ?Ð&Ø$(¤OˆG�LÑ!ØŒ<Ð#Ø!%¤ˆG�IÑØÔÐ*Ø(,Ô(;ˆGÐ$Ñ%ØÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'ØŒ=Ð$Ø"&¤-ˆG�JÑØÔÐ+Ø)-Ô)=ˆGÐ%Ñ&ØÔ!Ð-Ø+/Ô+AˆGÐ'Ñ(ØŒ;Ð"Ø $¤ˆG�HÑØÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àŒ<ð 	@ØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)àÔÐ'Ø%)Ô%5ˆG�MÑ"àˆrC   c                 óT  — |                       ¦   «         }| j        r t          j        | j        || j        | j        gS | j        r&t          j        | j        || j        | j        | j        gS | j        r t          j        | j        || j        | j        gS t          j        | j        || j        gS r  )r  r1  r   rÔ   r.  rZ  r„   r0  r  s     rA   r·   zPublish.marshalg
  s¤   € ð ×&Ò&Ñ(Ô(ˆàŒ<ð 	QÝÔ(¨$¬,¸ÀÄÈTÌ\ÐZÐZàŒ{ð QÝÔ,¨d¬l¸GÀTÄZÐQUÔQZÐ\`Ô\gÐhÐhØ”ð QÝÔ,¨d¬l¸GÀTÄZÐQUÔQZÐ[Ð[åÔ,¨d¬l¸GÀTÄZÐPÐPrC   )NNNNNNNNNNNNNNNNNNNN)$r³   rÑ   rÒ   rÓ   rÔ   r¦   r“   rª   r®   rÕ   r.  rÖ   rZ  r0  r„   r1  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  rN   r2  rQ   r5  r×   rÃ   rÆ   r½   r  r·   r<   rC   rA   r   r   ª  sV  € € € € € ð	ð 	ð €Lðð9€Iðx ØØØØØ!Ø ØØ $Ø"&ØØ!%Ø#'ØØ"&ØØØ $Ø!Øð)l(ð l(ð l(ð l(ð\+ð +ð +ðZ&ð &ð &ð ðð ñ „Xðð
 „^ðð ñ „^ðð ðð ñ „Xðð „\ðð ñ „\ðð ðð ñ „Xðð 
„[ðð ñ „[ðð ðð ñ „Xðð „]ðð ñ „]ðð ðð ñ „Xðð „^ðð ñ „^ðð ð!ð !ñ „Xð!ð Ôð"ð "ñ Ôð"ð ð ð  ñ „Xð ð Ôð!ð !ñ Ôð!ð ðð ñ „Xðð „^ðð ñ „^ðð ð$ð $ñ „Xð$ð Ôð%ð %ñ Ôð%ð ð&ð &ñ „Xð&ð Ôð'ð 'ñ Ôð'ð ðð ñ „Xðð „_ðð ñ „_ðð ð%ð %ñ „Xð%ð Ôð&ð &ñ Ôð&ð ð'ð 'ñ „Xð'ð Ôð(ð (ñ Ôð(ð ðð ñ „Xðð „]ðð ñ „]ðð ð&ð &ñ „Xð&ð Ôð'ð 'ñ Ôð'ð ðð ñ „Xðð „_ðð ñ „_ðð ðð ñ „Xðð „^ðð ñ „^ðð ð$ð $ñ „Xð$ð Ôð%ð %ñ Ôð%ð ð!ð !ñ „Xð!ð Ôð"ð "ñ Ôð"ð ðNð Nñ „\ðNðNð Nð Nð` ðJð Jñ „\ðJðX$ð $ð $ðLQð Qð Qð Qð QrC   r   c                   ó>   — e Zd ZdZdZ	 dZd„ Zed„ ¦   «         Zd„ Z	dS )r   zh
    A WAMP ``PUBLISHED`` message.

    Format: ``[PUBLISHED, PUBLISH.Request|id, Publication|id]``
    é   )r.  Úpublicationc                 ó¾   — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        dS )z×

        :param request: The request ID of the original `PUBLISH` request.
        :type request: int

        :param publication: The publication ID for the published event.
        :type publication: int
        N)rJ   r|   r   r“   r.  r#  )r‘   r.  r#  s      rA   r“   zPublished.__init__Œ
  s]   € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�KÑ Ô ¥CÒ'Ð'Ð'Ð'å×Ò˜ÑÔÐØˆŒØ&ˆÔÐÐrC   c                 óX  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          ||¦  «        }|S )rî   r   r9   z(invalid message length {0} for PUBLISHEDr7   z'request' in PUBLISHEDr8   z'publication' in PUBLISHED)r[   r   rÔ   r   rZ   r'   )r¼   r.  r#  rÐ   s       rA   r½   zPublished.parseœ
  sœ   € õ �4‰yŒy˜1Š}ˆ}  a¤­IÔ,BÒ!BÐ!BÐ!BÐ!Båˆt‰9Œ9˜Š>ˆ>ÝÐ J× QÒ QÕRUÐVZÑR[ÔR[Ñ \Ô \Ñ]Ô]Ð]å# D¨¤GÐ-EÑFÔFˆÝ'¨¨Q¬Ð1MÑNÔNˆå˜ Ñ-Ô-ˆàˆ
rC   c                 ó4   — t           j        | j        | j        gS r  )r   rÔ   r.  r#  r•   s    rA   r·   zPublished.marshal³
  s   € õ Ô&¨¬°dÔ6FÐGÐGrC   Nr  r<   rC   rA   r   r   {
  so   € € € € € ðð ð €Lðð€Ið
'ð 'ð 'ð  ðð ñ „\ðð,Hð Hð Hð Hð HrC   r   c                   óX   — e Zd ZdZdZ	 dZdZdZdZ	 	 	 dd„Z	e
d	„ ¦   «         Zd
„ Zd„ ZdS )r   zi
    A WAMP ``SUBSCRIBE`` message.

    Format: ``[SUBSCRIBE, Request|id, Options|dict, Topic|uri]``
    é    ÚexactÚprefixÚwildcard)r.  rZ  rM   Úget_retainedr5  Nc                 ó   — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�'|t          j        t          j        t          j        fv sJ ‚|�t          |¦  «        t          u sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        |pt          j        | _        || _        || _        dS )a‰  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param topic: The WAMP or application URI of the PubSub topic to subscribe to.
        :type topic: str

        :param match: The topic matching method to be used for the subscription.
        :type match: str

        :param get_retained: Whether the client wants the retained message we may have along with the subscription.
        :type get_retained: bool or None

        :param forward_for: When this Subscribe is forwarded over a router-to-router link,
            or via an intermediary router.
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   )rJ   r|   rK   r   ÚMATCH_EXACTÚMATCH_PREFIXÚMATCH_WILDCARDrŸ   rë   r   r   r“   r.  rZ  rM   r,  r5  )r‘   r.  rZ  rM   r,  r5  r8  s          rA   r“   zSubscribe.__init__Õ
  s¥  € õ0 �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�E‰{Œ{�cÒ!Ð!Ð!Ð!Øˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Øˆ} ­)Ô*?ÅÔAWÕYbÔYqÐ)rÐ rÐ rÐ rÐ rØÐ#¥t¨LÑ'9Ô'9½TÐ'AÐ'AÐ'AÐ'AØÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØˆŒ
ØÐ3�iÔ3ˆŒ
Ø(ˆÔØ&ˆÔÐÐrC   c                 ó  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          | d         d	d
¬¦  «        }t          j        }d}d}d|v r˜|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|t          j        t          j        t          j        fvr"t          d                     |¦  «        ¦  «        ‚|}d|v rO|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}	t          |	¦  «        t          k    r nmd|	vst          |	d         ¦  «        t           k    r nId|	vst          |	d         ¦  «        t          k    r n%d|	vst          |	d         ¦  «        t          k    r nŒ‰d
}|st          d¦  «        ‚t          |||||¬¦  «        }
|
S )rî   r   rD   z(invalid message length {0} for SUBSCRIBEr7   z'request' in SUBSCRIBEr8   z'options' in SUBSCRIBEr9   z'topic' in SUBSCRIBET)rm   NrM   z0invalid type {0} for 'match' option in SUBSCRIBEz1invalid value {0} for 'match' option in SUBSCRIBEr,  z7invalid type {0} for 'get_retained' option in SUBSCRIBEr5  Fr  rÜ   rÝ   zCinvalid type/value {0} for/within 'forward_for' option in SUBSCRIBE)rM   r,  r5  )r[   r   rÔ   r   rZ   r'   r(   r%   r.  rJ   rK   r/  r0  rŸ   rë   r   r|   )r¼   r.  r  rZ  rM   r,  r5  Úoption_matchrA  r8  rÐ   s              rA   r½   zSubscribe.parse  s–  € õ �4‰yŒy˜1Š}ˆ}  a¤­IÔ,BÒ!BÐ!BÐ!BÐ!Båˆt‰9Œ9˜Š>ˆ>ÝÐ J× QÒ QÕRUÐVZÑR[ÔR[Ñ \Ô \Ñ]Ô]Ð]å# D¨¤GÐ-EÑFÔFˆÝ& t¨A¤wÐ0HÑIÔIˆÝ" 4¨¤7Ð,BÐ[_Ð`Ñ`Ô`ˆåÔ%ˆØˆØˆà�gÐÐà" 7Ô+ˆLÝ�LÑ!Ô!¥SÒ(Ð(Ý#Ð$V×$]Ò$]Õ^bÐcoÑ^pÔ^pÑ$qÔ$qÑrÔrÐrà¥IÔ$9½9Ô;QÕS\ÔSkÐ#lÐlÐlÝ#Ð$W×$^Ò$^Ð_kÑ$lÔ$lÑmÔmÐmà ˆEà˜WÐ$Ð$Ø" >Ô2ˆLå�LÑ!Ô!¥TÒ)Ð)Ý#Ð$]×$dÒ$dÕeiÐjvÑewÔewÑ$xÔ$xÑyÔyÐyà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð kÝ#Ð$iÑjÔjÐjå˜ ¨eÀ,Ð\gÐhÑhÔhˆàˆ
rC   c                 óš   — i }| j         r| j         t          j        k    r
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   |S )NrM   r,  r5  )rM   r   r.  r,  r5  r  s     rA   r  zSubscribe.marshal_options@  s]   € ØˆàŒ:ð 	*˜$œ*­	Ô(=Ò=Ð=Ø#œzˆG�GÑàÔÐ(Ø&*Ô&7ˆG�NÑ#àÔÐ'Ø%)Ô%5ˆG�MÑ"àˆrC   c                 óZ   — t           j        | j        |                      ¦   «         | j        gS r  )r   rÔ   r.  r  rZ  r•   s    rA   r·   zSubscribe.marshalN  s&   € õ Ô&¨¬°d×6JÒ6JÑ6LÔ6LÈdÌjÐYÐYrC   ©NNN)r³   rÑ   rÒ   rÓ   rÔ   r.  r/  r0  r¦   r“   r×   r½   r  r·   r<   rC   rA   r   r   ½
  s¡   € € € € € ðð ð €Lðð €KØ€LØ€Nð€Ið Ø"Ø!ð*'ð *'ð *'ð *'ðX ð<ð <ñ „\ð<ð|ð ð ðZð Zð Zð Zð ZrC   r   c                   ó>   — e Zd ZdZdZ	 dZd„ Zed„ ¦   «         Zd„ Z	dS )r   zm
    A WAMP ``SUBSCRIBED`` message.

    Format: ``[SUBSCRIBED, SUBSCRIBE.Request|id, Subscription|id]``
    é!   )r.  Úsubscriptionc                 ó¾   — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        dS )zò

        :param request: The request ID of the original ``SUBSCRIBE`` request.
        :type request: int

        :param subscription: The subscription ID for the subscribed topic (or topic pattern).
        :type subscription: int
        N)rJ   r|   r   r“   r.  r8  )r‘   r.  r8  s      rA   r“   zSubscribed.__init__i  ó]   € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�LÑ!Ô!¥SÒ(Ð(Ð(Ð(å×Ò˜ÑÔÐØˆŒØ(ˆÔÐÐrC   c                 óX  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          ||¦  «        }|S )rî   r   r9   z)invalid message length {0} for SUBSCRIBEDr7   z'request' in SUBSCRIBEDr8   z'subscription' in SUBSCRIBED)r[   r   rÔ   r   rZ   r'   )r¼   r.  r8  rÐ   s       rA   r½   zSubscribed.parsey  óœ   € õ �4‰yŒy˜1Š}ˆ}  a¤­JÔ,CÒ!CÐ!CÐ!CÐ!Cåˆt‰9Œ9˜Š>ˆ>ÝÐ K× RÒ RÕSVÐW[ÑS\ÔS\Ñ ]Ô ]Ñ^Ô^Ð^å# D¨¤GÐ-FÑGÔGˆÝ(¨¨a¬Ð2PÑQÔQˆå˜ ,Ñ/Ô/ˆàˆ
rC   c                 ó4   — t           j        | j        | j        gS r  )r   rÔ   r.  r8  r•   s    rA   r·   zSubscribed.marshal�  ó   € õ Ô'¨¬°tÔ7HÐIÐIrC   Nr  r<   rC   rA   r   r   X  óo   € € € € € ðð ð €Lðð€Ið
)ð )ð )ð  ðð ñ „\ðð,Jð Jð Jð Jð JrC   r   c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r   zÆ
    A WAMP ``UNSUBSCRIBE`` message.

    Formats:

    * ``[UNSUBSCRIBE, Request|id, SUBSCRIBED.Subscription|id]``
    * ``[UNSUBSCRIBE, Request|id, SUBSCRIBED.Subscription|id, Options|dict]``
    é"   )r.  r8  r5  Nc                 óö  — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        || _        dS )a�  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param subscription: The subscription ID for the subscription to unsubscribe from.
        :type subscription: int

        :param forward_for: When this Unsubscribe is forwarded over a router-to-router link,
            or via an intermediary router.
        :type forward_for: list[dict]
        r  rÜ   NrÝ   )	rJ   r|   r   rK   r   r“   r.  r8  r5  )r‘   r.  r8  r5  r8  s        rA   r“   zUnsubscribe.__init__¯  s  € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�LÑ!Ô!¥SÒ(Ð(Ð(Ð(Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØ(ˆÔØ&ˆÔÐÐrC   c                 ó>  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}t          | ¦  «        d	k    rt          | d	         d
¦  «        }d}|rÄd|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd|vst          |d         ¦  «        t          k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d}|st          d¦  «        ‚t          |||¬¦  «        }|S )rî   r   ©r9   rD   z/invalid message length {0} for WAMP UNSUBSCRIBEr7   z'request' in UNSUBSCRIBEr8   z'subscription' in UNSUBSCRIBENr9   z'options' in UNSUBSCRIBEr5  Fr  rÜ   rÝ   TzEinvalid type/value {0} for/within 'forward_for' option in UNSUBSCRIBE©r5  )r[   r   rÔ   r   rZ   r'   r(   rJ   rë   r   r|   rK   )r¼   r.  r8  r  r5  rA  r8  rÐ   s           rA   r½   zUnsubscribe.parseÊ  s¿  € õ �4‰yŒy˜1Š}ˆ}  a¤­KÔ,DÒ!DÐ!DÐ!DÐ!Dåˆt‰9Œ9˜FÐ"Ð"ÝÐ Q× XÒ XÕY\Ð]aÑYbÔYbÑ cÔ cÑdÔdÐdå# D¨¤GÐ-GÑHÔHˆÝ(¨¨a¬Ð2QÑRÔRˆàˆÝˆt‰9Œ9�qŠ=ˆ=Ý*¨4°¬7Ð4NÑOÔOˆGàˆØð 	m�}¨Ð/Ð/Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð mÝ#Ð$kÑlÔlÐlå˜' <¸[ÐIÑIÔIˆàˆ
rC   c                 óˆ   — | j         r#d| j         i}t          j        | j        | j        |gS t          j        | j        | j        gS ©rý   r5  )r5  r   rÔ   r.  r8  r  s     rA   r·   zUnsubscribe.marshalø  sM   € ð Ôð 	Oà˜tÔ/ðˆGõ  Ô,¨d¬l¸DÔ<MÈwÐWÐWåÔ,¨d¬l¸DÔ<MÐNÐNrC   r�   r  r<   rC   rA   r   r   š  su   € € € € € ðð ð €Lðð€Ið'ð 'ð 'ð 'ð6 ð+ð +ñ „\ð+ðZOð Oð Oð Oð OrC   r   c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r   z©
    A WAMP ``UNSUBSCRIBED`` message.

    Formats:

    * ``[UNSUBSCRIBED, UNSUBSCRIBE.Request|id]``
    * ``[UNSUBSCRIBED, UNSUBSCRIBE.Request|id, Details|dict]``
    é#   )r.  r8  r  Nc                 ó4  — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|dk    r|�|dk    r|dk    sJ ‚t                               | ¦  «         || _        || _        || _        dS )aí  

        :param request: The request ID of the original ``UNSUBSCRIBE`` request or
            ``0`` is router triggered unsubscribe ("router revocation signaling").
        :type request: int

        :param subscription: If unsubscribe was actively triggered by router, the ID
            of the subscription revoked.
        :type subscription: int or None

        :param reason: The reason (an URI) for an active (router initiated) revocation.
        :type reason: str or None.
        Nr   )rJ   r|   rK   r   r“   r.  r8  r  )r‘   r.  r8  r  s       rA   r“   zUnsubscribed.__init__  s©   € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#ØÐ#¥t¨LÑ'9Ô'9½SÒ'@Ð'@Ð'@Ð'@Øˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4Ø˜1’� Ð!5¸7Àaº<¸<ÈLÐ\]ÒL]ÐL]ÐL]ÐL]å×Ò˜ÑÔÐØˆŒØ(ˆÔØˆŒˆˆrC   c                 ób  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }d}d}t          | ¦  «        dk    r…t          | d         d¦  «        }d	|v rQ|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rt          |d         d¦  «        }t          |||¦  «        }|S )rî   r   ©r8   r9   z+invalid message length {0} for UNSUBSCRIBEDr7   z'request' in UNSUBSCRIBEDNr8   z'details' in UNSUBSCRIBEDr8  z:invalid type {0} for 'subscription' detail in UNSUBSCRIBEDr  z'reason' in UNSUBSCRIBED)
r[   r   rÔ   r   rZ   r'   r(   rJ   r|   r%   )r¼   r.  r8  r  rò   Údetails_subscriptionrÐ   s          rA   r½   zUnsubscribed.parse5  óJ  € õ �4‰yŒy˜1Š}ˆ}  a¤­LÔ,EÒ!EÐ!EÐ!EÐ!Eåˆt‰9Œ9˜FÐ"Ð"ÝÐ M× TÒ TÕUXÐY]ÑU^ÔU^Ñ _Ô _Ñ`Ô`Ð`å# D¨¤GÐ-HÑIÔIˆàˆØˆåˆt‰9Œ9�qŠ=ˆ=å*¨4°¬7Ð4OÑPÔPˆGà Ð(Ð(Ø'.¨~Ô'>Ð$ÝÐ,Ñ-Ô-µÒ4Ð4Ý'Ð(d×(kÒ(kÕlpð  rFñ  mGô  mGñ  )Hô  )Hñ  Iô  Ið  IØ3�à˜7Ð"Ð"Ý+¨G°HÔ,=Ð?YÑZÔZ�å˜7 L°&Ñ9Ô9ˆàˆ
rC   c                 ó´   — | j         €| j        �8i }| j         �
| j         |d<   | j        �
| j        |d<   t          j        | j        |gS t          j        | j        gS )rý   Nr  r8  )r  r8  r   rÔ   r.  r  s     rA   r·   zUnsubscribed.marshal[  óe   € ð Œ;Ð" dÔ&7Ð&CØˆGØŒ{Ð&Ø$(¤K�˜Ñ!ØÔ Ð,Ø*.Ô*;�˜Ñ'Ý Ô-¨t¬|¸WÐEÐEå Ô-¨t¬|Ð<Ð<rC   ©NNr  r<   rC   rA   r   r     sp   € € € € € ðð ð €Lðð€Iðð ð ð ð0 ð#ð #ñ „\ð#ðJ=ð =ð =ð =ð =rC   r   c                   óÒ  — e Zd ZdZdZ	 dZ	 	 	 	 	 d,d„Zd„ Zd„ Ze	d„ ¦   «         Z
e
j        d	„ ¦   «         Z
e	d
„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d„ ¦   «         Zej        d„ ¦   «         Ze	d „ ¦   «         Zej        d!„ ¦   «         Ze	d"„ ¦   «         Zej        d#„ ¦   «         Ze	d$„ ¦   «         Zej        d%„ ¦   «         Ze	d&„ ¦   «         Zej        d'„ ¦   «         Zed(„ ¦   «         Zd)„ Zed*„ ¦   «         Zd+„ ZdS )-r   aì  
    A WAMP ``EVENT`` message.

    Formats:

    * ``[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict]``
    * ``[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list]``
    * ``[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentsKw|dict]``
    * ``[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Payload|binary]``
    é$   )Ú_subscriptionÚ_publicationrG  rH  rI  rJ  rK  rL  Ú
_publisherÚ_publisher_authidÚ_publisher_authrolerF  Ú	_retainedrV  Ú_x_acknowledged_deliveryrW  Nc                 óô  — |�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          t          fv sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t
          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|	�t          |	¦  «        t          k    sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|€|€|�|�|€J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | |¬¦  «         || _        || _        || _        t          |¦  «        | _        || _        || _        || _        || _        |	| _        |
| _        || _        || _        || _        || _        || _        || _        dS )a
  

        :param subscription: The subscription ID this event is dispatched under.
        :type subscription: int

        :param publication: The publication ID of the dispatched event.
        :type publication: int

        :param args: Positional values for application-defined exception.
           Must be serializable using any serializers in use.
        :type args: list or tuple or None

        :param kwargs: Keyword values for application-defined exception.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param publisher: The WAMP session ID of the publisher. Only filled if publisher is disclosed.
        :type publisher: None or int

        :param publisher_authid: The WAMP authid of the publisher. Only filled if publisher is disclosed.
        :type publisher_authid: None or unicode

        :param publisher_authrole: The WAMP authrole of the publisher. Only filled if publisher is disclosed.
        :type publisher_authrole: None or unicode

        :param topic: For pattern-based subscriptions, the event MUST contain the actual topic published to.
        :type topic: str or None

        :param retained: Whether the message was retained by the broker on the topic, rather than just published.
        :type retained: bool or None

        :param transaction_hash: An application provided transaction hash for the originating call, which may
            be used in the router to throttle or deduplicate the calls on the procedure. See the discussion
            `here <https://github.com/wamp-proto/wamp-proto/issues/391#issuecomment-998577967>`_.
        :type transaction_hash: str

        :param x_acknowledged_delivery: Whether this Event should be acknowledged.
        :type x_acknowledged_delivery: bool or None

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None

        :param forward_for: When this Event is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   rY  )rJ   r|   rë   r7  r   rV   rK   rŸ   r)   r*   r   r“   rT  rU  rG  r…   rH  rI  rV  rW  rX  rF  rY  rV  rZ  rJ  rL  rK  rW  )r‘   r8  r#  r0  r„   r1  rå   Úpublisher_authidÚpublisher_authrolerZ  Úretainedrd  Úx_acknowledged_deliveryrN   r2  rQ   r5  r’   r8  s                      rA   r“   zEvent.__init__°  sd  € ðv Ð#¥t¨LÑ'9Ô'9½SÒ'@Ð'@Ð'@Ð'@ØÐ"¥d¨;Ñ&7Ô&7½3Ò&>Ð&>Ð&>Ð&>Øˆ|�t D™zœz­dµE¨]Ð:Ð:Ð:Ð:Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNØÐ ¥D¨¡O¤OµsÒ$:Ð$:Ð$:Ð$:ØÐ'­4Ð0@Ñ+AÔ+AÅSÒ+HÐ+HÐ+HÐ+HØ!Ð)­TÐ2DÑ-EÔ-EÍÒ-LÐ-LÐ-LÐ-LØˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2ØÐ¥4¨¡>¤>µTÒ#9Ð#9Ð#9Ð#9ØÐ'­4Ð0@Ñ+AÔ+AÅSÒ+HÐ+HÐ+HÐ+HØ&Ð.µ$Ð7NÑ2OÔ2OÕSWÒ2WÐ2WÐ2WÐ2WØÐÕ#4°XÑ#>Ô#>ÐÐÐØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%àÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜¨ÐÑ1Ô1Ð1Ø)ˆÔØ'ˆÔØˆŒ
Ý'¨Ñ/Ô/ˆŒØˆŒØ#ˆŒØ!1ˆÔØ#5ˆÔ ØˆŒØ!ˆŒØ!1ˆÔØ(?ˆÔ%Ø!ˆŒØˆŒØ-ˆÔØ'ˆÔÐÐrC   c                 ó®  — t          || j        ¦  «        sdS t                               | |¦  «        sdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j	        | j	        k    rdS |j
        | j
        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS dS rg  )r�   r¥   r   rª   r8  r#  r0  r„   r1  rå   r\  r]  rZ  r^  rd  r_  rN   r2  rQ   r5  r­   s     rA   rª   zEvent.__eq__  s‹  € Ý˜% ¤Ñ0Ô0ð 	Ø�5Ý�~Š~˜d EÑ*Ô*ð 	Ø�5ØÔ Ô!2Ò2Ð2Ø�5ØÔ Ô 0Ò0Ð0Ø�5ØŒ:˜œÒ"Ð"Ø�5ØŒ<˜4œ;Ò&Ð&Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØŒ?˜dœnÒ,Ð,Ø�5ØÔ! TÔ%:Ò:Ð:Ø�5ØÔ# tÔ'>Ò>Ð>Ø�5ØŒ;˜$œ*Ò$Ð$Ø�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØÔ! TÔ%:Ò:Ð:Ø�5ØÔ(¨DÔ,HÒHÐHØ�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØÔ 4Ô#6Ò6Ð6Ø�5ØÔ Ô 0Ò0Ð0Ø�5ØˆtrC   c                 ó.   — |                       |¦  «         S r�   r¬   r­   s     rA   r®   zEvent.__ne__>  ri  rC   c                 óh   — | j         €%| j        r| j                             ¦   «         | _         | j         S r�   )rT  rˆ   ÚSubscriptionr•   s    rA   r8  zEvent.subscriptionA  s1   € àÔÐ%¨$¬.Ð%Ø!%¤×!<Ò!<Ñ!>Ô!>ˆDÔØÔ!Ð!rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   r|   rT  r˜   s     rA   r8  zEvent.subscriptionG  s+   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Ø"ˆÔÐÐrC   c                 óh   — | j         €%| j        r| j                             ¦   «         | _         | j         S r�   )rU  rˆ   ÚPublicationr•   s    rA   r#  zEvent.publicationL  s1   € àÔÐ$¨¬Ð$Ø $¤× :Ò :Ñ <Ô <ˆDÔØÔ Ð rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   r|   rU  r˜   s     rA   r#  zEvent.publicationR  s+   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Ø!ˆÔÐÐrC   c                 óØ   — | j         €]| j        rV| j                             ¦   «         r=t          j        t          | j                             ¦   «         ¦  «        ¦  «        | _         | j         S r�   rx  r•   s    rA   r0  z
Event.argsW  r}  rC   c                 óV   — |�t          |¦  «        t          t          fv sJ ‚|| _        d S r�   r  r˜   s     rA   r0  z
Event.args^  r€  rC   c                 óØ   — | j         €]| j        rV| j                             ¦   «         r=t          j        t          | j                             ¦   «         ¦  «        ¦  «        | _         | j         S r�   r‚  r•   s    rA   r„   zEvent.kwargsc  r…  rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   r‡  r˜   s     rA   r„   zEvent.kwargsj  rˆ  rC   c                 óš   — | j         €>| j        r7| j                             ¦   «         r| j                             ¦   «         | _         | j         S r�   rŠ  r•   s    rA   r1  zEvent.payloado  r�  rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   r�  r˜   s     rA   r1  zEvent.payloadv  r�  rC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   )rV  rˆ   Ú	Publisher)r‘   rå   s     rA   rå   zEvent.publisher{  s;   € àŒ?Ð" t¤~Ð"Øœ×0Ò0Ñ2Ô2ˆIØð ,Ø"+�”ØŒÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   r|   rV  r˜   s     rA   rå   zEvent.publisherƒ  s(   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2ØˆŒˆˆrC   c                 ó–   — | j         €<| j        r5| j                             ¦   «         }|r|                     d¦  «        | _         | j         S rn  )rW  rˆ   ÚPublisherAuthidrY   rr  s     rA   r\  zEvent.publisher_authidˆ  rº  rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rK   rW  r˜   s     rA   r\  zEvent.publisher_authid�  r½  rC   c                 ó–   — | j         €<| j        r5| j                             ¦   «         }|r|                     d¦  «        | _         | j         S rn  )rX  rˆ   ÚPublisherAuthrolerY   rr  s     rA   r]  zEvent.publisher_authrole•  sJ   € àÔ#Ð+°´Ð+Ø”×0Ò0Ñ2Ô2ˆAØð <Ø+,¯8ª8°FÑ+;Ô+;�Ô(ØÔ'Ð'rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rK   rX  r˜   s     rA   r]  zEvent.publisher_authrole�  s+   € àˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Ø#(ˆÔ Ð Ð rC   c                 ó–   — | j         €<| j        r5| j                             ¦   «         }|r|                     d¦  «        | _         | j         S rn  rp  rr  s     rA   rZ  zEvent.topic¢  rs  rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   ru  r˜   s     rA   rZ  zEvent.topicª  rv  rC   c                 óh   — | j         €%| j        r| j                             ¦   «         | _         | j         S r�   )rY  rˆ   ÚRetainedr•   s    rA   r^  zEvent.retained¯  s.   € àŒ>Ð! d¤nÐ!Ø!œ^×4Ò4Ñ6Ô6ˆDŒNØŒ~ÐrC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rŸ   rY  r˜   s     rA   r^  zEvent.retainedµ  s(   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3ØˆŒˆˆrC   c                 ó–   — | j         €<| j        r5| j                             ¦   «         }|r|                     d¦  «        | _         | j         S rn  r¸  rr  s     rA   rd  zEvent.transaction_hashº  rº  rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   r¼  r˜   s     rA   rd  zEvent.transaction_hashÂ  r½  rC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   )rZ  rˆ   r’  )r‘   r_  s     rA   r_  zEvent.x_acknowledged_deliveryÇ  s@   € àÔ(Ð0°T´^Ð0Ø&*¤n×&@Ò&@Ñ&BÔ&BÐ#Ø&ð HØ0G�Ô-ØÔ,Ð,rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   )rJ   rŸ   rZ  r˜   s     rA   r_  zEvent.x_acknowledged_deliveryÏ  s+   € àˆ}¥ U¡¤­tÒ 3Ð 3Ð 3Ð 3Ø(-ˆÔ%Ð%Ð%rC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   r¿  rÁ  s     rA   rN   zEvent.enc_algoÔ  rÂ  rC   c                 óH   — |�|t           t          t          fv sJ ‚|| _        d S r�   rÄ  r˜   s     rA   rN   zEvent.enc_algoÜ  rÈ  rC   c                 óš   — | j         €>| j        r7| j                             ¦   «         r| j                             ¦   «         | _         | j         S r�   rÊ  r•   s    rA   r2  zEvent.enc_keyá  rÍ  rC   c                 óL   — |�t          |¦  «        t          k    sJ ‚|| _        d S r�   rÏ  r˜   s     rA   r2  zEvent.enc_keyè  r�  rC   c                 óp   — | j         €)| j        r"| j                             ¦   «         }|r|| _         | j         S r�   rÑ  rÓ  s     rA   rQ   zEvent.enc_serializerí  rÔ  rC   c                 óT   — |�|t           t          t          t          fv sJ ‚|| _        d S r�   rÖ  r˜   s     rA   rQ   zEvent.enc_serializerõ  rÛ  rC   c                 ó   — | j         S r�   rÝ  r•   s    rA   r5  zEvent.forward_forú  rÞ  rC   c                 ó   — || _         d S r�   rÝ  r˜   s     rA   r5  zEvent.forward_forÿ  rà  rC   c                 ó^   — t          t          j                              | d¦  «        ¬¦  «        S râ  )r   r   ÚGetRootAsEventrÁ   s    rA   rÃ   z
Event.cast  s&   € å�kÔ/×>Ò>¸sÀAÑFÔFÐGÑGÔGÐGrC   c                 óL  — | j         }|r'|                     t          j        |¦  «        ¦  «        }| j        }|r'|                     t          j        |¦  «        ¦  «        }| j        }|r|                     |¦  «        }| j        }|r|                     |¦  «        }| j        }|r|                     |¦  «        }| j	        }|r|                     |¦  «        }| j
        }|r|                     |¦  «        }| j        }	|	r|                     |	¦  «        }	t          j                             |¦  «         | j        r%t          j                             || j        ¦  «         | j        r%t          j                             || j        ¦  «         |r t          j                             ||¦  «         |r t          j                             ||¦  «         |r t          j                             ||¦  «         | j        r%t          j                             || j        ¦  «         |r t          j                             ||¦  «         |r t          j                             ||¦  «         |r t          j                             ||¦  «         | j        �%t          j                             || j        ¦  «         |� t          j                             ||¦  «         | j        �%t          j                             || j        ¦  «         | j         r%t          j         !                    || j         ¦  «         |	r t          j         "                    ||	¦  «         | j#        r%t          j         $                    || j#        ¦  «         t          j         %                    |¦  «        }
t          j&         '                    |¦  «         t          j&         (                    |t          j)        j*        ¦  «         t          j&         +                    ||
¦  «         t          j&         ,                    |¦  «        }|S r�   )-r0  rå  rz  ræ  r„   r1  r\  rç  r]  rZ  rd  r2  r   ÚEventGenÚ
EventStartr8  ÚEventAddSubscriptionr#  ÚEventAddPublicationÚEventAddArgsÚEventAddKwargsÚEventAddPayloadrå   ÚEventAddPublisherÚEventAddPublisherAuthidÚEventAddPublisherAuthroleÚEventAddTopicr^  ÚEventAddRetainedÚEventAddTransactionHashr_  ÚEventAddAcknowledgerN   ÚEventAddEncAlgoÚEventAddEncKeyrQ   ÚEventAddEncSerializerÚEventEndr   r  r  r  ÚEVENTr	  r
  )r‘   rÅ   r0  r„   r1  r\  r]  rZ  rd  r2  r  r  s               rA   rÆ   zEvent.build  sê  € àŒyˆØð 	?Ø×+Ò+­E¬K¸Ñ,=Ô,=Ñ>Ô>ˆDà”ˆØð 	CØ×-Ò-­e¬k¸&Ñ.AÔ.AÑBÔBˆFà”,ˆØð 	8Ø×.Ò.¨wÑ7Ô7ˆGàÔ0ÐØð 	FØ&×3Ò3Ð4DÑEÔEÐà!Ô4ÐØð 	JØ!(×!5Ò!5Ð6HÑ!IÔ!IÐà”
ˆØð 	0Ø×(Ò(¨Ñ/Ô/ˆEàÔ0ÐØð 	FØ&×3Ò3Ð4DÑEÔEÐà”,ˆØð 	8Ø×.Ò.¨wÑ7Ô7ˆGåÔ×'Ò'¨Ñ0Ô0Ð0àÔð 	RÝÔ ×5Ò5°g¸tÔ?PÑQÔQÐQØÔð 	PÝÔ ×4Ò4°W¸dÔ>NÑOÔOÐOàð 	=ÝÔ ×-Ò-¨g°tÑ<Ô<Ð<Øð 	AÝÔ ×/Ò/°¸Ñ@Ô@Ð@Øð 	CÝÔ ×0Ò0°¸'ÑBÔBÐBàŒ>ð 	LÝÔ ×2Ò2°7¸D¼NÑKÔKÐKØð 	TÝÔ ×8Ò8¸ÐBRÑSÔSÐSØð 	XÝÔ ×:Ò:¸7ÐDVÑWÔWÐWàð 	?ÝÔ ×.Ò.¨w¸Ñ>Ô>Ð>ØŒ=Ð$ÝÔ ×1Ò1°'¸4¼=ÑIÔIÐIØÐ'ÝÔ ×8Ò8¸ÐBRÑSÔSÐSØÔ'Ð3ÝÔ ×4Ò4°W¸dÔ>ZÑ[Ô[Ð[àŒ=ð 	IÝÔ ×0Ò0°¸$¼-ÑHÔHÐHØð 	BÝÔ ×/Ò/°¸ÑAÔAÐAØÔð 	UÝÔ ×6Ò6°wÀÔ@SÑTÔTÐTõ Ô"×+Ò+¨GÑ4Ô4ˆåÔ×(Ò(¨Ñ1Ô1Ð1ÝÔ×-Ò-¨gµ{Ô7NÔ7TÑUÔUÐUÝÔ×)Ò)¨'°3Ñ7Ô7Ð7ÝÔ'×2Ò2°7Ñ;Ô;ˆ	àÐrC   c                 óà  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          | d         d	¦  «        }d
}d
}d
}d
}d
}d
}	t          | ¦  «        dk    �rt          | d         ¦  «        t          k    rú| d         }| 	                    dd
¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚| 	                    dd
¦  «        }|rGt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚| 	                    dd
¦  «        }	|	r1t          |	¦  «        s"t          d                     |	¦  «        ¦  «        ‚nÆt          | ¦  «        dk    rQ| d         }|�Gt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        dk    rO| d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d
}
d
}d
}d
}d
}d
}d
}d
}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}
d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rO|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d|v rQ|d         }t          |¦  «        t          k    r/t          d                      t          |¦  «        ¦  «        ¦  «        ‚|}d!|v rO|d!         }t          |¦  «        t           k    r/t          d"                     t          |¦  «        ¦  «        ¦  «        ‚d#|v rÀ|d#         }d$}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd%|vst          |d%         ¦  «        t          k    r nId&|vst          |d&         ¦  «        t          k    r n%d'|vst          |d'         ¦  «        t          k    r nŒ‰d(}|st          d)¦  «        ‚t          ||||||
|||||||||	|¬*¦  «        }|S )+rî   r   r  z$invalid message length {0} for EVENTr7   z'subscription' in EVENTr8   z'publication' in EVENTr9   z'details' in EVENTNrE   rD   rN   r;  r2  r<  rQ   r=  z$invalid type {0} for 'args' in EVENTz&invalid type {0} for 'kwargs' in EVENTrå   z0invalid type {0} for 'publisher' detail in EVENTr\  z7invalid type {0} for 'publisher_authid' detail in EVENTr]  z9invalid type {0} for 'publisher_authrole' detail in EVENTrZ  z,invalid type {0} for 'topic' detail in EVENTr^  z/invalid type {0} for 'retained' detail in EVENTrd  ú7invalid type {0} for 'transaction_hash' detail in EVENTr_  z>invalid type {0} for 'x_acknowledged_delivery' detail in EVENTr5  Fr  rÜ   rÝ   Tz?invalid type/value {0} for/within 'forward_for' option in EVENT)r0  r„   r1  rå   r\  r]  rZ  r^  rd  r_  rN   r2  rQ   r5  )r[   r   rÔ   r   rZ   r'   r(   rJ   rV   r  r)   rK   r*   rë   r   r|   rŸ   )r¼   r8  r#  rò   r0  r„   r1  rN   r2  rQ   rå   r\  r]  rZ  r^  rd  r5  r_  Údetail_publisherÚdetail_publisher_authidÚdetail_publisher_authroleÚdetail_topicÚdetail_transaction_hashrA  r8  rÐ   s                             rA   r½   zEvent.parseZ  s‘  € õ �4‰yŒy˜1Š}ˆ}  a¤­EÔ,>Ò!>Ð!>Ð!>Ð!>åˆt‰9Œ9˜IÐ%Ð%ÝÐ F× MÒ MÍcÐRVÉiÌiÑ XÔ XÑYÔYÐYå(¨¨a¬Ð2KÑLÔLˆÝ'¨¨Q¬Ð1IÑJÔJˆÝ& t¨A¤wÐ0DÑEÔEˆàˆØˆØˆØˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœm­uÒ4Ð4à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð iÕ 1°(Ñ ;Ô ;ð iÝ#Ð$V×$]Ò$]Ð^fÑ$gÔ$gÑhÔhÐhà—k’k )¨TÑ2Ô2ˆGØð l�4 ™=œ=­CÒ/Ð/Ý#Ð$T×$[Ò$[Õ\`ÐahÑ\iÔ\iÑ$jÔ$jÑkÔkÐkà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð uÕ&=¸nÑ&MÔ&Mð uÝ#Ð$\×$cÒ$cÐdrÑ$sÔ$sÑtÔtÐtøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�ØÐ#­¨T©
¬
µdÒ(:Ð(:Ý'Ð(N×(UÒ(UÕVZÐ[_ÑV`ÔV`Ñ(aÔ(aÑbÔbÐbÝ�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<¥4Ò'Ð'Ý'Ð(P×(WÒ(WÕX\Ð]cÑXdÔXdÑ(eÔ(eÑfÔfÐfàˆ	ØÐØ!ÐØˆØˆØÐØˆØ"&Ðà˜'Ð!Ð!à& {Ô3ÐÝÐ$Ñ%Ô%­Ò,Ð,Ý#Ð$V×$]Ò$]Õ^bÐcsÑ^tÔ^tÑ$uÔ$uÑvÔvÐvà(ˆIà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ3Ð3Ý#Ð$]×$dÒ$dÕeið  kBñ  fCô  fCñ  %Dô  %Dñ  Eô  Eð  Eà6Ðà 7Ð*Ð*à(/Ð0DÔ(EÐ%ÝÐ-Ñ.Ô.µ#Ò5Ð5Ý#Ð$_×$fÒ$fÕgkð  mFñ  hGô  hGñ  %Hô  %Hñ  Iô  Ið  Ià!:Ðà�gÐÐà" 7Ô+ˆLÝ�LÑ!Ô!¥SÒ(Ð(Ý#Ð$R×$YÒ$YÕZ^Ð_kÑZlÔZlÑ$mÔ$mÑnÔnÐnà ˆEà˜Ð Ð Ø˜zÔ*ˆHÝ�H‰~Œ~¥Ò%Ð%Ý#Ð$U×$\Ò$\Õ]aÐbjÑ]kÔ]kÑ$lÔ$lÑmÔmÐmà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ3Ð3Ý#Ð$]×$dÒ$dÕeið  kBñ  fCô  fCñ  %Dô  %Dñ  Eô  Eð  Eà6Ðà$¨Ð/Ð/Ø&-Ð.GÔ&HÐ#ÝÐ+Ñ,Ô,µÒ4Ð4Ý#Ð$d×$kÒ$kÕlpð  rIñ  mJô  mJñ  %Kô  %Kñ  Lô  Lð  Là˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð gÝ#Ð$eÑfÔfÐfå�LØØØ!Ø#Ø'Ø%5Ø'9ØØ%Ø%5Ø,CØ%Ø#Ø#1Ø +ð-ñ -ô -ˆð" ˆ
rC   c                 ó¦  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d	<   | j        rS| j	        �
| j	        |d
<   | j
        �
| j
        |d<   | j        �
| j        |d<   t          j        | j        | j        || j        gS | j        r&t          j        | j        | j        || j        | j        gS | j        r t          j        | j        | j        || j        gS t          j        | j        | j        |gS )rý   Nrå   r\  r]  rZ  r^  rd  r_  r5  rN   r2  rQ   )rå   r\  r]  rZ  r^  rd  r_  r5  r1  rN   r2  rQ   r   rÔ   r8  r#  r„   r0  r  s     rA   r·   zEvent.marshalï  s’  € ð ˆàŒ>Ð%Ø#'¤>ˆG�KÑ àÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àÔ"Ð.Ø,0Ô,CˆGÐ(Ñ)àŒ:Ð!Ø#œzˆG�GÑàŒ=Ð$Ø"&¤-ˆG�JÑàÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àÔ'Ð3Ø15Ô1MˆGÐ-Ñ.àÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ<ð 	ZØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)ÝÔ&¨Ô(9¸4Ô;KÈWÐVZÔVbÐcÐcàŒ{ð ZÝÔ*¨DÔ,=¸tÔ?OÐQXÐZ^ÔZcÐeiÔepÐqÐqØ”ð ZÝÔ*¨DÔ,=¸tÔ?OÐQXÐZ^ÔZcÐdÐdåÔ*¨DÔ,=¸tÔ?OÐQXÐYÐYrC   )NNNNNNNNNNNNNNNNN) r³   rÑ   rÒ   rÓ   rÔ   r¦   r“   rª   r®   rÕ   r8  rÖ   r#  r0  r„   r1  rå   r\  r]  rZ  r^  rd  r_  rN   r2  rQ   r5  r×   rÃ   rÆ   r½   r·   r<   rC   rA   r   r   m  ss  € € € € € ð	ð 	ð €Lðð0€Iðd ]aØW[ØOSØOSØð	e(ð e(ð e(ð e(ðN%ð %ð %ðN&ð &ð &ð ð"ð "ñ „Xð"ð
 Ôð#ð #ñ Ôð#ð ð!ð !ñ „Xð!ð
 Ôð"ð "ñ Ôð"ð ðð ñ „Xðð 
„[ðð ñ „[ðð ðð ñ „Xðð „]ðð ñ „]ðð ðð ñ „Xðð „^ðð ñ „^ðð ðð ñ „Xðð Ôð ð  ñ Ôð ð ð&ð &ñ „Xð&ð Ôð'ð 'ñ Ôð'ð ð(ð (ñ „Xð(ð Ôð)ð )ñ Ôð)ð ðð ñ „Xðð „\ðð ñ „\ðð ðð ñ „Xðð
 „_ðð ñ „_ðð ð&ð &ñ „Xð&ð Ôð'ð 'ñ Ôð'ð ð-ð -ñ „Xð-ð Ô#ð.ð .ñ $Ô#ð.ð ðð ñ „Xðð „_ðð ñ „_ðð ðð ñ „Xðð „^ðð ñ „^ðð ð$ð $ñ „Xð$ð Ôð%ð %ñ Ôð%ð ð!ð !ñ „Xð!ð Ôð"ð "ñ Ôð"ð ðHð Hñ „\ðHðPð Pð Pðd ðRð Rñ „\ðRðh/Zð /Zð /Zð /Zð /ZrC   r   c                   ó>   — e Zd ZdZdZ	 dZd„ Zed„ ¦   «         Zd„ Z	dS )ÚEventReceivedzd
    A WAMP ``EVENT_RECEIVED`` message.

    Format: ``[EVENT_RECEIVED, EVENT.Publication|id]``
    iQ  )r#  c                 ó|   — t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        dS )zl

        :param publication: The publication ID for the sent event.
        :type publication: int
        N)rJ   r|   r   r“   r#  )r‘   r#  s     rA   r“   zEventReceived.__init__2  s?   € õ �KÑ Ô ¥CÒ'Ð'Ð'Ð'å×Ò˜ÑÔÐØ&ˆÔÐÐrC   c                 ó*  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          |¦  «        }|S )rî   r   r8   z-invalid message length {0} for EVENT_RECEIVEDr7   z'publication' in EVENT_RECEIVED)r[   r§  rÔ   r   rZ   r'   )r¼   r#  rÐ   s      rA   r½   zEventReceived.parse=  s†   € õ �4‰yŒy˜1Š}ˆ}  a¤­MÔ,FÒ!FÐ!FÐ!FÐ!Fåˆt‰9Œ9˜Š>ˆ>ÝÐ O× VÒ VÕWZÐ[_ÑW`ÔW`Ñ aÔ aÑbÔbÐbå'¨¨Q¬Ð1RÑSÔSˆå˜KÑ(Ô(ˆàˆ
rC   c                 ó(   — t           j        | j        gS r  )r§  rÔ   r#  r•   s    rA   r·   zEventReceived.marshalS  s   € õ Ô*¨DÔ,<Ð=Ð=rC   Nr  r<   rC   rA   r§  r§  !  sj   € € € € € ðð ð €Lðð€Ið	'ð 	'ð 	'ð ðð ñ „\ðð*>ð >ð >ð >ð >rC   r§  c                   ó`   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 	 	 	 d	d„Zed„ ¦   «         Zd„ Z	d„ Z
dS )
r   a[  
    A WAMP ``CALL`` message.

    Formats:

    * ``[CALL, Request|id, Options|dict, Procedure|uri]``
    * ``[CALL, Request|id, Options|dict, Procedure|uri, Arguments|list]``
    * ``[CALL, Request|id, Options|dict, Procedure|uri, Arguments|list, ArgumentsKw|dict]``
    * ``[CALL, Request|id, Options|dict, Procedure|uri, Payload|binary]``
    é0   )r.  Ú	procedurer0  r„   r1  ÚtimeoutÚreceive_progressrd  rN   r2  rQ   ræ   Úcaller_authidÚcaller_authroler5  Nc                 ó¢  — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          t          fv sJ ‚|�t          |¦  «        t
          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|	�t          |	¦  «        sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|	€|
€|�|�|	€J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t
          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        || _        t          |¦  «        | _        || _        || _        || _        || _        |	| _        |
| _        || _        || _        || _        || _        || _        dS )a‡	  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param procedure: The WAMP or application URI of the procedure which should be called.
        :type procedure: str

        :param args: Positional values for application-defined call arguments.
           Must be serializable using any serializers in use.
        :type args: list or tuple or None

        :param kwargs: Keyword values for application-defined call arguments.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param timeout: If present, let the callee automatically cancel
           the call after this ms.
        :type timeout: int or None

        :param receive_progress: If ``True``, indicates that the caller wants to receive
           progressive call results.
        :type receive_progress: bool or None

        :param transaction_hash: An application provided transaction hash for the originating call, which may
            be used in the router to throttle or deduplicate the calls on the procedure. See the discussion
            `here <https://github.com/wamp-proto/wamp-proto/issues/391#issuecomment-998577967>`_.
        :type transaction_hash: str

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None

        :param caller: The WAMP session ID of the caller. Only filled if caller is disclosed.
        :type caller: None or int

        :param caller_authid: The WAMP authid of the caller. Only filled if caller is disclosed.
        :type caller_authid: None or unicode

        :param caller_authrole: The WAMP authrole of the caller. Only filled if caller is disclosed.
        :type caller_authrole: None or unicode

        :param forward_for: When this Publish is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   )rJ   r|   rK   rë   r7  r   rV   rŸ   r)   r*   r   r“   r.  r­  r0  r…   r„   r1  r®  r¯  rd  rN   r2  rQ   ræ   r°  r±  r5  )r‘   r.  r­  r0  r„   r1  r®  r¯  rd  rN   r2  rQ   ræ   r°  r±  r5  r8  s                    rA   r“   zCall.__init__€  s.  € õJ �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�I‰Œ¥#Ò%Ð%Ð%Ð%Øˆ|�t D™zœz­dµE¨]Ð:Ð:Ð:Ð:Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ'­4Ð0@Ñ+AÔ+AÅTÒ+IÐ+IÐ+IÐ+IØÐ'­4Ð0@Ñ+AÔ+AÅSÒ+HÐ+HÐ+HÐ+Hð ÐÕ#4°XÑ#>Ô#>ÐÐÐØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%ØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBàˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ$­¨]Ñ(;Ô(;½sÒ(BÐ(BÐ(BÐ(BØÐ&­$¨Ñ*?Ô*?Å3Ò*FÐ*FÐ*FÐ*FàÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØ"ˆŒØˆŒ	Ý& vÑ.Ô.ˆŒØˆŒØˆŒØ 0ˆÔØ 0ˆÔð !ˆŒØˆŒØ,ˆÔð ˆŒØ*ˆÔØ.ˆÔØ&ˆÔÐÐrC   c                 ó’  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          | d         d	¦  «        }d
}d
}d
}d
}d
}d
}	t          | ¦  «        dk    �rt          | d         ¦  «        t          t          fv rú| d         }|                     dd
¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚|                     dd
¦  «        }|rGt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|                     dd
¦  «        }	|	r1t          |	¦  «        s"t          d                     |	¦  «        ¦  «        ‚nÆt          | ¦  «        dk    rQ| d         }|�Gt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        dk    rO| d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d
}
d
}d
}d
}d
}d
}d
}d|v ry|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|dk     r"t          d                     |¦  «        ¦  «        ‚|}
d|v rQ|d         }t          |¦  «        t"          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d |v rQ|d          }t          |¦  «        t          k    r/t          d!                     t          |¦  «        ¦  «        ¦  «        ‚|}d"|v rÀ|d"         }d#}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd$|vst          |d$         ¦  «        t           k    r nId%|vst          |d%         ¦  «        t          k    r n%d&|vst          |d&         ¦  «        t          k    r nŒ‰d'}|st          d(¦  «        ‚t          ||||||
|||||	||||¬)¦  «        }|S )*rî   r   r  z#invalid message length {0} for CALLr7   z'request' in CALLr8   z'options' in CALLr9   z'procedure' in CALLNrE   rD   rN   z/invalid value {0} for 'enc_algo' detail in CALLr2  z-invalid type {0} for 'enc_key' detail in CALLrQ   z5invalid value {0} for 'enc_serializer' detail in CALLz#invalid type {0} for 'args' in CALLz%invalid type {0} for 'kwargs' in CALLr®  z-invalid type {0} for 'timeout' option in CALLz.invalid value {0} for 'timeout' option in CALLr¯  z6invalid type {0} for 'receive_progress' option in CALLrd  z6invalid type {0} for 'transaction_hash' detail in CALLræ   z,invalid type {0} for 'caller' detail in CALLr°  z3invalid type {0} for 'caller_authid' detail in CALLr±  z5invalid type {0} for 'caller_authrole' detail in CALLr5  Fr  rÜ   rÝ   Tz>invalid type/value {0} for/within 'forward_for' option in CALL)r0  r„   r1  r®  r¯  rd  rN   r2  rQ   ræ   r°  r±  r5  )r[   r   rÔ   r   rZ   r'   r(   r%   rJ   rK   rV   r  r)   r*   rë   r   r|   rŸ   )r¼   r.  r  r­  r0  r„   r1  rN   r2  rQ   r®  r¯  rd  ræ   r°  r±  r5  Úoption_timeoutÚoption_receive_progressÚoption_transaction_hashÚoption_callerÚoption_caller_authidÚoption_caller_authrolerA  r8  rÐ   s                             rA   r½   z
Call.parseö  sA  € õ �4‰yŒy˜1Š}ˆ}  a¤­DÔ,=Ò!=Ð!=Ð!=Ð!=åˆt‰9Œ9˜IÐ%Ð%ÝÐ E× LÒ LÍSÐQUÉYÌYÑ WÔ WÑXÔXÐXå# D¨¤GÐ-@ÑAÔAˆÝ& t¨A¤wÐ0CÑDÔDˆÝ& t¨A¤wÐ0EÑFÔFˆ	àˆØˆØˆØˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœmµµU¨|Ð;Ð;à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð hÕ 1°(Ñ ;Ô ;ð hÝ#Ð$U×$\Ò$\Ð]eÑ$fÔ$fÑgÔgÐgà—k’k )¨TÑ2Ô2ˆGØð k�4 ™=œ=­CÒ/Ð/Ý#Ð$S×$ZÒ$ZÕ[_Ð`gÑ[hÔ[hÑ$iÔ$iÑjÔjÐjà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð tÕ&=¸nÑ&MÔ&Mð tÝ#Ð$[×$bÒ$bÐcqÑ$rÔ$rÑsÔsÐsøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�ØÐ#­¨T©
¬
µdÒ(:Ð(:Ý'Ð(M×(TÒ(TÕUYÐZ^ÑU_ÔU_Ñ(`Ô(`ÑaÔaÐaå�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<¥4Ò'Ð'Ý'Ð(O×(VÒ(VÕW[Ð\bÑWcÔWcÑ(dÔ(dÑeÔeÐeàˆØÐØÐØˆØˆØˆØˆà˜ÐÐà$ YÔ/ˆNÝ�NÑ#Ô#¥sÒ*Ð*Ý#Ð$S×$ZÒ$ZÕ[_Ð`nÑ[oÔ[oÑ$pÔ$pÑqÔqÐqà Ò!Ð!Ý#Ð$T×$[Ò$[Ð\jÑ$kÔ$kÑlÔlÐlà$ˆGà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ4Ð4Ý#Ð$\×$cÒ$cÕdhð  jAñ  eBô  eBñ  %Cô  %Cñ  Dô  Dð  Dà6Ðà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ3Ð3Ý#Ð$\×$cÒ$cÕdhð  jAñ  eBô  eBñ  %Cô  %Cñ  Dô  Dð  Dà6Ðà�wÐÐà# HÔ-ˆMÝ�MÑ"Ô"¥cÒ)Ð)Ý#Ð$R×$YÒ$YÕZ^Ð_lÑZmÔZmÑ$nÔ$nÑoÔoÐoà"ˆFà˜gÐ%Ð%à#*¨?Ô#;Ð ÝÐ(Ñ)Ô)­SÒ0Ð0Ý#Ð$Y×$`Ò$`ÕaeÐfzÑa{Ôa{Ñ$|Ô$|Ñ}Ô}Ð}à0ˆMà Ð'Ð'à%,Ð->Ô%?Ð"ÝÐ*Ñ+Ô+­sÒ2Ð2Ý#Ð$[×$bÒ$bÕcgÐh~ÑcÔcñ  %Aô  %Añ  Bô  Bð  Bà4ˆOà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð fÝ#Ð$dÑeÔeÐeå�7ØØØ Ø"Ø"Ø$4Ø$4Ø$Ø"Ø"0Ø Ø!.Ø#2Ø*ð,ñ ,ô ,ˆð  ˆ
rC   c                 ól  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        r3| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j	        �
| j	        |d	<   | j
        �
| j
        |d
<   |S )Nr®  r¯  rd  rN   r2  rQ   ræ   r°  r±  r5  )r®  r¯  rd  r1  rN   r2  rQ   ræ   r°  r±  r5  r  s     rA   r  zCall.marshal_options‹  sï   € ØˆàŒ<Ð#Ø!%¤ˆG�IÑàÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àŒ<ð 	@ØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)àŒ;Ð"Ø $¤ˆG�HÑØÔÐ)Ø'+Ô'9ˆG�OÑ$ØÔÐ+Ø)-Ô)=ˆGÐ%Ñ&àÔÐ'Ø%)Ô%5ˆG�MÑ"àˆrC   c                 óT  — |                       ¦   «         }| j        r t          j        | j        || j        | j        gS | j        r&t          j        | j        || j        | j        | j        gS | j        r t          j        | j        || j        | j        gS t          j        | j        || j        gS r  )r  r1  r   rÔ   r.  r­  r„   r0  r  s     rA   r·   zCall.marshal«  s¤   € ð ×&Ò&Ñ(Ô(ˆàŒ<ð 	RÝÔ% t¤|°W¸d¼nÈdÌlÐ[Ð[àŒ{ð RÝÔ)¨4¬<¸À$Ä.ÐRVÔR[Ð]aÔ]hÐiÐiØ”ð RÝÔ)¨4¬<¸À$Ä.ÐRVÔR[Ð\Ð\åÔ)¨4¬<¸À$Ä.ÐQÐQrC   )NNNNNNNNNNNNN)r³   rÑ   rÒ   rÓ   rÔ   r¦   r“   r×   r½   r  r·   r<   rC   rA   r   r   ]  s¶   € € € € € ð	ð 	ð €Lðð€Ið* ØØØØ"&Ø"&ØØØ $ØØ#Ø!%Ø!ðt'ð t'ð t'ð t'ðl ðRð Rñ „\ðRðhð ð ð@Rð Rð Rð Rð RrC   r   c                   óL   — e Zd ZdZdZ	 dZdZdZdZdd„Z	e
d	„ ¦   «         Zd
„ ZdS )r   zÃ
    A WAMP ``CANCEL`` message.

    Format: ``[CANCEL, CALL.Request|id, Options|dict]``

    See: https://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.3.4
    é1   ÚskipÚkillÚ
killnowait)r.  Úmoder5  Nc                 ód  — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|d| j        | j        | j        fv sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t           	                    | ¦  «         || _
        || _        || _        dS )aˆ  

        :param request: The WAMP request ID of the original `CALL` to cancel.
        :type request: int

        :param mode: Specifies how to cancel the call (``"skip"``, ``"killnowait"`` or ``"kill"``).
        :type mode: str or None

        :param forward_for: When this Cancel is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   )rJ   r|   rK   ÚSKIPÚ
KILLNOWAITÚKILLrë   r   r   r“   r.  rÁ  r5  )r‘   r.  rÁ  r5  r8  s        rA   r“   zCancel.__init__×  sU  € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#Øˆ|�t D™zœz­SÒ0Ð0Ð0Ð0Ø˜˜dœi¨¬¸$¼)ÐDÐDÐDÐDÐDØÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?àð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØˆŒ	ð 'ˆÔÐÐrC   c                 ó$  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}d}d	|v r˜|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|t          j	        t          j
        t          j        fvr"t          d                     |¦  «        ¦  «        ‚|}d|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd|vst          |d         ¦  «        t          k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d}|st          d¦  «        ‚t          |||¬¦  «        }|S )rî   r   r9   z%invalid message length {0} for CANCELr7   z'request' in CANCELr8   z'options' in CANCELNrÁ  z,invalid type {0} for 'mode' option in CANCELz/invalid value '{0}' for 'mode' option in CANCELr5  Fr  rÜ   rÝ   Tz@invalid type/value {0} for/within 'forward_for' option in CANCEL)rÁ  r5  )r[   r   rÔ   r   rZ   r'   r(   rJ   rK   rÃ  rÄ  rÅ  rë   r   r|   )	r¼   r.  r  rÁ  r5  Úoption_moderA  r8  rÐ   s	            rA   r½   zCancel.parseö  s  € õ �4‰yŒy˜1Š}ˆ}  a¤­FÔ,?Ò!?Ð!?Ð!?Ð!?åˆt‰9Œ9˜Š>ˆ>ÝÐ G× NÒ NÍsÐSWÉyÌyÑ YÔ YÑZÔZÐZå# D¨¤GÐ-BÑCÔCˆÝ& t¨A¤wÐ0EÑFÔFˆð ˆØˆà�WÐÐà! &œ/ˆKÝ�KÑ Ô ¥CÒ'Ð'Ý#Ð$R×$YÒ$YÕZ^Ð_jÑZkÔZkÑ$lÔ$lÑmÔmÐmà¥6¤;µÔ0AÅ6Ä;Ð"OÐOÐOÝ#Ð$U×$\Ò$\Ð]hÑ$iÔ$iÑjÔjÐjàˆDà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð hÝ#Ð$fÑgÔgÐgå�W 4°[ÐAÑAÔAˆàˆ
rC   c                 ór   — i }| j         �
| j         |d<   | j        �
| j        |d<   t          j        | j        |gS )rý   NrÁ  r5  )rÁ  r5  r   rÔ   r.  r  s     rA   r·   zCancel.marshal/  sD   € ð ˆàŒ9Ð Ø"œiˆG�F‰OØÔÐ'Ø%)Ô%5ˆG�MÑ"åÔ# T¤\°7Ð;Ð;rC   rQ  )r³   rÑ   rÒ   rÓ   rÔ   rÃ  rÅ  rÄ  r¦   r“   r×   r½   r·   r<   rC   rA   r   r   ¿  s�   € € € € € ðð ð €Lðð €DØ€DØ€Jð€Ið'ð 'ð 'ð 'ð> ð6ð 6ñ „\ð6ðp<ð <ð <ð <ð <rC   r   c                   óV   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Z	dS )	r   aO  
    A WAMP ``RESULT`` message.

    Formats:

    * ``[RESULT, CALL.Request|id, Details|dict]``
    * ``[RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list]``
    * ``[RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list, YIELD.ArgumentsKw|dict]``
    * ``[RESULT, CALL.Request|id, Details|dict, Payload|binary]``
    é2   ©r.  r0  r„   r1  ÚprogressrN   r2  rQ   rç   r3  r4  r5  Nc                 óÔ  — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          t          fv sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t
          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|€|€|�|�|€J ‚|	�t          |	¦  «        t          k    sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        t          |¦  «        | _        || _        || _        || _        || _        || _        |	| _        |
| _        || _        || _        dS )as  

        :param request: The request ID of the original `CALL` request.
        :type request: int

        :param args: Positional values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type args: list or tuple or None

        :param kwargs: Keyword values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param progress: If ``True``, this result is a progressive call result, and subsequent
           results (or a final error) will follow.
        :type progress: bool or None

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None

        :param callee: The WAMP session ID of the effective callee that responded with the result. Only filled if callee is disclosed.
        :type callee: None or int

        :param callee_authid: The WAMP authid of the responding callee. Only filled if callee is disclosed.
        :type callee_authid: None or unicode

        :param callee_authrole: The WAMP authrole of the responding callee. Only filled if callee is disclosed.
        :type callee_authrole: None or unicode

        :param forward_for: When this Result is forwarded for a client/callee (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   ©rJ   r|   rë   r7  r   rV   rŸ   r)   rK   r*   r   r“   r.  r0  r…   r„   r1  rÌ  rN   r2  rQ   rç   r3  r4  r5  ©r‘   r.  r0  r„   r1  rÌ  rN   r2  rQ   rç   r3  r4  r5  r8  s                 rA   r“   zResult.__init__`  sÃ  € õl �G‰}Œ}¥Ò#Ð#Ð#Ð#Øˆ|�t D™zœz­dµE¨]Ð:Ð:Ð:Ð:Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNØÐ¥4¨¡>¤>µTÒ#9Ð#9Ð#9Ð#9àÐÕ#4°XÑ#>Ô#>ÐÐÐØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%ØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBàˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ$­¨]Ñ(;Ô(;½sÒ(BÐ(BÐ(BÐ(BØÐ&­$¨Ñ*?Ô*?Å3Ò*FÐ*FÐ*FÐ*FàÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØˆŒ	Ý& vÑ.Ô.ˆŒØˆŒØ ˆŒð !ˆŒØˆŒØ,ˆÔð ˆŒØ*ˆÔØ.ˆÔð 'ˆÔÐÐrC   c                 ó´	  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}d}d}d}d}d}d}	d}
d}d}d}t          | ¦  «        d	k    �rt          | d
         ¦  «        t          t          fv rú| d
         }| 
                    dd¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚| 
                    dd¦  «        }|rGt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚| 
                    dd¦  «        }	|	r1t          |	¦  «        s"t          d                     |	¦  «        ¦  «        ‚nÆt          | ¦  «        d
k    rQ| d
         }|�Gt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        d	k    rO| d	         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}
d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd|vst          |d         ¦  «        t           k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d }|st          d!¦  «        ‚t          ||||||||	|
|||¬"¦  «        }|S )#rî   r   ©r9   rD   rE   z%invalid message length {0} for RESULTr7   z'request' in RESULTr8   z'details' in RESULTNrD   r9   rN   z1invalid value {0} for 'enc_algo' detail in RESULTr2  z/invalid type {0} for 'enc_key' detail in RESULTrQ   z7invalid value {0} for 'enc_serializer' detail in RESULTz%invalid type {0} for 'args' in RESULTz'invalid type {0} for 'kwargs' in RESULTrÌ  z0invalid type {0} for 'progress' option in RESULTrç   z.invalid type {0} for 'callee' detail in RESULTr3  z5invalid type {0} for 'callee_authid' detail in RESULTr4  z7invalid type {0} for 'callee_authrole' detail in RESULTr5  Fr  rÜ   rÝ   Tz@invalid type/value {0} for/within 'forward_for' option in RESULT©r0  r„   r1  rÌ  rN   r2  rQ   rç   r3  r4  r5  )r[   r   rÔ   r   rZ   r'   r(   rJ   rK   rV   r  r)   r*   rë   r   rŸ   r|   )r¼   r.  rò   r0  r„   r1  rÌ  rN   r2  rQ   rç   r3  r4  r5  Údetail_progressr>  r?  r@  rA  r8  rÐ   s                        rA   r½   zResult.parseÂ  s  € õ �4‰yŒy˜1Š}ˆ}  a¤­FÔ,?Ò!?Ð!?Ð!?Ð!?åˆt‰9Œ9˜IÐ%Ð%ÝÐ G× NÒ NÍsÐSWÉyÌyÑ YÔ YÑZÔZÐZå# D¨¤GÐ-BÑCÔCˆÝ& t¨A¤wÐ0EÑFÔFˆàˆØˆØˆØˆØˆØˆØˆØˆØˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœmµµU¨|Ð;Ð;à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð jÕ 1°(Ñ ;Ô ;ð jÝ#Ð$W×$^Ò$^Ð_gÑ$hÔ$hÑiÔiÐià—k’k )¨TÑ2Ô2ˆGØð m�4 ™=œ=­CÒ/Ð/Ý#Ð$U×$\Ò$\Õ]aÐbiÑ]jÔ]jÑ$kÔ$kÑlÔlÐlà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð vÕ&=¸nÑ&MÔ&Mð vÝ#Ð$]×$dÒ$dÐesÑ$tÔ$tÑuÔuÐuøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�ØÐ#­¨T©
¬
µdÒ(:Ð(:Ý'Ð(O×(VÒ(VÕW[Ð\`ÑWaÔWaÑ(bÔ(bÑcÔcÐcå�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<¥4Ò'Ð'Ý'Ð(Q×(XÒ(XÕY]Ð^dÑYeÔYeÑ(fÔ(fÑgÔgÐgà˜Ð Ð à% jÔ1ˆOÝ�OÑ$Ô$­Ò,Ð,Ý#Ð$V×$]Ò$]Õ^bÐcrÑ^sÔ^sÑ$tÔ$tÑuÔuÐuà&ˆHà�wÐÐà# HÔ-ˆMÝ�MÑ"Ô"¥cÒ)Ð)Ý#Ð$T×$[Ò$[Õ\`ÐanÑ\oÔ\oÑ$pÔ$pÑqÔqÐqà"ˆFà˜gÐ%Ð%à#*¨?Ô#;Ð ÝÐ(Ñ)Ô)­SÒ0Ð0Ý#Ð$[×$bÒ$bÕcgÐh|Ñc}Ôc}Ñ$~Ô$~ÑÔÐà0ˆMà Ð'Ð'à%,Ð->Ô%?Ð"ÝÐ*Ñ+Ô+­sÒ2Ð2Ý#Ð$]×$dÒ$dÕeið  kAñ  fBô  fBñ  %Cô  %Cñ  Dô  Dð  Dà4ˆOà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð hÝ#Ð$fÑgÔgÐgå�WØØ"Ø$Ø&Ø&Ø$Ø$2Ø"Ø#0Ø%4Ø!,ð.ñ .ô .ˆð ˆ
rC   c                 ó  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        rM| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d	<   t          j
        | j        || j        gS | j        r t          j
        | j        || j        | j        gS | j        rt          j
        | j        || j        gS t          j
        | j        |gS ©
rý   NrÌ  rç   r3  r4  r5  rN   r2  rQ   )rÌ  rç   r3  r4  r5  r1  rN   r2  rQ   r   rÔ   r.  r„   r0  r  s     rA   r·   zResult.marshal=  s,  € ð ˆàŒ=Ð$Ø"&¤-ˆG�JÑàŒ;Ð"Ø $¤ˆG�HÑØÔÐ)Ø'+Ô'9ˆG�OÑ$ØÔÐ+Ø)-Ô)=ˆGÐ%Ñ&ØÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ<ð 	DØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)ÝÔ'¨¬°wÀÄÐMÐMàŒ{ð DÝÔ+¨T¬\¸7ÀDÄIÈtÌ{Ð[Ð[Ø”ð DÝÔ+¨T¬\¸7ÀDÄIÐNÐNåÔ+¨T¬\¸7ÐCÐCrC   ©NNNNNNNNNNNr  r<   rC   rA   r   r   @  s    € € € € € ð	ð 	ð €Lðð€Ið" ØØØØØØ $ØØ#Ø!%Ø!ð`'ð `'ð `'ð `'ðD ðxð xñ „\ðxðt#Dð #Dð #Dð #Dð #DrC   r   c                   ót   — e Zd ZdZdZ	 dZdZdZdZdZ	dZ
d	Zd
ZdZdZ	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Zd„ ZdS )r   zk
    A WAMP ``REGISTER`` message.

    Format: ``[REGISTER, Request|id, Options|dict, Procedure|uri]``
    é@   r)  r*  r+  ÚsingleÚfirstÚlastÚ
roundrobinÚrandomÚall)r.  r­  rM   ÚinvokeÚconcurrencyÚforce_reregisterr5  Nc                 ó&  — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�'|t          j        t          j        t          j        fv sJ ‚|�t          |¦  «        t          k    sJ ‚|�=|t          j        t          j        t          j	        t          j
        t          j        fv sJ ‚|� t          |¦  «        t          k    r|dk    sJ ‚|dv sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        |pt          j        | _        |pt          j        | _        || _        || _        || _        dS )aÙ  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param procedure: The WAMP or application URI of the RPC endpoint provided.
        :type procedure: str

        :param match: The procedure matching policy to be used for the registration.
        :type match: str

        :param invoke: The procedure invocation policy to be used for the registration.
        :type invoke: str

        :param concurrency: The (maximum) concurrency to be used for the registration.
        :type concurrency: int

        :param forward_for: When this Register is forwarded over a router-to-router link,
            or via an intermediary router.
        :type forward_for: list[dict]
        Nr   )NTFr  rÜ   rÝ   )rJ   r|   rK   r   r.  r/  r0  ÚINVOKE_SINGLEÚINVOKE_FIRSTÚINVOKE_LASTÚINVOKE_ROUNDROBINÚINVOKE_RANDOMrë   r   r   r“   r.  r­  rM   rß  rà  rá  r5  )	r‘   r.  r­  rM   rß  rà  rá  r5  r8  s	            rA   r“   zRegister.__init__„  s=  € õ: �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�I‰Œ¥#Ò%Ð%Ð%Ð%Øˆ}¥ U¡¤­sÒ 2Ð 2Ð 2Ð 2Øˆ} ­(Ô*>ÅÔ@UÕW_ÔWnÐ)oÐ oÐ oÐ oÐ oØˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4Øˆ~ ­HÔ,BÅHÔDYÕ[cÔ[oÕqyô  rLõ  NVô  Ndð  ,eð  "eð  "eð  "eð  "eØÐ"¥t¨KÑ'8Ô'8½CÒ'?Ð'?ÀKÐRSÂOÀOÀOÀOØÐ#6Ð6Ð6Ð6Ð6ØÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØ"ˆŒØÐ2�hÔ2ˆŒ
ØÐ6¥Ô 6ˆŒØ&ˆÔØ 0ˆÔØ&ˆÔÐÐrC   c           	      ó&  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          j        }t          j        }d}d}d}d	|v r˜|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|t          j        t          j        t          j        fvr"t          d                     |¦  «        ¦  «        ‚|}|t          j        k    rd}	d}
n9|t          j        k    rd}	d}
n$|t          j        k    rd}	d}
nt          d¦  «        ‚t          | d         d|	|
¬¦  «        }d|v r®|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|t          j        t          j        t          j        t          j        t          j        fvr"t          d                     |¦  «        ¦  «        ‚|}d|v ry|d         }t          |¦  «        t&          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|dk     r"t          d                     |¦  «        ¦  «        ‚|}|                     dd¦  «        }|dvr/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|�|}d|v rÀ|d         }d}t          |¦  «        t*          k    r�|D ]ˆ}t          |¦  «        t,          k    r nmd|vst          |d         ¦  «        t&          k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d}|st          d¦  «        ‚t          |||||||¬ ¦  «        }|S )!rî   r   rD   z'invalid message length {0} for REGISTERr7   z'request' in REGISTERr8   z'options' in REGISTERNrM   z/invalid type {0} for 'match' option in REGISTERz0invalid value {0} for 'match' option in REGISTERFTzlogic errorr9   z'procedure' in REGISTER)rm   rn   rß  z0invalid type {0} for 'invoke' option in REGISTERz1invalid value {0} for 'invoke' option in REGISTERrà  z5invalid type {0} for 'concurrency' option in REGISTERz6invalid value {0} for 'concurrency' option in REGISTERrá  )TFNz9invalid type {0} for 'force_reregister option in REGISTERr5  r  rÜ   rÝ   zBinvalid type/value {0} for/within 'forward_for' option in REGISTER)rM   rß  rà  rá  r5  )r[   r   rÔ   r   rZ   r'   r(   r.  rã  rJ   rK   r/  r0  Ú	Exceptionr%   rä  rå  ræ  rç  r|   r  rë   r   )r¼   r.  r  rM   rß  rà  rá  r5  r2  rm   rn   r­  Úoption_invokeÚoptions_concurrencyÚoptions_reregisterrA  r8  rÐ   s                     rA   r½   zRegister.parseº  sj  € õ �4‰yŒy˜1Š}ˆ}  a¤­HÔ,AÒ!AÐ!AÐ!AÐ!Aåˆt‰9Œ9˜Š>ˆ>ÝÐ I× PÒ PÕQTÐUYÑQZÔQZÑ [Ô [Ñ\Ô\Ð\å# D¨¤GÐ-DÑEÔEˆÝ& t¨A¤wÐ0GÑHÔHˆåÔ$ˆÝÔ'ˆØˆØÐØˆà�gÐÐà" 7Ô+ˆLÝ�LÑ!Ô!¥SÒ(Ð(Ý#Ð$U×$\Ò$\Õ]aÐbnÑ]oÔ]oÑ$pÔ$pÑqÔqÐqà¥HÔ$8½(Ô:OÕQYÔQhÐ#iÐiÐiÝ#Ð$V×$]Ò$]Ð^jÑ$kÔ$kÑlÔlÐlà ˆEà•HÔ(Ò(Ð(Ø%*Ð"Ø$ÐÐà•hÔ+Ò+Ð+Ø%*Ð"Ø#ÐÐà•hÔ-Ò-Ð-Ø%)Ð"Ø$ÐÐõ ˜MÑ*Ô*Ð*å& t¨A¤wÐ0IÐbxð  L\ð  ]ñ  ]ô  ]ˆ	à�wÐÐà# HÔ-ˆMÝ�MÑ"Ô"¥cÒ)Ð)Ý#Ð$V×$]Ò$]Õ^bÐcpÑ^qÔ^qÑ$rÔ$rÑsÔsÐsà¥XÔ%;½XÔ=RÕT\ÔThÕjrô  kEõ  GOô  G]ð  %^ð  ^ð  ^Ý#Ð$W×$^Ò$^Ð_lÑ$mÔ$mÑnÔnÐnà"ˆFà˜GÐ#Ð#à")¨-Ô"8ÐÝÐ'Ñ(Ô(­CÒ/Ð/Ý#Ð$[×$bÒ$bÕcgÐh{Ñc|Ôc|Ñ$}Ô$}Ñ~Ô~Ð~à" QÒ&Ð&Ý#Ð$\×$cÒ$cÐdwÑ$xÔ$xÑyÔyÐyà-ˆKà$Ÿ[š[Ð);¸TÑBÔBÐØÐ%8Ð8Ð8ÝØK×RÒRÝÐ+Ñ,Ô,ñô ñô ð ð
 Ð)Ø1Ðà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð jÝ#Ð$hÑiÔiÐiå�w 	°¸vÐS^Ø(8ÀkðSñ Sô Sˆð ˆ
rC   c                 ó  — i }| j         r| j         t          j        k    r
| j         |d<   | j        r| j        t          j        k    r
| j        |d<   | j        r
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   |S )NrM   rß  rà  rá  r5  )rM   r   r.  rß  rã  rà  rá  r5  r  s     rA   r  zRegister.marshal_options&  s›   € ØˆàŒ:ð 	*˜$œ*­Ô(<Ò<Ð<Ø#œzˆG�GÑàŒ;ð 	,˜4œ;­(Ô*@Ò@Ð@Ø $¤ˆG�HÑàÔð 	6Ø%)Ô%5ˆG�MÑ"àÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àÔÐ'Ø%)Ô%5ˆG�MÑ"àˆrC   c                 óZ   — t           j        | j        |                      ¦   «         | j        gS r  )r   rÔ   r.  r  r­  r•   s    rA   r·   zRegister.marshal:  s&   € õ Ô% t¤|°T×5IÒ5IÑ5KÔ5KÈTÌ^Ð\Ð\rC   )NNNNN)r³   rÑ   rÒ   rÓ   rÔ   r.  r/  r0  rã  rä  rå  ræ  rç  Ú
INVOKE_ALLr¦   r“   r×   r½   r  r·   r<   rC   rA   r   r   c  sÉ   € € € € € ðð ð €Lðð €KØ€LØ€Nà€MØ€LØ€KØ$ÐØ€MØ€Jð€Ið ØØ!Ø"&Ø!ð4'ð 4'ð 4'ð 4'ðl ðið iñ „\ðiðVð ð ð(]ð ]ð ]ð ]ð ]rC   r   c                   ó>   — e Zd ZdZdZ	 dZd„ Zed„ ¦   «         Zd„ Z	dS )r   zl
    A WAMP ``REGISTERED`` message.

    Format: ``[REGISTERED, REGISTER.Request|id, Registration|id]``
    éA   )r.  Úregistrationc                 ó¾   — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        dS )zù

        :param request: The request ID of the original ``REGISTER`` request.
        :type request: int

        :param registration: The registration ID for the registered procedure (or procedure pattern).
        :type registration: int
        N)rJ   r|   r   r“   r.  rò  )r‘   r.  rò  s      rA   r“   zRegistered.__init__U  r:  rC   c                 óX  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          ||¦  «        }|S )rî   r   r9   z)invalid message length {0} for REGISTEREDr7   z'request' in REGISTEREDr8   z'registration' in REGISTERED)r[   r   rÔ   r   rZ   r'   )r¼   r.  rò  rÐ   s       rA   r½   zRegistered.parsee  r<  rC   c                 ó4   — t           j        | j        | j        gS r  )r   rÔ   r.  rò  r•   s    rA   r·   zRegistered.marshal|  r>  rC   Nr  r<   rC   rA   r   r   D  r?  rC   r   c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r    zÁ
    A WAMP `UNREGISTER` message.

    Formats:

    * ``[UNREGISTER, Request|id, REGISTERED.Registration|id]``
    * ``[UNREGISTER, Request|id, REGISTERED.Registration|id, Options|dict]``
    éB   )r.  rò  r5  Nc                 óÌ   — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚t                               | ¦  «         || _        || _        || _        dS )a†  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param registration: The registration ID for the registration to unregister.
        :type registration: int

        :param forward_for: When this Unregister is forwarded over a router-to-router link,
            or via an intermediary router.
        :type forward_for: list[dict]
        N)rJ   r|   r   r“   r.  rò  r5  )r‘   r.  rò  r5  s       rA   r“   zUnregister.__init__›  se   € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�LÑ!Ô!¥SÒ(Ð(Ð(Ð(å×Ò˜ÑÔÐØˆŒØ(ˆÔØ&ˆÔÐÐrC   c                 ó>  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}t          | ¦  «        d	k    rt          | d	         d
¦  «        }d}|rÄd|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd|vst          |d         ¦  «        t          k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d}|st          d¦  «        ‚t          |||¬¦  «        }|S )rî   r   rD  z.invalid message length {0} for WAMP UNREGISTERr7   z'request' in UNREGISTERr8   z'registration' in UNREGISTERNr9   z'options' in UNREGISTERr5  Fr  rÜ   rÝ   TzDinvalid type/value {0} for/within 'forward_for' option in UNREGISTERrE  )r[   r    rÔ   r   rZ   r'   r(   rJ   rë   r   r|   rK   )r¼   r.  rò  r  r5  rA  r8  rÐ   s           rA   r½   zUnregister.parse°  s¿  € õ �4‰yŒy˜1Š}ˆ}  a¤­JÔ,CÒ!CÐ!CÐ!CÐ!Cåˆt‰9Œ9˜FÐ"Ð"ÝÐ P× WÒ WÕX[Ð\`ÑXaÔXaÑ bÔ bÑcÔcÐcå# D¨¤GÐ-FÑGÔGˆÝ(¨¨a¬Ð2PÑQÔQˆàˆÝˆt‰9Œ9�qŠ=ˆ=Ý*¨4°¬7Ð4MÑNÔNˆGàˆØð 	l�}¨Ð/Ð/Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð lÝ#Ð$jÑkÔkÐkå˜ ,¸KÐHÑHÔHˆàˆ
rC   c                 óˆ   — | j         r#d| j         i}t          j        | j        | j        |gS t          j        | j        | j        gS rG  )r5  r    rÔ   r.  rò  r  s     rA   r·   zUnregister.marshalÞ  sM   € ð Ôð 	Nà˜tÔ/ðˆGõ Ô+¨T¬\¸4Ô;LÈgÐVÐVåÔ+¨T¬\¸4Ô;LÐMÐMrC   r�   r  r<   rC   rA   r    r    †  su   € € € € € ðð ð €Lðð€Ið'ð 'ð 'ð 'ð* ð+ð +ñ „\ð+ðZNð Nð Nð Nð NrC   r    c                   ó@   — e Zd ZdZdZ	 dZdd„Zed„ ¦   «         Zd„ Z	dS )	r!   z§
    A WAMP ``UNREGISTERED`` message.

    Formats:

    * ``[UNREGISTERED, UNREGISTER.Request|id]``
    * ``[UNREGISTERED, UNREGISTER.Request|id, Details|dict]``
    éC   )r.  rò  r  Nc                 ó4  — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|dk    r|�|dk    r|dk    sJ ‚t                               | ¦  «         || _        || _        || _        dS )ay  

        :param request: The request ID of the original ``UNREGISTER`` request.
        :type request: int

        :param registration: If unregister was actively triggered by router, the ID
            of the registration revoked.
        :type registration: int or None

        :param reason: The reason (an URI) for revocation.
        :type reason: str or None.
        Nr   )rJ   r|   rK   r   r“   r.  rò  r  )r‘   r.  rò  r  s       rA   r“   zUnregistered.__init__  s©   € õ �G‰}Œ}¥Ò#Ð#Ð#Ð#ØÐ#¥t¨LÑ'9Ô'9½SÒ'@Ð'@Ð'@Ð'@Øˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4Ø˜1’� Ð!5¸7Àaº<¸<ÈLÐ\]ÒL]ÐL]ÐL]ÐL]å×Ò˜ÑÔÐØˆŒØ(ˆÔØˆŒˆˆrC   c                 ób  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }d}d}t          | ¦  «        dk    r…t          | d         d¦  «        }d	|v rQ|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rt          |d         d¦  «        }t          |||¦  «        }|S )rî   r   rL  z+invalid message length {0} for UNREGISTEREDr7   z'request' in UNREGISTEREDNr8   z'details' in UNREGISTEREDrò  z:invalid type {0} for 'registration' detail in UNREGISTEREDr  z'reason' in UNREGISTERED)
r[   r!   rÔ   r   rZ   r'   r(   rJ   r|   r%   )r¼   r.  rò  r  rò   Údetails_registrationrÐ   s          rA   r½   zUnregistered.parse  rN  rC   c                 ó´   — | j         €| j        �8i }| j         �
| j         |d<   | j        �
| j        |d<   t          j        | j        |gS t          j        | j        gS )rý   Nr  rò  )r  rò  r!   rÔ   r.  r  s     rA   r·   zUnregistered.marshal@  rP  rC   rQ  r  r<   rC   rA   r!   r!   î  sp   € € € € € ðð ð €Lðð€Iðð ð ð ð. ð#ð #ñ „\ð#ðJ=ð =ð =ð =ð =rC   r!   c                   ó\   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Z	dS )	r"   a¼  
    A WAMP ``INVOCATION`` message.

    Formats:

    * ``[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict]``
    * ``[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list]``
    * ``[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]``
    * ``[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, Payload|binary]``
    éD   )r.  rò  r0  r„   r1  r®  r¯  ræ   r°  r±  r­  rd  rN   r2  rQ   r5  Nc                 óè  — t          |¦  «        t          k    sJ ‚t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          t          fv sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t
          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|	�t          |	¦  «        t          k    sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|€|€|�|�|€J ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        || _        t          |¦  «        | _        || _        || _        || _        || _        |	| _        |
| _        || _        || _        || _        || _        || _        || _        dS )aü	  

        :param request: The WAMP request ID of this request.
        :type request: int

        :param registration: The registration ID of the endpoint to be invoked.
        :type registration: int

        :param args: Positional values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type args: list or tuple or None

        :param kwargs: Keyword values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param timeout: If present, let the callee automatically cancels
           the invocation after this ms.
        :type timeout: int or None

        :param receive_progress: Indicates if the callee should produce progressive results.
        :type receive_progress: bool or None

        :param caller: The WAMP session ID of the caller. Only filled if caller is disclosed.
        :type caller: None or int

        :param caller_authid: The WAMP authid of the caller. Only filled if caller is disclosed.
        :type caller_authid: None or unicode

        :param caller_authrole: The WAMP authrole of the caller. Only filled if caller is disclosed.
        :type caller_authrole: None or unicode

        :param procedure: For pattern-based registrations, the invocation MUST include the actual procedure being called.
        :type procedure: str or None

        :param transaction_hash: An application provided transaction hash for the originating call, which may
            be used in the router to throttle or deduplicate the calls on the procedure. See the discussion
            `here <https://github.com/wamp-proto/wamp-proto/issues/391#issuecomment-998577967>`_.
        :type transaction_hash: str

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None

        :param forward_for: When this Call is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   )rJ   r|   rë   r7  r   rV   rŸ   rK   r)   r*   r   r“   r.  rò  r0  r…   r„   r1  r®  r¯  ræ   r°  r±  r­  rd  rN   r2  rQ   r5  )r‘   r.  rò  r0  r„   r1  r®  r¯  ræ   r°  r±  r­  rd  rN   r2  rQ   r5  r8  s                     rA   r“   zInvocation.__init__v  sP  € õP �G‰}Œ}¥Ò#Ð#Ð#Ð#Ý�LÑ!Ô!¥SÒ(Ð(Ð(Ð(Øˆ|�t D™zœz­dµE¨]Ð:Ð:Ð:Ð:Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ'­4Ð0@Ñ+AÔ+AÅTÒ+IÐ+IÐ+IÐ+IØˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ$­¨]Ñ(;Ô(;½sÒ(BÐ(BÐ(BÐ(BØÐ&­$¨Ñ*?Ô*?Å3Ò*FÐ*FÐ*FÐ*FØÐ ¥D¨¡O¤OµsÒ$:Ð$:Ð$:Ð$:ØÐ'­4Ð0@Ñ+AÔ+AÅSÒ+HÐ+HÐ+HÐ+HØÐÕ#4°XÑ#>Ô#>ÐÐÐØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%ØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBàÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØ(ˆÔØˆŒ	Ý& vÑ.Ô.ˆŒØˆŒØˆŒØ 0ˆÔØˆŒØ*ˆÔØ.ˆÔØ"ˆŒØ 0ˆÔØ ˆŒØˆŒØ,ˆÔð 'ˆÔÐÐrC   c                 ó8  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }t          | d         d	¦  «        }d
}d
}d
}d
}d
}d
}	t          | ¦  «        dk    �rt          | d         ¦  «        t          k    rú| d         }| 	                    dd
¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚| 	                    dd
¦  «        }|rGt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚| 	                    dd
¦  «        }	|	r1t          |	¦  «        s"t          d                     |	¦  «        ¦  «        ‚nÆt          | ¦  «        dk    rQ| d         }|�Gt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        dk    rO| d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d
}
d
}d
}d
}d
}d
}d
}d
}d|v ry|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|dk     r"t          d                     |¦  «        ¦  «        ‚|}
d|v rQ|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d |v rQ|d          }t          |¦  «        t          k    r/t          d!                     t          |¦  «        ¦  «        ¦  «        ‚|}d"|v rQ|d"         }t          |¦  «        t          k    r/t          d#                     t          |¦  «        ¦  «        ¦  «        ‚|}d$|v rÀ|d$         }d%}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd&|vst          |d&         ¦  «        t          k    r nId'|vst          |d'         ¦  «        t          k    r n%d(|vst          |d(         ¦  «        t          k    r nŒ‰d)}|st          d*¦  «        ‚t          ||||||
|||||||||	|¬+¦  «        }|S ),rî   r   r  z)invalid message length {0} for INVOCATIONr7   z'request' in INVOCATIONr8   z'registration' in INVOCATIONr9   z'details' in INVOCATIONNrE   rD   rN   z5invalid value {0} for 'enc_algo' detail in INVOCATIONr2  z3invalid type {0} for 'enc_key' detail in INVOCATIONrQ   z;invalid value {0} for 'enc_serializer' detail in INVOCATIONz)invalid type {0} for 'args' in INVOCATIONz+invalid type {0} for 'kwargs' in INVOCATIONr®  z3invalid type {0} for 'timeout' detail in INVOCATIONz4invalid value {0} for 'timeout' detail in INVOCATIONr¯  z<invalid type {0} for 'receive_progress' detail in INVOCATIONræ   z2invalid type {0} for 'caller' detail in INVOCATIONr°  z9invalid type {0} for 'caller_authid' detail in INVOCATIONr±  z;invalid type {0} for 'caller_authrole' detail in INVOCATIONr­  z5invalid type {0} for 'procedure' detail in INVOCATIONrd  rŸ  r5  Fr  rÜ   rÝ   TzDinvalid type/value {0} for/within 'forward_for' option in INVOCATION)r0  r„   r1  r®  r¯  ræ   r°  r±  r­  rd  rN   r2  rQ   r5  )r[   r"   rÔ   r   rZ   r'   r(   rJ   rV   r  r)   rK   r*   rë   r   r|   rŸ   )r¼   r.  rò  rò   r0  r„   r1  rN   r2  rQ   r®  r¯  ræ   r°  r±  r­  rd  r5  Údetail_timeoutÚdetail_receive_progressÚdetail_callerÚdetail_caller_authidÚdetail_caller_authroleÚdetail_procedurer¤  rA  r8  rÐ   s                               rA   r½   zInvocation.parseì  sÅ  € õ �4‰yŒy˜1Š}ˆ}  a¤­JÔ,CÒ!CÐ!CÐ!CÐ!Cåˆt‰9Œ9˜IÐ%Ð%ÝÐ K× RÒ RÕSVÐW[ÑS\ÔS\Ñ ]Ô ]Ñ^Ô^Ð^å# D¨¤GÐ-FÑGÔGˆÝ(¨¨a¬Ð2PÑQÔQˆÝ& t¨A¤wÐ0IÑJÔJˆàˆØˆØˆØˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœm­uÒ4Ð4à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð nÕ 1°(Ñ ;Ô ;ð nÝ#Ð$[×$bÒ$bÐckÑ$lÔ$lÑmÔmÐmà—k’k )¨TÑ2Ô2ˆGØð q�4 ™=œ=­CÒ/Ð/Ý#Ð$Y×$`Ò$`ÕaeÐfmÑanÔanÑ$oÔ$oÑpÔpÐpà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð zÕ&=¸nÑ&MÔ&Mð zÝ#Ð$a×$hÒ$hÐiwÑ$xÔ$xÑyÔyÐyøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�ØÐ#­¨T©
¬
µdÒ(:Ð(:Ý'Ð(S×(ZÒ(ZÕ[_Ð`dÑ[eÔ[eÑ(fÔ(fÑgÔgÐgå�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<¥4Ò'Ð'Ý'Ð(U×(\Ò(\Õ]aÐbhÑ]iÔ]iÑ(jÔ(jÑkÔkÐkàˆØÐØˆØˆØˆØˆ	ØÐØˆà˜ÐÐà$ YÔ/ˆNÝ�NÑ#Ô#¥sÒ*Ð*Ý#Ð$Y×$`Ò$`ÕaeÐftÑauÔauÑ$vÔ$vÑwÔwÐwà Ò!Ð!Ý#Ð$Z×$aÒ$aÐbpÑ$qÔ$qÑrÔrÐrà$ˆGà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ4Ð4Ý#Ð$b×$iÒ$iÕjnð  pGñ  kHô  kHñ  %Iô  %Iñ  Jô  Jð  Jà6Ðà�wÐÐà# HÔ-ˆMÝ�MÑ"Ô"¥cÒ)Ð)Ý#Ð$X×$_Ò$_Õ`dÐerÑ`sÔ`sÑ$tÔ$tÑuÔuÐuà"ˆFà˜gÐ%Ð%à#*¨?Ô#;Ð ÝÐ(Ñ)Ô)­SÒ0Ð0Ý#Ð$_×$fÒ$fÕgkð  mAñ  hBô  hBñ  %Cô  %Cñ  Dô  Dð  Dà0ˆMà Ð'Ð'à%,Ð->Ô%?Ð"ÝÐ*Ñ+Ô+­sÒ2Ð2Ý#Ð$a×$hÒ$hÕimð  oEñ  jFô  jFñ  %Gô  %Gñ  Hô  Hð  Hà4ˆOà˜'Ð!Ð!à& {Ô3ÐÝÐ$Ñ%Ô%­Ò,Ð,Ý#Ð$[×$bÒ$bÕcgÐhxÑcyÔcyÑ$zÔ$zÑ{Ô{Ð{à(ˆIà Ð(Ð(à&-Ð.@Ô&AÐ#ÝÐ+Ñ,Ô,µÒ3Ð3Ý#Ð$]×$dÒ$dÕeið  kBñ  fCô  fCñ  %Dô  %Dñ  Eô  Eð  Eà6Ðà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð lÝ#Ð$jÑkÔkÐkå˜Ø%Ø"Ø &Ø!(Ø!(Ø*:Ø &Ø'4Ø)8Ø#,Ø*:Ø"*Ø!(Ø(6Ø%0ð2ñ 2ô 2ˆð" ˆ
rC   c                 ó¦  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d	<   | j        rS| j	        �
| j	        |d
<   | j
        �
| j
        |d<   | j        �
| j        |d<   t          j        | j        | j        || j        gS | j        r&t          j        | j        | j        || j        | j        gS | j        r t          j        | j        | j        || j        gS t          j        | j        | j        |gS )rý   Nr®  r¯  ræ   r°  r±  r­  rd  r5  rN   r2  rQ   )r®  r¯  ræ   r°  r±  r­  rd  r5  r1  rN   r2  rQ   r"   rÔ   r.  rò  r„   r0  r  s     rA   r·   zInvocation.marshal‹  s�  € ð ˆàŒ<Ð#Ø!%¤ˆG�IÑàÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àŒ;Ð"Ø $¤ˆG�HÑàÔÐ)Ø'+Ô'9ˆG�OÑ$àÔÐ+Ø)-Ô)=ˆGÐ%Ñ&àŒ>Ð%Ø#'¤>ˆG�KÑ àÔ Ð,Ø*.Ô*?ˆGÐ&Ñ'àÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ<ð 	[ØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)ÝÔ+¨T¬\¸4Ô;LÈgÐW[ÔWcÐdÐdàŒ{ð [Ý"Ô/°´¸tÔ?PÐRYÐ[_Ô[dÐfjÔfqÐrÐrØ”ð [Ý"Ô/°´¸tÔ?PÐRYÐ[_Ô[dÐeÐeå"Ô/°´¸tÔ?PÐRYÐZÐZrC   )NNNNNNNNNNNNNNr  r<   rC   rA   r"   r"   R  s©   € € € € € ð	ð 	ð €Lðð€Ið, ØØØØ"&ØØ#Ø!%ØØ"&ØØØ $Ø!ð!t'ð t'ð t'ð t'ðl ð\ð \ñ „\ð\ð|/[ð /[ð /[ð /[ð /[rC   r"   c                   óH   — e Zd ZdZdZ	 dZdZdZd
d„Ze	d„ ¦   «         Z
d	„ ZdS )r#   zÏ
    A WAMP ``INTERRUPT`` message.

    Format: ``[INTERRUPT, INVOCATION.Request|id, Options|dict]``

    See: https://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.3.4
    éE   r¿  rÀ  )r.  rÁ  r  r5  Nc                 ó   — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�|| j        | j        fv sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t
          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _	        || _
        || _        || _        dS )aV  

        :param request: The WAMP request ID of the original ``INVOCATION`` to interrupt.
        :type request: int

        :param mode: Specifies how to interrupt the invocation (``"killnowait"`` or ``"kill"``).
            With ``"kill"``, the router will wait for the callee to return an ERROR before
            proceeding (sending back an ERROR to the original caller). With ``"killnowait"`` the
            router will immediately proceed (on the caller side returning an ERROR) - but still
            expects the callee to send an ERROR to conclude the message exchange for the inflight
            call.
        :type mode: str or None

        :param reason: The reason (an URI) for the invocation interrupt, eg actively
            triggered by the caller (``"wamp.error.canceled"`` - ApplicationError.CANCELED) or
            passively because of timeout (``"wamp.error.timeout"`` - ApplicationError.TIMEOUT).
        :type reason: str or None.

        :param forward_for: When this Call is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   )rJ   r|   rK   rÅ  rÄ  rë   r   r   r“   r.  rÁ  r  r5  )r‘   r.  rÁ  r  r5  r8  s         rA   r“   zInterrupt.__init__Õ  su  € õ, �G‰}Œ}¥Ò#Ð#Ð#Ð#Øˆ|�t D™zœz­SÒ0Ð0Ð0Ð0Øˆ|˜t¨¬	°4´?Ð'CÐCÐCÐCÐCØˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4àÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØˆŒ	ØˆŒð 'ˆÔÐÐrC   c                 óH  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dk    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}d}d}d	|v r�|d	         }t          |¦  «        t          k    r/t          d
                     t          |¦  «        ¦  «        ¦  «        ‚|t          j	        t          j
        fvr"t          d                     |¦  «        ¦  «        ‚|}d|v rt          |d         d¦  «        }d|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd|vst          |d         ¦  «        t          k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d}|st          d¦  «        ‚t          ||||¬¦  «        }	|	S )rî   r   r9   z(invalid message length {0} for INTERRUPTr7   z'request' in INTERRUPTr8   z'options' in INTERRUPTNrÁ  z/invalid type {0} for 'mode' option in INTERRUPTz2invalid value '{0}' for 'mode' option in INTERRUPTr  z"reason" in INTERRUPTr5  Fr  rÜ   rÝ   TzCinvalid type/value {0} for/within 'forward_for' option in INTERRUPT)rÁ  r  r5  )r[   r#   rÔ   r   rZ   r'   r(   rJ   rK   rÅ  rÄ  r%   rë   r   r|   )
r¼   r.  r  rÁ  r  r5  rÇ  rA  r8  rÐ   s
             rA   r½   zInterrupt.parse   sA  € õ �4‰yŒy˜1Š}ˆ}  a¤­IÔ,BÒ!BÐ!BÐ!BÐ!Båˆt‰9Œ9˜Š>ˆ>ÝÐ J× QÒ QÕRUÐVZÑR[ÔR[Ñ \Ô \Ñ]Ô]Ð]å# D¨¤GÐ-EÑFÔFˆÝ& t¨A¤wÐ0HÑIÔIˆð ˆØˆØˆà�WÐÐà! &œ/ˆKÝ�KÑ Ô ¥CÒ'Ð'Ý#Ð$U×$\Ò$\Õ]aÐbmÑ]nÔ]nÑ$oÔ$oÑpÔpÐpà¥9¤>µ9Ô3GÐ"HÐHÐHÝ#Ð$X×$_Ò$_Ð`kÑ$lÔ$lÑmÔmÐmàˆDà�wÐÐÝ'¨°Ô(9Ð;RÑSÔSˆFà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð kÝ#Ð$iÑjÔjÐjå˜ d°6À{ÐSÑSÔSˆàˆ
rC   c                 ó”   — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   t          j        | j        |gS )rý   NrÁ  r  r5  )rÁ  r  r5  r#   rÔ   r.  r  s     rA   r·   zInterrupt.marshal=  sX   € ð ˆàŒ9Ð Ø"œiˆG�F‰OàŒ;Ð"Ø $¤ˆG�HÑàÔÐ'Ø%)Ô%5ˆG�MÑ"åÔ&¨¬°gÐ>Ð>rC   r5  )r³   rÑ   rÒ   rÓ   rÔ   rÅ  rÄ  r¦   r“   r×   r½   r·   r<   rC   rA   r#   r#   ½  s}   € € € € € ðð ð €Lðð €DØ€Jð€Ið)'ð )'ð )'ð )'ðV ð:ð :ñ „\ð:ðx?ð ?ð ?ð ?ð ?rC   r#   c                   óV   — e Zd ZdZdZ	 dZ	 	 	 	 	 	 	 	 	 	 	 dd„Zed„ ¦   «         Zd„ Z	dS )	r$   aP  
    A WAMP ``YIELD`` message.

    Formats:

    * ``[YIELD, INVOCATION.Request|id, Options|dict]``
    * ``[YIELD, INVOCATION.Request|id, Options|dict, Arguments|list]``
    * ``[YIELD, INVOCATION.Request|id, Options|dict, Arguments|list, ArgumentsKw|dict]``
    * ``[YIELD, INVOCATION.Request|id, Options|dict, Payload|binary]``
    éF   rË  Nc                 óÔ  — t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          t          fv sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t
          k    sJ ‚|�|�|€|�J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|€|€|�|�|€J ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        sJ ‚|	�t          |	¦  «        t          k    sJ ‚|
�t          |
¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|�t          |¦  «        t          k    sJ ‚|r“|D ]�}t          |¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚d|v r&|d         � t          |d         ¦  «        t          k    sJ ‚d|v rt          |d         ¦  «        t          k    sJ ‚Œ‘t                               | ¦  «         || _        || _        t          |¦  «        | _        || _        || _        || _        || _        || _        |	| _        |
| _        || _        || _        dS )aj  

        :param request: The WAMP request ID of the original call.
        :type request: int

        :param args: Positional values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type args: list or tuple or None

        :param kwargs: Keyword values for application-defined event payload.
           Must be serializable using any serializers in use.
        :type kwargs: dict or None

        :param payload: Alternative, transparent payload. If given, ``args`` and ``kwargs`` must be left unset.
        :type payload: bytes or None

        :param progress: If ``True``, this result is a progressive invocation result, and subsequent
           results (or a final error) will follow.
        :type progress: bool or None

        :param enc_algo: If using payload transparency, the encoding algorithm that was used to encode the payload.
        :type enc_algo: str or None

        :param enc_key: If using payload transparency with an encryption algorithm, the payload encryption key.
        :type enc_key: str or None

        :param enc_serializer: If using payload transparency, the payload object serializer that was used encoding the payload.
        :type enc_serializer: str or None

        :param callee: The WAMP session ID of the effective callee that responded with the error. Only filled if callee is disclosed.
        :type callee: None or int

        :param callee_authid: The WAMP authid of the responding callee. Only filled if callee is disclosed.
        :type callee_authid: None or unicode

        :param callee_authrole: The WAMP authrole of the responding callee. Only filled if callee is disclosed.
        :type callee_authrole: None or unicode

        :param forward_for: When this Call is forwarded for a client (or from an intermediary router).
        :type forward_for: list[dict]
        Nr  rÜ   rÝ   rÎ  rÏ  s                 rA   r“   zYield.__init__r  sÁ  € õl �G‰}Œ}¥Ò#Ð#Ð#Ð#Øˆ|�t D™zœz­dµE¨]Ð:Ð:Ð:Ð:Øˆ~¥ f¡¤µÒ!5Ð!5Ð!5Ð!5Øˆ¥$ w¡-¤-µ5Ò"8Ð"8Ð"8Ð"8Øˆ 7Ð#6¸4¸<ÈFÈNÈNÈNØÐ¥4¨¡>¤>µTÒ#9Ð#9Ð#9Ð#9ØÐÕ#4°XÑ#>Ô#>ÐÐÐØÐ  W _¸Ð9OÐU\ÐUhÐmuð  nBð  nBð  nBØˆ¥$ w¡-¤-µ3Ò"6Ð"6Ð"6Ð"6ØÐ%Õ)@ÀÑ)PÔ)PÐ%Ð%Ð%àˆ~¥ f¡¤µÒ!4Ð!4Ð!4Ð!4ØÐ$­¨]Ñ(;Ô(;½sÒ(BÐ(BÐ(BÐ(BØÐ&­$¨Ñ*?Ô*?Å3Ò*FÐ*FÐ*FÐ*FàÐ"¥d¨;Ñ&7Ô&7½4Ò&?Ð&?Ð&?Ð&?Øð 	HØ!ð Hð H�Ý˜B‘x”x¥4Ò'Ð'Ð'Ð'Ø  B��­4°°9´Ñ+>Ô+>Å#Ò+EÐ+EÐ+EÐ+EØ 2�~�~¨2¨h¬<Ð+?Å4ÈÈ8ÌÑCUÔCUÕY\ÒC\ÐC\ÐC\ÐC\Ø! RÐ'Ð'­D°°J´Ñ,@Ô,@ÅCÒ,GÐ,GÐ,GÐ,GÐ,Gå×Ò˜ÑÔÐØˆŒØˆŒ	Ý& vÑ.Ô.ˆŒØˆŒØ ˆŒØ ˆŒØˆŒØ,ˆÔð ˆŒØ*ˆÔØ.ˆÔð 'ˆÔÐÐrC   c                 óª	  — t          | ¦  «        dk    r| d         t          j        k    sJ ‚t          | ¦  «        dvr/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚t          | d         d¦  «        }t          | d         d¦  «        }d}d}d}d}d}d}t          | ¦  «        d	k    �rt          | d
         ¦  «        t          k    rú| d
         }| 	                    dd¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚| 	                    dd¦  «        }|rGt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚| 	                    dd¦  «        }|r1t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚nÆt          | ¦  «        d
k    rQ| d
         }|�Gt          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          | ¦  «        d	k    rO| d	         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚d}	d}
d}d}d}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}	d|v rQ|d         }t          |¦  «        t           k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}
d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rQ|d         }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|}d|v rÀ|d         }d}t          |¦  «        t          k    r�|D ]ˆ}t          |¦  «        t          k    r nmd|vst          |d         ¦  «        t           k    r nId|vst          |d         ¦  «        t          k    r n%d|vst          |d         ¦  «        t          k    r nŒ‰d }|st          d!¦  «        ‚t          |||||	||||
|||¬"¦  «        }|S )#rî   r   rÑ  z$invalid message length {0} for YIELDr7   z'request' in YIELDr8   z'options' in YIELDNrD   r9   rN   z0invalid value {0} for 'enc_algo' detail in YIELDr2  z.invalid type {0} for 'enc_key' detail in YIELDrQ   z6invalid value {0} for 'enc_serializer' detail in YIELDz$invalid type {0} for 'args' in YIELDz&invalid type {0} for 'kwargs' in YIELDrÌ  z/invalid type {0} for 'progress' option in YIELDrç   z-invalid type {0} for 'callee' detail in YIELDr3  z4invalid type {0} for 'callee_authid' detail in YIELDr4  z6invalid type {0} for 'callee_authrole' detail in YIELDr5  Fr  rÜ   rÝ   Tz?invalid type/value {0} for/within 'forward_for' option in YIELDrÒ  )r[   r$   rÔ   r   rZ   r'   r(   rJ   rV   r  r)   rK   r*   rë   r   rŸ   r|   )r¼   r.  r  r0  r„   r1  rN   r2  rQ   rÌ  rç   r3  r4  r5  Úoption_progressÚoption_calleeÚoption_callee_authidÚoption_callee_authrolerA  r8  rÐ   s                        rA   r½   zYield.parseÑ  s  € õ �4‰yŒy˜1Š}ˆ}  a¤­EÔ,>Ò!>Ð!>Ð!>Ð!>åˆt‰9Œ9˜IÐ%Ð%ÝÐ F× MÒ MÍcÐRVÉiÌiÑ XÔ XÑYÔYÐYå# D¨¤GÐ-AÑBÔBˆÝ& t¨A¤wÐ0DÑEÔEˆàˆØˆØˆØˆØˆØˆåˆt‰9Œ9˜Š>‰>�d 4¨¤7™mœm­uÒ4Ð4à˜1”gˆGà—{’{ :¨tÑ4Ô4ˆHØð iÕ 1°(Ñ ;Ô ;ð iÝ#Ð$V×$]Ò$]Ð^fÑ$gÔ$gÑhÔhÐhà—k’k )¨TÑ2Ô2ˆGØð l�4 ™=œ=­CÒ/Ð/Ý#Ð$T×$[Ò$[Õ\`ÐahÑ\iÔ\iÑ$jÔ$jÑkÔkÐkà$Ÿ[š[Ð)9¸4Ñ@Ô@ˆNØð uÕ&=¸nÑ&MÔ&Mð uÝ#Ð$\×$cÒ$cÐdrÑ$sÔ$sÑtÔtÐtøõ �4‰yŒy˜1Š}ˆ}Ø˜A”w�ØÐ#­¨T©
¬
µdÒ(:Ð(:Ý'Ð(N×(UÒ(UÕVZÐ[_ÑV`ÔV`Ñ(aÔ(aÑbÔbÐbå�4‰yŒy˜1Š}ˆ}Ø˜aœ�Ý˜‘<”<¥4Ò'Ð'Ý'Ð(P×(WÒ(WÕX\Ð]cÑXdÔXdÑ(eÔ(eÑfÔfÐfàˆØˆØˆØˆØˆà˜Ð Ð à% jÔ1ˆOÝ�OÑ$Ô$­Ò,Ð,Ý#Ð$U×$\Ò$\Õ]aÐbqÑ]rÔ]rÑ$sÔ$sÑtÔtÐtà&ˆHà�wÐÐà# HÔ-ˆMÝ�MÑ"Ô"¥cÒ)Ð)Ý#Ð$S×$ZÒ$ZÕ[_Ð`mÑ[nÔ[nÑ$oÔ$oÑpÔpÐpà"ˆFà˜gÐ%Ð%à#*¨?Ô#;Ð ÝÐ(Ñ)Ô)­SÒ0Ð0Ý#Ð$Z×$aÒ$aÕbfÐg{Ñb|Ôb|Ñ$}Ô$}Ñ~Ô~Ð~à0ˆMà Ð'Ð'à%,Ð->Ô%?Ð"ÝÐ*Ñ+Ô+­sÒ2Ð2Ý#Ð$\×$cÒ$cÕdhÐiñ  eAô  eAñ  %Bô  %Bñ  Cô  Cð  Cà4ˆOà˜GÐ#Ð#Ø! -Ô0ˆKØˆEÝ�KÑ Ô ¥DÒ(Ð(Ø%ð ð �BÝ˜B‘x”x¥4Ò'Ð'Ø˜Ø ¨Ð*Ð*­d°2°i´=Ñ.AÔ.AÅSÒ.HÐ.HØ˜Ø rÐ)Ð)­T°"°X´,Ñ-?Ô-?Å3Ò-FÐ-FØ˜Ø!¨Ð+Ð+­t°B°z´NÑ/CÔ/CÅsÒ/JÐ/JØ˜ð 0Kà�àð gÝ#Ð$eÑfÔfÐfå�GØØ!Ø#Ø%Ø%Ø#Ø#1Ø!Ø"/Ø$3Ø +ð-ñ -ô -ˆð ˆ
rC   c                 ó  — i }| j         �
| j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        rM| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d	<   t          j
        | j        || j        gS | j        r t          j
        | j        || j        | j        gS | j        rt          j
        | j        || j        gS t          j
        | j        |gS rÕ  )rÌ  rç   r3  r4  r5  r1  rN   r2  rQ   r$   rÔ   r.  r„   r0  r  s     rA   r·   zYield.marshalM  s,  € ð ˆàŒ=Ð$Ø"&¤-ˆG�JÑàŒ;Ð"Ø $¤ˆG�HÑØÔÐ)Ø'+Ô'9ˆG�OÑ$ØÔÐ+Ø)-Ô)=ˆGÐ%Ñ&ØÔÐ'Ø%)Ô%5ˆG�MÑ"àŒ<ð 	CØŒ}Ð(Ø&*¤m�˜
Ñ#ØŒ|Ð'Ø%)¤\�˜	Ñ"ØÔ"Ð.Ø,0Ô,?�Ð(Ñ)ÝÔ&¨¬°g¸t¼|ÐLÐLàŒ{ð CÝÔ*¨D¬L¸'À4Ä9ÈdÌkÐZÐZØ”ð CÝÔ*¨D¬L¸'À4Ä9ÐMÐMåÔ*¨D¬L¸'ÐBÐBrC   rÖ  r  r<   rC   rA   r$   r$   R  s    € € € € € ð	ð 	ð €Lðð€Ið" ØØØØØØ $ØØ#Ø!%Ø!ð]'ð ]'ð ]'ð ]'ð~ ðyð yñ „\ðyðv#Cð #Cð #Cð #Cð #CrC   r$   )rR   )rj   FFFF)rj   T)rj   )`ÚrerW   rµ   Úpprintr   Útypingr   r   r   rè   Úautobahn.utilr   Úautobahn.wamp.exceptionr   r	   Úautobahn.wamp.roler
   rz  r6   Úautobahn.wampr   Ú_HAS_WAMP_FLATBUFFERSÚImportErrorÚ__all__Úcompilerf   ri   rg   rh   rr   ru   rs   rv   rq   rt   rL   r,   r-   ÚPAYLOAD_ENC_XBRr.   rP   ÚENC_ALGO_NONErÅ  rÆ  rÇ  Ú	ENC_ALGOSÚitemsÚENC_ALGOS_FROMSTRÚENC_SER_NONEr×  rØ  rÙ  rÚ  ÚENC_SER_OPAQUEÚENC_SER_FLATBUFFERSÚENC_SERSÚENC_SERS_FROMSTRr)   r*   r_   rK   r+   rŸ   r%   r&   r|   r'   r(   r…   Úobjectr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r§  r   r   r   r   r   r    r!   r"   r#   r$   r<   rC   rA   ú<module>r0     sÇ	  ðð6 
€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à €€€Ø Ð Ð Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 1Ð 1Ð 1Ð 1Ð 1Ð 1ð!Ø€L€L€LØÐÐÐØ)Ð)Ð)Ð)Ð)Ð)ð !ÐÐøð ð "ð "ð "Ø!ÐÐÐð"øøøð
"/€ðJ !�b”jÐ!EÑFÔFÐ ð %˜"œ*Ð%<Ñ=Ô=Ð ð %˜"œ*Ð%EÑFÔFÐ ð #- "¤*Ð-MÑ"NÔ"NÐ ð #˜œ
Ð#GÑHÔHÐ ð "�r”zÐ"FÑGÔGÐ ð '˜BœJÐ'EÑFÔFÐ ð &˜2œ:Ð&DÑEÔEÐ ð (˜RœZÐ(FÑGÔGÐ ð '˜BœJÐ'EÑFÔFÐ ð �B”JÐ7Ñ8Ô8Ð ð
 %Ð ð Ð ð €ð %;Ð<LÈoÐ#^Ð  ð $XÐ#WÐ#WÐ  à€ØÐ Ø€Ø€ð �6Ø˜Ø�6Ø�%ð	€	ð EÐD°)·/²/Ñ2CÔ2CÐDÑDÔDÐ à€Ø€Ø€Ø€Ø€Ø€ØÐ ð �&Ø�&Ø�YØ�&Ø�HØ�HØ˜ð€ð CÐB°·²Ñ1AÔ1AÐBÑBÔBÐ ðyð yð yð.Kð Kð Kð2ð ð ð ð¨ð °¸´ð ð ð ð ð: Z_ØV[Ø*/ð0ð 0˜cð 0¨Cð 0ÐRVð 0Ø/3ð0ØOSð0à#'ð0à47ð0ð 0ð 0ð 0ðf$>ð $>ð $>ð $>ðNð ˜Sð ¨3ð ÈCð ð ð ð ð*ð  ð ¨cð ÈtÐTWÐY\ÐT\Ì~ð ð ð ð ð(!ð !ð !ð !ðHl,ð l,ð l,ð l,ð l,ˆfñ l,ô l,ð l,ð^l9ð l9ð l9ð l9ð l9ˆGñ l9ô l9ð l9ð^r=ð r=ð r=ð r=ð r=ˆgñ r=ô r=ð r=ðjM:ð M:ð M:ð M:ð M:ˆGñ M:ô M:ð M:ð`BAð BAð BAð BAð BA�ñ BAô BAð BAðJBGð BGð BGð BGð BG�7ñ BGô BGð BGðJc<ð c<ð c<ð c<ð c<ˆgñ c<ô c<ð c<ðLiað iað iað iað iaˆGñ iaô iað iaðX	NQð NQð NQð NQð NQˆgñ NQô NQð NQðb?Hð ?Hð ?Hð ?Hð ?H�ñ ?Hô ?Hð ?HðDXZð XZð XZð XZð XZ�ñ XZô XZð XZðv?Jð ?Jð ?Jð ?Jð ?J�ñ ?Jô ?Jð ?JðDkOð kOð kOð kOð kO�'ñ kOô kOð kOð\b=ð b=ð b=ð b=ð b=�7ñ b=ô b=ð b=ðJq
Zð q
Zð q
Zð q
Zð q
ZˆGñ q
Zô q
Zð q
Zðh9>ð 9>ð 9>ð 9>ð 9>�Gñ 9>ô 9>ð 9>ðx_Rð _Rð _Rð _Rð _Rˆ7ñ _Rô _Rð _RðD~<ð ~<ð ~<ð ~<ð ~<ˆWñ ~<ô ~<ð ~<ðB`Dð `Dð `Dð `Dð `DˆWñ `Dô `Dð `DðF	^]ð ^]ð ^]ð ^]ð ^]ˆwñ ^]ô ^]ð ^]ðB?Jð ?Jð ?Jð ?Jð ?J�ñ ?Jô ?Jð ?JðDeNð eNð eNð eNð eN�ñ eNô eNð eNðPa=ð a=ð a=ð a=ð a=�7ñ a=ô a=ð a=ðHh[ð h[ð h[ð h[ð h[�ñ h[ô h[ð h[ðVR?ð R?ð R?ð R?ð R?�ñ R?ô R?ð R?ðj^Cð ^Cð ^Cð ^Cð ^CˆGñ ^Cô ^Cð ^Cð ^Cð ^Cs   ¶A ÁAÁA