§
    Ìtºf*Í  ã                   ó‚  — d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlmZ ej	        s& e
d¦  «          e
d¦  «          ej        d¦  «         d dlmZmZmZmZmZmZ d d	lmZmZmZmZmZmZ d d
lmZ d dlZd dlZd dlZd dlZd dlm Z  d dl!Z!d dl"Z"d dl#Z#d dl$Z$d dl%Z%d dl&Z'd dl(Z( e(j)        ¦   «          d dl*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dlm;Z;m<Z<m=Z=m>Z> d dlm?Z?m@Z@mAZA d dlmBZBmCZC d dlDmEZE d dlFmGZGmHZHmIZI g d¢ZJ G d„ de3¦  «        ZKd„ ZLd„ ZMeNdk    r eM¦   «          dS dS )é    N)ÚEnvironmentÚFileSystemLoader)Úxbr)Ú__version__z3
You must install the [xbr] extra to use xbrnetworkz)For example, "pip install autobahn[xbr]".é   )ÚXBR_DEBUG_TOKEN_ADDRÚXBR_DEBUG_NETWORK_ADDRÚXBR_DEBUG_DOMAIN_ADDRÚXBR_DEBUG_CATALOG_ADDRÚXBR_DEBUG_MARKET_ADDRÚXBR_DEBUG_CHANNEL_ADDR)ÚXBR_DEBUG_TOKEN_ADDR_SRCÚXBR_DEBUG_NETWORK_ADDR_SRCÚXBR_DEBUG_DOMAIN_ADDR_SRCÚXBR_DEBUG_CATALOG_ADDR_SRCÚXBR_DEBUG_MARKET_ADDR_SRCÚXBR_DEBUG_CHANNEL_ADDR_SRC)ÚFbsRepository)Úpformat)Úreactor)ÚinlineCallbacks)ÚdeferToThread)ÚReactorNotRunning)ÚApplicationSessionÚApplicationRunner)ÚCBORSerializer)Ú
cryptosign)ÚApplicationError)Úpack_uint256Úunpack_uint256Úsign_eip712_channel_openÚmake_w3)Úsign_eip712_member_registerÚsign_eip712_market_createÚsign_eip712_market_join)Ú	ActorTypeÚChannelType)Úload_or_create_profile)ÚhltypeÚhlidÚhlval)Úversionú
get-memberúregister-memberúregister-member-verifyú
get-marketúcreate-marketúcreate-market-verifyú	get-actorújoin-marketújoin-market-verifyúget-channelúopen-channelzclose-channelúdescribe-schemaúcodegen-schemac                   óÀ   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zedd„¦   «         Zed„ ¦   «         Z	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚClientz
tls-uniqueNc                 ó^  — t          j        | |¦  «         d| _        d| _        |j                             dd ¦  «        }|rš|j        r“t          |j        ¦  «        t          k    rt          |j        ¦  «        dk    sJ ‚|j        | _
        t          j                             | j
        ¦  «        | _        | j                             d| j        j        ¬¦  «         n\t%          j        d¦  «        | _
        t          j                             | j
        ¦  «        | _        | j                             d¦  «         |r7|j        r0|                      |¦  «         | j                             d¦  «         n6d | _        d | _        d | _        d | _        | j                             d	¦  «         d
| _        d S )Ni † é   Úprofileé    z8WAMP-Cryptosign keys with public key {public_key} loaded)Ú
public_keyz)WAMP-Cryptosign keys initialized randomlyz XBR ETH keys loaded from profilezXBR ETH keys left unsetT)r   Ú__init__Ú_default_gasÚ	_chain_idÚextraÚgetÚcskeyÚtypeÚbytesÚlenÚ
_cskey_rawr   ÚCryptosignKeyÚ
from_bytesÚ_keyÚlogÚinfor@   ÚosÚurandomÚethkeyÚset_ethkey_from_profileÚ_ethkey_rawÚ_ethkeyÚ_ethadrÚ_ethadr_rawÚ_running)ÚselfÚconfigr>   s      úP/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/xbr/_cli.pyrA   zClient.__init__`   s~  € ÝÔ# D¨&Ñ1Ô1Ð1ð #ˆÔØˆŒà”,×"Ò" 9¨dÑ3Ô3ˆàð 	G�w”}ð 	GÝ˜œÑ&Ô&­%Ò/Ð/µC¸¼Ñ4FÔ4FÈ"Ò4LÐ4LÐ4LÐ4LØ%œmˆDŒOÝ"Ô0×;Ò;¸D¼OÑLÔLˆDŒIØŒH�MŠMÐTÐaeÔajÔauˆMÑvÔvÐvÐvå œj¨™nœnˆDŒOÝ"Ô0×;Ò;¸D¼OÑLÔLˆDŒIØŒH�MŠMÐEÑFÔFÐFàð 	5�w”~ð 	5Ø×(Ò(¨Ñ1Ô1Ð1ØŒH�MŠMÐ<Ñ=Ô=Ð=Ð=à#ˆDÔØˆDŒLØˆDŒLØ#ˆDÔØŒH�MŠMÐ3Ñ4Ô4Ð4àˆŒˆˆó    c                 ó¤  — t          |j        ¦  «        t          k    s/J d                     t          |j        ¦  «        ¦  «        ¦   «         ‚t	          |j        ¦  «        dk    s/J d                     t	          |j        ¦  «        ¦  «        ¦   «         ‚|j        | _        t          j                             | j        ¦  «        | _	        t          j                             | j	        j                             ¦   «         ¦  «        | _        t!          j        | j        dd…         ¦  «        | _        | j                             d| j        ¬¦  «         dS )z3

        :param profile:
        :return:
        zBset_ethkey_from_profile::profile invalid type "{}" - must be bytesr?   z?set_ethkey_from_profile::profile invalid length {} - must be 32é   Nz%ETH keys with address {ethadr} loaded)Úethadr)rG   rR   rH   ÚformatrI   rT   Úeth_keysÚkeysÚ
PrivateKeyrU   Úweb3ÚWeb3ÚtoChecksumAddressr@   Úto_canonical_addressrV   ÚbinasciiÚa2b_hexrW   rN   rO   )rY   r>   s     r[   rS   zClient.set_ethkey_from_profile   s%  € õ ØŒNñô Ý$ò%ð %ð %Ø&j×&qÒ&qÝ�”Ñ Ô ñ'"ô '"ñ%ô %ð %õ �7”>Ñ"Ô" bÒ(Ð(Ð(Ð*k×*rÒ*rÝ�”ÑÔñ+!ô +!Ñ(Ô(Ð(à"œ>ˆÔÝ”}×/Ò/°Ô0@ÑAÔAˆŒÝ”y×2Ò2°4´<Ô3J×3_Ò3_Ñ3aÔ3aÑbÔbˆŒÝ#Ô+¨D¬L¸¸¸Ô,<Ñ=Ô=ˆÔØŒ�ŠÐ=ÀdÄlˆÑSÔSÐSÐSÐSr\   c                 óÀ  — | j         j        dk    r{| j                             ¦   «         d d | j        dœ}| j                             dt          | j         j        ¦  «        ¬¦  «         |                      | j         j        dg|¬¦  «         d S | j                             dt          | j         j        ¦  «        ¬¦  «         |                      | j         j        ¦  «         d S )NÚ
xbrnetwork)ÚpubkeyÚ	trustrootÚ	challengeÚchannel_bindingzTClient connected, now joining realm "{realm}" with WAMP-cryptosign authentication ..)Úrealmr   )ÚauthmethodsÚ	authextrazDClient connected, now joining realm "{realm}" (no authentication) ..)	rZ   rp   rM   r@   ÚCHANNEL_BINDINGrN   rO   r*   Újoin)rY   rr   s     r[   Ú	onConnectzClient.onConnect�   sß   € ØŒ;Ô Ò,Ð,àœ)×.Ò.Ñ0Ô0Ø!Ø!Ø#'Ô#7ð	ð ˆIð ŒH�MŠMÐpÝ $ T¤[Ô%6Ñ 7Ô 7ð ñ 9ô 9ð 9à�IŠI�d”kÔ'°l°^ÈyˆIÑYÔYÐYÐYÐYàŒH�MŠMÐ`Ý $ T¤[Ô%6Ñ 7Ô 7ð ñ 9ô 9ð 9à�IŠI�d”kÔ'Ñ(Ô(Ð(Ð(Ð(r\   c                 óþ   — |j         dk    rL| j                             || j        j        j                             | j        d ¦  «        | j        ¬¦  «        }|S t          d 	                    |j         ¦  «        ¦  «        ‚)Nr   )Ú
channel_idÚchannel_id_typez*unable to process authentication method {})
ÚmethodrM   Úsign_challengeÚ	transportÚtransport_detailsrw   rE   rs   ÚRuntimeErrorr`   )rY   rn   Úsigned_challenges      r[   ÚonChallengezClient.onChallenge    s�   € ØÔ˜|Ò+Ð+Ø#œy×7Ò7¸	ØCGÄ>ÔCcÔCn×CrÒCrÐswô  tHð  JNñ  DOô  DOØHLÔH\ð  8ñ  ^ô  ^Ðð $Ð#åÐK×RÒRÐS\ÔScÑdÔdÑeÔeÐer\   c           	   ƒ   óÄ  K  — | j                              dt          |j        ¦  «        t          |j        ¦  «        t          |j        ¦  «        t          |j        ¦  «        |¬¦  «         d| j        j        v r't          j
        | j        j        d         | |f¦  «         d| j        j        v r²	 |j        dk    r|                      |¦  «        ƒ d {V —† n|                      |¦  «        ƒ d {V —† n?# t          $ r2}| j                              ¦   «          || j        j        d<   Y d }~nd }~ww xY w|                      ¦   «          d S # |                      ¦   «          w xY wd S )NzbOk, client joined on realm "{realm}" [session={session}, authid="{authid}", authrole="{authrole}"])rp   ÚsessionÚauthidÚauthroleÚdetailsÚreadyÚcommandrk   Úerror)rN   rO   r*   rp   r�   r‚   rƒ   rZ   rD   ÚtxaioÚresolveÚ_do_xbrnetwork_realmÚ_do_market_realmÚ	ExceptionÚfailureÚleave)rY   r„   Úes      r[   ÚonJoinzClient.onJoin©   s€  è è € ØŒ�ŠØpÝ�w”}Ñ%Ô%Ý˜œÑ)Ô)Ý˜œÑ'Ô'Ý˜'Ô*Ñ+Ô+Øð 	ñ 	ô 	ð 	ð �d”kÔ'Ð'Ð'ÝŒM˜$œ+Ô+¨GÔ4°t¸W°oÑFÔFÐFà˜œÔ)Ð)Ð)ð	Ø”= LÒ0Ð0Ø×3Ò3°GÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<à×/Ò/°Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8øøÝð /ð /ð /Ø”× Ò Ñ"Ô"Ð"Ø-.�”Ô! 'Ñ*Ð*Ð*Ð*Ð*Ð*øøøøð/øøøð —
’
‘”���ø�—
’
‘”��øøøð *Ð)s1   Â/AC2 Ã1E Ã2
D.Ã<(D)Ä$E Ä)D.Ä.E ÅEc                 ó  — | j                              dt          |j        ¦  «        ¬¦  «         d| _        |j        dk    rG| j        rB| j        j        r8| j        j                             ¦   «          |                      ¦   «          d S d S d S d S )Nz%Client left realm (reason="{reason}"))ÚreasonFzwamp.close.normal)	rN   rO   r+   r’   rX   rZ   ÚrunnerÚstopÚ
disconnect)rY   r„   s     r[   ÚonLeavezClient.onLeaveÀ   s™   € ØŒ�ŠÐ=ÅeÈGÌNÑF[ÔF[ˆÑ\Ô\Ð\ØˆŒàŒ>Ð0Ò0Ð0ØŒ{ð "˜tœ{Ô1ð "à”Ô"×'Ò'Ñ)Ô)Ð)Ø—’Ñ!Ô!Ð!Ð!Ð!ð	 1Ð0ð"ð "ð "ð "r\   c                 ó„   — | j                              d¦  «         	 t          j        ¦   «          d S # t          $ r Y d S w xY w)NzClient disconnected)rN   rO   r   r”   r   )rY   s    r[   ÚonDisconnectzClient.onDisconnectÊ   sM   € ØŒ�ŠÐ+Ñ,Ô,Ð,ð	ÝŒL‰NŒNˆNˆNˆNøÝ ð 	ð 	ð 	ØˆDˆDð	øøøs   œ1 ±
?¾?c              ƒ   óv  K  — | j         j        d         }|j        dk    râ| j                             d¦  «         |dv sJ ‚|dk    r"|                      | j        ¦  «        ƒ d {V —† d S |dk    rB| j         j        d         }| j         j        d         }|                      ||¦  «        ƒ d {V —† d S |d	k    rB| j         j        d
         }| j         j        d         }|                      ||¦  «        ƒ d {V —† d S J d¦   «         ‚t          j
        |j        dd …         ¦  «        }|dv sJ ‚|dk    r"|                      | j        ¦  «        ƒ d {V —† d S |dk    r0| j         j        d         }|                      ||¦  «        ƒ d {V —† d S |dk    r�d| j         j        v r%| j         j        d         r| j         j        d         }nd }d| j         j        v r%| j         j        d         r| j         j        d         }	n| j        }	|                      ||	¦  «        ƒ d {V —† d S |dk    r¶| j         j        d         }| j         j        d         }
| j         j        d         }| j         j        d         }| j         j        d         }| j         j        d         }| j         j        d         }| j         j        d         }|                      |||
||||||¬¦	  «	        ƒ d {V —† d S |dk    rC| j         j        d
         }| j         j        d         }|                      |||¦  «        ƒ d {V —† d S |dk    rC| j         j        d         }| j         j        d         }|                      |||¦  «        ƒ d {V —† d S |d k    rC| j         j        d
         }| j         j        d         }|                      |||¦  «        ƒ d {V —† d S J d¦   «         ‚)!Nr†   Ú	anonymousz#not yet a member in the XBR network)r-   r.   r/   r-   r.   ÚusernameÚemailr/   ÚvactionÚvcodeFúshould not arrive hereé   )r-   r0   r1   r2   r3   r4   r5   r0   Úmarketr3   Úactorr1   ÚmarketmakerÚmarket_titleÚmarket_labelÚmarket_homepageÚmarket_provider_securityÚmarket_consumer_securityÚ
market_fee)ÚtitleÚlabelÚhomepageÚprovider_securityÚconsumer_securityr©   r2   r4   Ú
actor_typer5   )rZ   rD   rƒ   rN   rO   Ú_do_get_memberrW   Ú_do_onboard_memberÚ_do_onboard_member_verifyÚuuidÚUUIDr‚   Ú_do_get_marketÚ_do_get_actorÚ_do_create_marketÚ_do_create_market_verifyÚ_do_join_marketÚ_do_join_market_verify)rY   r„   r†   r›   rœ   Úvaction_oidÚvaction_codeÚ
member_oidÚ
market_oidr¢   r£   r¤   r¥   r¦   r­   r®   r©   r¯   s                     r[   rŠ   zClient._do_xbrnetwork_realmÑ   s·  è è € Ø”+Ô# IÔ.ˆØÔ˜{Ò*Ð*ØŒH�MŠMÐ?Ñ@Ô@Ð@àÐYÐYÐYÐYÐYØ˜,Ò&Ð&Ø×)Ò)¨$Ô*:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÐ-Ò-Ð-Øœ;Ô,¨ZÔ8�ØœÔ)¨'Ô2�Ø×-Ò-¨h¸Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÐ4Ò4Ð4Ø"œkÔ/°	Ô:�Ø#œ{Ô0°Ô9�Ø×4Ò4°[À,ÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOà6Ð6Ñ6Ô6Ð6õ œ 7¤>°!°"°"Ô#5Ñ6Ô6ˆJð ð Qð Qð Qð Qð Qà˜,Ò&Ð&Ø×)Ò)¨$Ô*:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø˜LÒ(Ð(Ø!œ[Ô.¨xÔ8�
Ø×)Ò)¨*°jÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAØ˜KÒ'Ð'Ø˜tœ{Ô0Ð0Ð0°T´[Ô5FÀxÔ5PÐ0Ø!%¤Ô!2°8Ô!<�J�Jà!%�JØ˜dœkÔ/Ð/Ð/°D´KÔ4EÀgÔ4NÐ/Ø œKÔ-¨gÔ6�E�Eà Ô,�EØ×(Ò(¨°UÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø˜OÒ+Ð+Ø!œ[Ô.¨xÔ8�
Ø"œkÔ/°Ô>�Ø#œ{Ô0°Ô@�Ø#œ{Ô0°Ô@�Ø"&¤+Ô"3Ð4EÔ"F�Ø$(¤KÔ$5Ð6PÔ$QÐ!Ø$(¤KÔ$5Ð6PÔ$QÐ!Ø!œ[Ô.¨|Ô<�
Ø×,Ò,¨Z¸À[ÐXdØ3?È/Ø?PÐduØ8Bð -ñ Dô Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Ð2Ò2Ð2Ø"œkÔ/°	Ô:�Ø#œ{Ô0°Ô9�Ø×3Ò3°JÀÈ\ÑZÔZÐZÐZÐZÐZÐZÐZÐZÐZÐZØ˜MÒ)Ð)Ø!œ[Ô.¨xÔ8�
Ø!œ[Ô.¨|Ô<�
Ø×*Ò*¨:°zÀ:ÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNÐNØÐ0Ò0Ð0Ø"œkÔ/°	Ô:�Ø#œ{Ô0°Ô9�Ø×1Ò1°*¸kÈ<ÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXÐXà6Ð6Ñ6Ô6Ð6r\   c              ƒ   ó`  K  — | j         j        d         }d|j        |j        |j        dœ}t          |¦  «        | _        t          j        | j        ¦  «         | j         j        d         }|dv sJ ‚|dk    rœ| j         j        d         }| j         j        d         }| j         j        d	         }|t          j
        k    r|                      ||¦  «        ƒ d {V —† d S |t          j        k    r|                      ||¦  «        ƒ d {V —† d S J d¦   «         ‚|dk    rŽ| j         j        d         }| j         j        d         pt          j        ¦   «         }| j         j        d	         }| j         j        d         }| j         j        d         }	|                      |||||	¦  «        ƒ d {V —† d S J d¦   «         ‚)Nr>   Úinfura)rG   ÚnetworkÚkeyÚsecretr†   )r7   r6   r6   r¡   ÚdelegateÚchannel_typeFrŸ   r7   ÚchannelÚamount)rZ   rD   Úinfura_networkÚ
infura_keyÚinfura_secretr"   Ú_w3r   ÚsetProviderr'   ÚPAYMENTÚ_do_get_active_payment_channelÚPAYINGÚ_do_get_active_paying_channelr³   Úuuid4Ú_do_open_channel)
rY   r„   r>   Úblockchain_gatewayr†   r¾   rÄ   rÅ   Úchannel_oidrÇ   s
             r[   r‹   zClient._do_market_realm  sì  è è € Ø”+Ô# IÔ.ˆð ØÔ-ØÔ%ØÔ+ð	
ð 
Ðõ Ð-Ñ.Ô.ˆŒÝŒ˜œÑ!Ô!Ð!à”+Ô# IÔ.ˆØÐ9Ð9Ð9Ð9Ð9Ø�mÒ#Ð#ØœÔ*¨8Ô4ˆJØ”{Ô(¨Ô4ˆHØœ;Ô,¨^Ô<ˆLØ�{Ô2Ò2Ð2Ø×9Ò9¸*ÀhÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOØ¥Ô!3Ò3Ð3Ø×8Ò8¸ÀXÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNÐNà6Ð6Ñ6Ô6Ð6Ø˜Ò&Ð&àœÔ*¨8Ô4ˆJð œ+Ô+¨IÔ6ÐF½$¼*¹,¼,ˆKð  œ;Ô,¨^Ô<ˆLð ”{Ô(¨Ô4ˆHð ”[Ô& xÔ0ˆFð ×'Ò'¨
°KÀÈxÐY_Ñ`Ô`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`à2Ð2Ñ2Ô2Ð2r\   c           	   ƒ   óî  K  — |                       d|¦  «        ƒ d {V —†}|�r†|                       d|¦  «        ƒ d {V —†}t          j                             |d         ¦  «        |d<   t	          j        |d         ¬¦  «        |d<   t          j                             t          |d         d         ¦  «        d¦  «        |d         d<   t          j                             t          |d         d	         ¦  «        d¦  «        |d         d	<   t          j	        |d
         d¦  «        |d
<   |d         }ddddddœ}| 
                    |d ¦  «        |d<   | j                             dt          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        ¬¦  «         |S | j                             dt          t!          j        |¦  «                             ¦   «         ¦  «        ¬¦  «         d S )Núxbr.network.is_memberú xbr.network.get_member_by_walletÚaddressÚoid©rH   ÚbalanceÚethÚetherr   ÚcreatedÚnsÚlevelÚACTIVEÚVERIFIEDÚRETIREDÚPENALTYÚBLOCKED)r   r^   é   r=   é   zZMember {member_oid} found for address 0x{member_adr} - current member level {member_level})Úmember_levelr½   Ú
member_adrú9Address 0x{member_adr} is not a member in the XBR network©ré   )Úcallrd   re   rf   r³   r´   ÚfromWeir    ÚnpÚ
datetime64rE   rN   rO   r+   r*   Úwarnrh   Úb2a_hexÚdecode)rY   ré   Ú	is_memberÚmember_datarè   ÚMEMBER_LEVEL_TO_STRs         r[   r°   zClient._do_get_memberD  s  è è € ØŸ)š)Ð$;¸ZÑHÔHÐHÐHÐHÐHÐHÐHˆ	Øñ 	SØ $§	¢	Ð*LÈjÑ YÔ YÐYÐYÐYÐYÐYÐYˆKå%)¤Y×%@Ò%@ÀÈYÔAWÑ%XÔ%XˆK˜	Ñ"Ý!%¤°¸UÔ1CÐ!DÑ!DÔ!DˆK˜ÑÝ,0¬I×,=Ò,=½nÈ[ÐYbÔMcÐdiÔMjÑ>kÔ>kÐmtÑ,uÔ,uˆK˜	Ô" 5Ñ)Ý,0¬I×,=Ò,=½nÈ[ÐYbÔMcÐdiÔMjÑ>kÔ>kÐmtÑ,uÔ,uˆK˜	Ô" 5Ñ)Ý%'¤]°;¸yÔ3IÈ4Ñ%PÔ%PˆK˜	Ñ"à& wÔ/ˆLð ààààð#ð #Ðð $7×#:Ò#:¸<ÈÑ#NÔ#NˆK˜Ñ àŒH�MŠMÐvÝ',¨[¸Ô-AÑ'BÔ'BÝ%)¨+°eÔ*<Ñ%=Ô%=Ý%*¨;°yÔ+AÑ%BÔ%Bð ñ Dô Dð Dð ÐàŒH�MŠMÐUÝ%*­8Ô+;¸JÑ+GÔ+G×+NÒ+NÑ+PÔ+PÑ%QÔ%Qð ñ Sô Sð Sð Sð Sr\   c           
   ƒ   ót  K  — |                       d|¦  «        ƒ d {V —†}|�rV|                       d|¦  «        ƒ d {V —†}t          j        |d         ¬¦  «        }t          j                             |d         ¦  «        }|d         }t          j                             t          |d         d         ¦  «        d	¦  «        }t          j                             t          |d         d
         ¦  «        d	¦  «        }| j         	                    dt          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        ¬¦  «         |r	|j        g}	n!|                       d|j        ¦  «        ƒ d {V —†}	|	�râ|	D �]Ü}|                       d||d         ¦  «        ƒ d {V —†}
|
D �]²}t          j                             |d         ¦  «        |d<   t          j        |d         d¦  «        |d<   |d         rt          |d         ¦  «        nd |d<   t          j        |d         ¬¦  «        |d<   |d         r3t          j                             t          |d         ¦  «        d	¦  «        nd |d<   |d         r/dt          j        |d         ¦  «                             ¦   «         z   nd |d<   |d         r/dt          j        |d         ¦  «                             ¦   «         z   nd |d<   |d         }ddddœ}|                     |d ¦  «        |d<   | j         	                    dt          t          j        |¬¦  «        ¦  «        t'          |¦  «        ¬¦  «         �Œ´�ŒÞd S | j         	                    d¦  «         d S | j                             d t          j        |¦  «                             ¦   «         ¬!¦  «         d S )"NrÖ   r×   rÙ   rÚ   rØ   rà   rÛ   rÜ   rÝ   r   z‚Found member with address {member_adr} (member level {member_level}, balances: {member_balance_eth} ETH, {member_balance_xbr} XBR))ré   rè   Úmember_balance_ethÚmember_balance_xbrz xbr.network.get_markets_by_actorzxbr.network.get_actor_in_marketr¢   Ú	timestamprß   Újoinedr¡   ÚsecurityÚ	signatureÚ0xÚtidr¯   ÚPROVIDERÚCONSUMERÚPROVIDER_CONSUMER)r   r^   ræ   z1Actor is joined to market {market_oid}:

{actor}
)r¾   r¢   z&Member is not yet actor in any market!rê   rë   )rì   r³   r´   rd   re   rf   rí   r    rN   rO   r*   r+   rH   rî   rï   rh   rñ   rò   rE   r   rð   )rY   r¾   Ú	actor_adrró   r¢   Ú	actor_oidÚactor_levelÚactor_balance_ethÚactor_balance_xbrÚmarket_oidsÚresultr¯   ÚACTOR_TYPE_TO_STRs                r[   r¶   zClient._do_get_actorg  s  è è € ØŸ)š)Ð$;¸YÑGÔGÐGÐGÐGÐGÐGÐGˆ	Øñ 3	KØŸ)š)Ð$FÈ	ÑRÔRÐRÐRÐRÐRÐRÐRˆEÝœ	¨¨e¬Ð5Ñ5Ô5ˆIÝœ	×3Ò3°E¸)Ô4DÑEÔEˆIØ œ.ˆKÝ $¤	× 1Ò 1µ.ÀÀyÔAQÐRWÔAXÑ2YÔ2YÐ[bÑ cÔ cÐÝ $¤	× 1Ò 1µ.ÀÀyÔAQÐRWÔAXÑ2YÔ2YÐ[bÑ cÔ cÐØŒH�MŠMð UÝ 	™?œ?Ý" ;Ñ/Ô/Ý#(Ð):Ñ#;Ô#;Ý#(Ð):Ñ#;Ô#;ð ñ =ô =ð =ð ð cØ)Ô/Ð0��à$(§I¢IÐ.PÐR[ÔRaÑ$bÔ$bÐbÐbÐbÐbÐbÐb�àñ HØ"-ð jñ j�Jà#'§9¢9Ð-NÐPZÐ\aÐbkÔ\lÑ#mÔ#mÐmÐmÐmÐmÐmÐm�FØ!'ð jñ j˜Ý)-¬×)DÒ)DÀUÈ7Ä^Ñ)TÔ)T˜˜g™Ý-/¬]¸5ÀÔ;MÈtÑ-TÔ-T˜˜kÑ*ØMRÐS[Ì_Ð*f­.¸¸x¼Ñ*IÔ*IÐ*IÐbf˜˜h™Ý*.¬)¸%À¼/Ð*JÑ*JÔ*J˜˜h™ØmrØ&ôn(ð -2­D¬I×,=Ò,=½nÈUÐS]ÔM^Ñ>_Ô>_ÐahÑ,iÔ,iÐ,iØ-1ð ˜jÑ)àejØ'ôf)ð .3¨TµHÔ4DÀUÈ;ÔEWÑ4XÔ4X×4_Ò4_Ñ4aÔ4aÑ-aÐ-aØ.2ð ˜kÑ*àY^Ð_dÔYeÐ'o t­hÔ.>¸uÀU¼|Ñ.LÔ.L×.SÒ.SÑ.UÔ.UÑ'UÐ'UÐko˜˜e™à%*¨<Ô%8˜
ð  *à)à2ð-ð -Ð)ð /@×.CÒ.CÀJÐPTÑ.UÔ.U˜˜lÑ+àœŸšÐ&\Ý15µd´iÀjÐ6QÑ6QÔ6QÑ1RÔ1RÕZaÐbgÑZhÔZhð &ñ jô jð jñ jñ-jðjð jð8 ”—’ÐFÑGÔGÐGÐGÐGàŒH�MŠMÐUÝ%-Ô%5°iÑ%@Ô%@×%GÒ%GÑ%IÔ%Ið ñ Kô Kð Kð Kð Kr\   c              #   ór  K  — t          j        | j                             ¦   «         ¦  «        }d}| j        }| j        }|j                             ¦   «         }|                      d¦  «        V —}	|                      d¦  «        V —}
|	d         }t          j        |	d         dd …         ¦  «        }|
d         d         }|	d	         d
         }||||dœ}t          j	        |¦  «        }t          j        ¦   «         }|                     |¦  «         t          j        t          j        |                     ¦   «         d¦  «        ¦  «        }t#          |||||||¦  «        }	 |                      d||||||||||||¦  «        V —}nf# t$          $ rJ}| j                             d|¬¦  «         |                      dt-          |¦  «        ¦  «         Y d }~d S d }~wt.          $ r}|‚d }~ww xY wt1          |¦  «        t2          k    sJ ‚d|v r*t1          |d         ¦  «        t4          k    r|d         dk    sJ ‚d|v r|d         dk    sJ ‚d|v r7t1          |d         ¦  «        t6          k    rt9          |d         ¦  «        dk    sJ ‚t;          j        |d         ¬¦  «        }| j                             d|¬¦  «         |S )NÚmetamaskúxbr.network.get_configúxbr.network.get_statusÚverifying_chain_idÚverifying_contract_adrr^   ÚblockÚnumberÚeulaÚhash)Úmember_usernameÚmember_emailÚclient_pubkeyÚwallet_typeúsha2-256zxbr.network.onboard_memberúApplicationError: {error}©r‡   z
wamp.errorrù   r   ÚactionÚonboard_memberr»   é   rÚ   z9On-boarding member - verification "{vaction_oid}" created©r»   ) rh   ri   rM   r@   rU   rT   rg   rì   Úcbor2ÚdumpsÚhashlibÚsha256ÚupdateÚ	multihashÚto_b58_stringÚencodeÚdigestr#   r   rN   r‡   rŽ   ÚstrrŒ   rG   ÚdictÚintrH   rI   r³   r´   rO   )rY   r  r  Úmember_passwordr  r  Ú
wallet_keyÚ
wallet_rawÚ
wallet_adrrZ   ÚstatusÚverifyingChainÚverifyingContractÚ
registeredr  Úprofile_objÚprofile_dataÚhr>   rü   r  r�   r»   s                          r[   r±   zClient._do_onboard_memberž  s  è è € å Ô(¨¬×)=Ò)=Ñ)?Ô)?Ñ@Ô@ˆð !ˆð ”\ˆ
ØÔ%ˆ
ð  Ô*×?Ò?ÑAÔAˆ
à—y’yÐ!9Ñ:Ô:Ð:Ð:ˆØ—y’yÐ!9Ñ:Ô:Ð:Ð:ˆàÐ 4Ô5ˆÝ$Ô,¨VÐ4LÔ-MÈaÈbÈbÔ-QÑRÔRÐà˜G”_ XÔ.ˆ
Ø�fŒ~˜fÔ%ˆð  /Ø(Ø*Ø&ð	
ð 
ˆõ ”{ ;Ñ/Ô/ˆÝŒNÑÔˆØ	�Š�ÑÔÐõ Ô)­)Ô*:¸1¿8º8¹:¼:ÀzÑ*RÔ*RÑSÔSˆå/°
¸NÐL]Ø0:¸JÈÈgñWô Wˆ	ð
	ØŸ9š9Ð%AØ%4°lÀMÐS^Ð`jØ%3°ZÐARÐTXÐZaÐcoØ%.ñ0ô 0ð 0ð 0ˆFˆFøõ  ð 	ð 	ð 	ØŒH�NŠNÐ6¸aˆNÑ@Ô@Ð@Ø�JŠJ�|¥S¨¡V¤VÑ,Ô,Ð,ØˆFˆFˆFˆFˆFøøøøÝð 	ð 	ð 	ØˆGøøøøð	øøøõ �F‰|Œ|�tÒ#Ð#Ð#Ð#Ø˜fÐ$Ð$­¨f°[Ô.AÑ)BÔ)BÅcÒ)IÐ)IÈfÐU`ÔNaÐdeÒNeÐNeÐNeÐNeØ˜6Ð!Ð! f¨XÔ&6Ð:JÒ&JÐ&JÐ&JÐ&JØ Ð&Ð&­4°°}Ô0EÑ+FÔ+FÍ%Ò+OÐ+OÕTWÐX^Ð_lÔXmÑTnÔTnÐrtÒTtÐTtÐTtÐTtå”i f¨]Ô&;Ð<Ñ<Ô<ˆØŒ�ŠÐQÐ_jˆÑkÔkÐkàˆs$   Å#F Æ
G$Æ?GÇG$ÇGÇG$c              #   óð  K  — | j                              d||¬¦  «         	 |                      d|j        |¦  «        V —}n0# t          $ r#}| j                              d|¬¦  «         |‚d }~ww xY wt          |¦  «        t          k    sJ ‚d|v r7t          |d         ¦  «        t          k    rt          |d         ¦  «        dk    sJ ‚d|v r*t          |d         ¦  «        t          k    r|d         d	k    sJ ‚|d         }| j                              d
t          t          j        |¬¦  «        ¦  «        t          dt          j        |d         ¦  «                             ¦   «         z   ¦  «        ¬¦  «         |S )NzPVerifying member using vaction_oid={vaction_oid}, vaction_code={vaction_code} ..©r»   r¼   z!xbr.network.verify_onboard_memberr  r  r½   r  rÞ   r   zUSUCCESS! New XBR Member onboarded: member_oid={member_oid}, transaction={transaction}rÚ   rý   Útransaction)r½   r8  )rN   rO   rì   rH   r   r‡   rG   r)  rI   r*  r*   r³   r´   r+   rh   rñ   rò   )rY   r»   r¼   r  r�   r½   s         r[   r²   z Client._do_onboard_member_verifyß  s¡  è è € ð 	Œ�ŠÐhØ"-¸Lð 	ñ 	Jô 	Jð 	Jð	ØŸ9š9Ð%HÈ+ÔJ[Ð]iÑjÔjÐjÐjˆFˆFøÝð 	ð 	ð 	ØŒH�NŠNÐ6¸aˆNÑ@Ô@Ð@ØˆGøøøøð	øøøõ �F‰|Œ|�tÒ#Ð#Ð#Ð#Ø˜vÐ%Ð%­$¨v°lÔ/CÑ*DÔ*DÍÒ*MÐ*MÕRUÐV\Ð]iÔVjÑRkÔRkÐoqÒRqÐRqÐRqÐRqØ˜FÐ"Ð"¥t¨F°9Ô,=Ñ'>Ô'>Å#Ò'EÐ'EÈ&ÐQZÔJ[Ð^_ÒJ_ÐJ_ÐJ_ÐJ_à˜LÔ)ˆ
ØŒ�ŠÐmÝ!%¥d¤i°jÐ&AÑ&AÔ&AÑ!BÔ!BÝ"'¨­xÔ/?ÀÀ}Ô@UÑ/VÔ/V×/]Ò/]Ñ/_Ô/_Ñ(_Ñ"`Ô"`ð 	ñ 	bô 	bð 	bð ˆs   ¡A  Á 
A-Á
A(Á(A-r   c
              ƒ   ó  K  — |                       d|j        ¦  «        ƒ d {V —†}
|
d         }|                       d¦  «        ƒ d {V —†}|d         }t          j        |d         dd …         ¦  «        }t          j        |d         d         dd …         ¦  «        }|                       d	¦  «        ƒ d {V —†}|d
         d         }|                       d¦  «        ƒ d {V —†}t	          |¦  «        }| j                             d|¬¦  «         |                       d|j        ¦  «        ƒ d {V —†}t	          |¦  «        }| j                             d|¬¦  «         d                     t          j	        dd¦  «        ¦  «         
                    d¦  «        }t          j        ¦   «         }|                     |¦  «         t          t          j        t          j
        |                     ¦   «         d¦  «        ¦  «        ¦  «        }|||||j        |j        dœ}t%          j        |¦  «        }t          j        ¦   «         }|                     |¦  «         t          j        t          j
        |                     ¦   «         d¦  «        ¦  «        }t)          | j        |||||j        |||||||	¦  «        }t-          |¦  «        }t-          |¦  «        }t-          |	¦  «        }	|||dœ}|                       d|j        |j        |||||||||||	||¦  «        ƒ d {V —†}| j                             dt/          |¦  «        ¬¦  «         t1          |¦  «        t2          k    sJ ‚d|v r*t1          |d         ¦  «        t4          k    r|d         dk    sJ ‚d|v r|d         dk    sJ ‚d|v r7t1          |d         ¦  «        t          k    rt	          |d         ¦  «        d k    sJ ‚t7          j        |d         ¬!¦  «        }| j                             d"|¬#¦  «         d S )$Núxbr.network.get_memberrØ   r  r  r  r^   Ú	contractsÚxbrtokenr  r  r  úxbr.network.find_marketsz)Total markets before: {cnt_market_before})Úcnt_market_beforeú xbr.network.get_markets_by_ownerz.Market for owner: {cnt_market_by_owner_before}©Úcnt_market_by_owner_beforez&these are my market terms (randint={})r   iè  Úutf8r  )Úchain_idÚblock_numberÚcontract_adrré   r½   r¾   )rª   r«   r¬   zxbr.network.create_marketzLSUCCESS: Create market request submitted: 
{createmarket_request_submitted}
)Úcreatemarket_request_submittedrù   r  Úcreate_marketr»   r  rÚ   z8SUCCESS: New Market verification "{vaction_oid}" createdr  )rì   rH   rh   ri   rI   rN   rO   r`   ÚrandomÚrandintr&  r!  r"  r#  r(  r$  r%  r'  r  r   r$   rT   r   r   rG   r)  r*  r³   r´   )rY   r½   r¾   r£   rª   r«   r¬   r­   r®   r©   rô   ré   rZ   r0  r1  Úcoin_adrr/  rD  Úresr>  rA  Ú
terms_datar5  Ú
terms_hashÚmeta_objÚ	meta_dataÚ	meta_hashrü   Ú
attributesrF  r»   s                                  r[   r·   zClient._do_create_marketõ  sÕ  è è € à ŸIšIÐ&>À
Ô@PÑQÔQÐQÐQÐQÐQÐQÐQˆØ  Ô+ˆ
à—y’yÐ!9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:ˆàÐ 4Ô5ˆÝ$Ô,¨VÐ4LÔ-MÈaÈbÈbÔ-QÑRÔRÐåÔ# F¨;Ô$7¸
Ô$CÀAÀBÀBÔ$GÑHÔHˆà—y’yÐ!9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:ˆØ˜g” xÔ0ˆð —I’IÐ8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9ˆÝ ™HœHÐØŒ�ŠÐAÐUfˆÑgÔgÐgà—I’IÐ@À*ÔBRÑSÔSÐSÐSÐSÐSÐSÐSˆÝ%(¨¡X¤XÐ"ØŒ�ŠÐFØ1Kð 	ñ 	Mô 	Mð 	Mð >×DÒDÅVÄ^ÐTUÐW[ÑE\ÔE\Ñ]Ô]×dÒdÐekÑlÔlˆ
ÝŒNÑÔˆØ	�Š�ÑÔÐÝ�Ô0µÔ1AÀ!Ç(Â(Á*Ä*ÈjÑ1YÔ1YÑZÔZÑ[Ô[ˆ
ð
 'Ø(Ø-Ø$Ø$Ô*Ø$Ô*ð
ð 
ˆõ ”K Ñ)Ô)ˆ	ÝŒNÑÔˆØ	�Š�ÑÔÐÝÔ+­IÔ,<¸Q¿XºX¹Z¼ZÈÑ,TÔ,TÑUÔUˆ	õ .¨dÔ.>ÀÐPaÐcmØ.:¸JÔ<LÈhÐXbÐdmØ.9Ð;LÐN_Ðakñmô mˆ	õ
 )Ð):Ñ;Ô;ÐÝ(Ð):Ñ;Ô;ÐÝ! *Ñ-Ô-ˆ
ð ØØ ð
ð 
ˆ
ð 04¯yªyÐ9TÐV`ÔVfØ9CÔ9IÈ>Ð[gØ9JÈHÐV`ÐbkÐmvØ9DÐFWÐYjÐlvØ9BÀJñ	0Pô 0Pð *Pð *Pð *Pð *Pð *Pð *PÐ&ð 	Œ�ŠÐfÝ5<Ð=[Ñ5\Ô5\ð 	ñ 	^ô 	^ð 	^õ Ð2Ñ3Ô3µtÒ;Ð;Ð;Ð;ØÐ<Ð<Ð<ÅØ*¨;Ô7ñB9ô B9Ý<?òB@ð B@ØDbÐcnÔDoÐrsÒDsÐDsÐDsÐDsØÐ9Ð9Ð9Ð>\Øô?Ø(ò?)ð ?)ð ?)ð ?)àÐ >Ð>Ð>Å4Ø*¨=Ô9ñD;ô D;Ý>CòDDð DDÝHKØ*¨=Ô9ñI;ô I;Ø>@òIAð IAð IAð IAõ ”iÐ&DÀ]Ô&SÐTÑTÔTˆØŒ�ŠÐPÐ^iˆÑjÔjÐjÐjÐjr\   c              ƒ   ó  K  — | j                              d||¬¦  «         |                      d|j        |¦  «        ƒ d {V —†}| j                              dt	          |¦  «        ¬¦  «         t          |¦  «        t          k    sJ ‚d|v r7t          |d         ¦  «        t          k    rt          |d         ¦  «        dk    sJ ‚d|v r*t          |d         ¦  «        t          k    r|d         d	k    sJ ‚|d         }| j                              d
t          j
        |¬¦  «        t	          |¦  «        ¬¦  «         |                      d¦  «        ƒ d {V —†}| j                              dt          |¦  «        ¬¦  «         t          |¦  «        }| j                              d|¬¦  «         ||v s>J d                     t          j
        |¬¦  «        t          |¦  «        ¦  «        ¦   «         ‚|                      d|j        ¦  «        ƒ d {V —†}| j                              dt          |¦  «        ¬¦  «         t          |¦  «        }| j                              d|¬¦  «         ||v s>J d                     t          j
        |¬¦  «        t          |¦  «        ¦  «        ¦   «         ‚|D ]e}| j                              d|¬¦  «         |                      d|d¬¦  «        ƒ d {V —†}	| j                              dt	          |	¦  «        ¬¦  «         Œfd S )NzWVerifying create market using vaction_oid={vaction_oid}, vaction_code={vaction_code} ..r7  z xbr.network.verify_create_marketzBCreate market request verified: 
{create_market_request_verified}
)Úcreate_market_request_verifiedr¾   r  rÞ   r   zJSUCCESS! New XBR market created: market_oid={market_oid}, result=
{result}rÚ   )r¾   r  r=  z3SUCCESS - find_markets: found {cnt_markets} markets)Úcnt_marketsz'Total markets after: {cnt_market_after})Úcnt_market_afterzFexpected to find market ID {}, but not found in {} returned market IDsr?  z;SUCCESS - get_markets_by_owner: found {cnt_markets} marketsz-Market for owner: {cnt_market_by_owner_after}r@  z2xbr.network.get_market(market_oid={market_oid}) ..©r¾   úxbr.network.get_marketT)Úinclude_attributesz*SUCCESS: got market information

{market}
)r¡   )rN   rO   rì   rH   r   rG   r)  rI   r*  r³   r´   r`   )
rY   r½   r»   r¼   rS  r¾   r  rU  Úcnt_market_by_owner_afterr¡   s
             r[   r¸   zClient._do_create_market_verifyQ  sÆ  è è € ØŒ�ŠÐoØ"-¸Lð 	ñ 	Jô 	Jð 	Jð 04¯yªyÐ9[Ð]hÔ]nØ9Eñ0Gô 0Gð *Gð *Gð *Gð *Gð *Gð *GÐ&ð 	Œ�ŠÐ\Ý5<Ð=[Ñ5\Ô5\ð 	ñ 	^ô 	^ð 	^õ Ð2Ñ3Ô3µtÒ;Ð;Ð;Ð;ØÐ=Ð=Ð=Å$Ø*¨<Ô8ñC:ô C:Ý=BòCCð CCÝGJØ*¨<Ô8ñH:ô H:Ø=?òH@ð H@ð H@ð H@àÐ:Ð:Ð:½tØ*¨9Ô5ñ@7ô @7Ý:=ò@>ð @>ØB`ÐajÔBkÐnoÒBoÐBoÐBoÐBoà3°LÔAˆ
ØŒ�ŠÐcÝ!%¤°Ð!<Ñ!<Ô!<ÅWÐMkÑElÔElð 	ñ 	nô 	nð 	nð !ŸIšIÐ&@ÑAÔAÐAÐAÐAÐAÐAÐAˆØŒ�ŠÐKÕY\Ð]hÑYiÔYiˆÑjÔjÐjõ ˜{Ñ+Ô+ÐØŒ�ŠÐ?ÐRbˆÑcÔcÐcØ˜[Ð(Ð(Ð(Ð*r×*yÒ*yÝŒI˜JÐ'Ñ'Ô'­¨[Ñ)9Ô)9ñ+;ô +;Ñ(Ô(Ð(ð !ŸIšIÐ&HÈ*ÔJZÑ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[ˆØŒ�ŠÐSÕadÐepÑaqÔaqˆÑrÔrÐrõ %(¨Ñ$4Ô$4Ð!ØŒ�ŠÐEØ1Jð 	ñ 	Lô 	Lð 	Là˜[Ð(Ð(Ð(Ð*r×*yÒ*yÝŒI˜JÐ'Ñ'Ô'­¨[Ñ)9Ô)9ñ+;ô +;Ñ(Ô(Ð(ð &ð 	cð 	cˆJØŒH�MŠMÐNÐ[eˆMÑfÔfÐfØŸ9š9Ð%=¸zÐ^b˜9ÑcÔcÐcÐcÐcÐcÐcÐcˆFØŒH�MŠMÐIÕRYÐZ`ÑRaÔRaˆMÑbÔbÐbÐbð	cð 	cr\   c           	   ƒ   ó¶  K  — |                       d|j        ¦  «        ƒ d {V —†}|d         }|                       d|j        ¦  «        ƒ d {V —†}|�r`|d         |k    r| j                             d¦  «         nL| j                             dt	          t
          j                             |d         ¦  «        ¦  «        ¬¦  «         t          j	        |d         ¬	¦  «        |d<   t
          j                             |d         ¦  «        |d<   t
          j                             |d
         ¦  «        |d
<   t
          j                             |d         ¦  «        |d<   t          j        |d         d¦  «        |d<   | j                             dt	          |¦  «        t          |¦  «        ¬¦  «         d S | j                             dt	          |¦  «        ¬¦  «         d S )Nr:  rØ   rW  Úownerz You are market owner (operator)!zMarked is owned by {owner})r[  r¡   rÚ   ÚmakerÚcoinrù   rß   z+Market {market_oid} information:

{market}
)r¾   r¡   zNo market {market_oid} found!rV  )rì   rH   rN   rO   r*   rd   re   rf   r³   r´   rî   rï   r   rð   )rY   r½   r¾   rô   ré   r¡   s         r[   rµ   zClient._do_get_market~  sÃ  è è € Ø ŸIšIÐ&>À
Ô@PÑQÔQÐQÐQÐQÐQÐQÐQˆØ  Ô+ˆ
Ø—y’yÐ!9¸:Ô;KÑLÔLÐLÐLÐLÐLÐLÐLˆØñ 	XØ�gŒ *Ò,Ð,Ø”—’Ð@ÑAÔAÐAÐAà”—’Ð:Å$ÅtÄy×GbÒGbÐciÐjqÔcrÑGsÔGsÑBtÔBt�ÑuÔuÐuå#œy¨v°hÔ/?Ð@Ñ@Ô@ˆF�8ÑÝ"œi×9Ò9¸&À¼/ÑJÔJˆF�7‰OÝ"œi×9Ò9¸&À¼/ÑJÔJˆF�7‰OÝ!œY×8Ò8¸À¼ÑHÔHˆF�6‰NÝ"$¤-°°{Ô0CÀTÑ"JÔ"JˆF�;ÑàŒH�MŠMÐJÝ%)¨*Ñ%5Ô%5½gÀf¹o¼oð ñ Oô Oð Oð Oð Oð ŒH�MŠMÐ9ÅdÈ:ÑFVÔFVˆMÑWÔWÐWÐWÐWr\   c              ƒ   ó~  K  — |t           j        t           j        t           j        fv sJ ‚|                      d|j        ¦  «        ƒ d {V —†}|d         }|                      d¦  «        ƒ d {V —†}|d         }t          j        |d         dd …         ¦  «        }|                      d¦  «        ƒ d {V —†}	|	d         d	         }
i }t          j	        |¦  «        }t          j        ¦   «         }|                     |¦  «         t          j        t          j        |                     ¦   «         d
¦  «        ¦  «        }t#          | j        ||||
|j        ||¦  «        }|                      d|j        |j        ||
|||||¦
  «
        ƒ d {V —†}t'          j        |d         ¬¦  «        }| j                             d|¬¦  «         d S )Nr:  rØ   r  r  r  r^   r  r  r  r  zxbr.network.join_marketr»   rÚ   zESUCCESS! XBR market join request submitted: vaction_oid={vaction_oid}r  )r&   r   rÿ   r  rì   rH   rh   ri   r  r   r!  r"  r#  r$  r%  r&  r'  r%   rT   r³   r´   rN   rO   )rY   r½   r¾   r¯   rô   ré   rZ   r0  r1  r/  rD  rN  rO  r5  rP  rü   Úrequest_submittedr»   s                     r[   r¹   zClient._do_join_market“  sõ  è è € à�iÔ0µ)Ô2DÅiÔFaÐbÐbÐbÐbÐbà ŸIšIÐ&>À
Ô@PÑQÔQÐQÐQÐQÐQÐQÐQˆØ  Ô+ˆ
à—y’yÐ!9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:ˆØÐ 4Ô5ˆÝ$Ô,¨VÐ4LÔ-MÈaÈbÈbÔ-QÑRÔRÐà—y’yÐ!9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:ˆØ˜g” xÔ0ˆð
ˆå”K Ñ)Ô)ˆ	ÝŒNÑÔˆØ	�Š�ÑÔÐÝÔ+­IÔ,<¸Q¿XºX¹Z¼ZÈÑ,TÔ,TÑUÔUˆ	å+¨DÔ,<¸nÐN_ÐakØ,8¸*Ô:JÈJÐXañcô cˆ	ð #'§)¢)Ð,EÀzÔGWÐYcÔYiØ,:¸LÐJ[Ø,6¸	À9Èiñ#Yô #Yð Yð Yð Yð Yð Yð YÐõ ”iÐ&7¸Ô&FÐGÑGÔGˆØŒ�ŠÐ]ÐkvˆÑwÔwÐwÐwÐwr\   c              ƒ   óª   K  — |                       d|j        |¦  «        ƒ d {V —†}|d         }|d         }| j                             d|||¬¦  «         d S )Nzxbr.network.verify_join_marketr¾   r¯   zeSUCCESS! XBR market joined: member_oid={member_oid}, market_oid={market_oid}, actor_type={actor_type})r½   r¾   r¯   )rì   rH   rN   rO   )rY   r½   r»   r¼   Úrequest_verifiedr¾   r¯   s          r[   rº   zClient._do_join_market_verify²  s}   è è € Ø!%§¢Ð+KÈ[ÔM^Ð`lÑ!mÔ!mÐmÐmÐmÐmÐmÐmÐØ% lÔ3ˆ
Ø% lÔ3ˆ
ØŒ�ŠØsØ!¨jÀZð 	ñ 	Qô 	Qð 	Qð 	Qð 	Qr\   c           	   ƒ   óp  K  — |                       d|¦  «        ƒ d {V —†}| j                             dt          |¦  «        ¬¦  «         |rÒ| j                             dt          t          |d         ¦  «        dz  ¦  «        ¬¦  «         |                       d|d	         ¦  «        ƒ d {V —†}| j                             d
t          |¦  «        ¬¦  «         | j                             dt          t          |d         ¦  «        dz  ¦  «        |d         ¬¦  «         d S | j                             d¦  «         d S )Nz*xbr.marketmaker.get_active_payment_channelú	{channel}©rÆ   z5Active buyer (payment) channel found: {amount} amountrÇ   ì     ÈNÎZo©rÇ   z+xbr.marketmaker.get_payment_channel_balancerÔ   ú	{balance}úECurrent off-chain amount remaining: {remaining} [sequence {sequence}]Ú	remainingÚseq©ri  Úsequencez(No active buyer (payment) channel found!©rì   rN   Údebugr   rO   r*  r    ©rY   r¾   Údelegate_adrrÆ   rÛ   s        r[   rÎ   z%Client._do_get_active_payment_channelº  sU  è è € ØŸ	š	Ð"NÐP\Ñ]Ô]Ð]Ð]Ð]Ð]Ð]Ð]ˆØŒ�Š�{­G°GÑ,<Ô,<ˆÑ=Ô=Ð=Øð 	FØŒH�MŠMÐQÝ!$¥^°G¸HÔ4EÑ%FÔ%FÈÑ%QÑ!RÔ!Rð ñ Tô Tð Tà ŸIšIÐ&SÐU\Ð]jÔUkÑlÔlÐlÐlÐlÐlÐlÐlˆGØŒH�NŠN˜;µ¸Ñ0@Ô0@ˆNÑAÔAÐAØŒH�MŠMÐaÝ$'­°w¸{Ô7KÑ(LÔ(LÈxÑ(WÑ$XÔ$XÐcjÐkpÔcqð ñ sô sð sð sð sð ŒH�MŠMÐDÑEÔEÐEÐEÐEr\   c           	   ƒ   óp  K  — |                       d|¦  «        ƒ d {V —†}| j                             dt          |¦  «        ¬¦  «         |rÒ| j                             dt          t          |d         ¦  «        dz  ¦  «        ¬¦  «         |                       d|d	         ¦  «        ƒ d {V —†}| j                             d
t          |¦  «        ¬¦  «         | j                             dt          t          |d         ¦  «        dz  ¦  «        |d         ¬¦  «         d S | j                             d¦  «         d S )Nz)xbr.marketmaker.get_active_paying_channelrc  rd  z5Active seller (paying) channel found: {amount} amountrÇ   re  rf  z*xbr.marketmaker.get_paying_channel_balancerÔ   rg  rh  ri  rj  rk  z(No active seller (paying) channel found!rm  ro  s        r[   rÐ   z$Client._do_get_active_paying_channelÇ  sT  è è € ØŸ	š	Ð"MÈ|Ñ\Ô\Ð\Ð\Ð\Ð\Ð\Ð\ˆØŒ�Š�{­G°GÑ,<Ô,<ˆÑ=Ô=Ð=Øð 	FØŒH�MŠMÐQÝ!$¥^°G¸HÔ4EÑ%FÔ%FÈÑ%QÑ!RÔ!Rð ñ Tô Tð Tà ŸIšIÐ&RÐT[Ð\iÔTjÑkÔkÐkÐkÐkÐkÐkÐkˆGØŒH�NŠN˜;µ¸Ñ0@Ô0@ˆNÑAÔAÐAØŒH�MŠMÐaÝ$'­°w¸{Ô7KÑ(LÔ(LÈxÑ(WÑ$XÔ$XÐcjÐkpÔcqð ñ sô sð sð sð sð ŒH�MŠMÐDÑEÔEÐEÐEÐEr\   c              ƒ   óT  K  — | j         }| j        j                             ¦   «         }|                      d¦  «        ƒ d {V —†}t          j        |d         dd …         ¦  «        }	t          j        |d         dd …         ¦  «        }
|d         }t          j        |d         dd …         ¦  «        }|                      d¦  «        ƒ d {V —†}|d         d	         }|d
k    rº|t          j        k    r|}t          j
        j        }n.|t          j        k    r|	}t          j
        j        }n
J d¦   «         ‚	 t          | j        |||¦  «        ƒ d {V —†}| j                             d|¬¦  «         n-# t"          $ r }| j                             ¦   «          |‚d }~ww xY wt'          ||||||j        |j        |||	|
|¦  «        }d }|                      d||j        |j        ||||||	|
t+          |¦  «        ||¦  «        ƒ d {V —†}| j                             dt-          |¦  «        ¬¦  «         d S )Nzxbr.marketmaker.get_configr£   r^   r[  r  r  zxbr.marketmaker.get_statusr  r  r   FrŸ   z*transaction submitted, txn_hash={txn_hash})Útxn_hashzxbr.marketmaker.open_channelz3Channel open request submitted:

{channel_request}
)Úchannel_request)rT   rU   r@   rg   rì   rh   ri   r'   rÍ   r   Ú
xbrchannelrØ   rÏ   r   Ú_send_AllowancerN   rO   rŒ   r�   r!   rH   r   r   )rY   r¾   rÔ   rÅ   rÄ   rÇ   Ú
member_keyré   rZ   r£   Ú	recipientr  r  r/  Úcurrent_block_numberÚfrom_adrÚto_adrrs  r�   rü   rQ  rt  s                         r[   rÒ   zClient._do_open_channelÔ  s§  è è € ØÔ%ˆ
Ø”\Ô,×AÒAÑCÔCˆ
à—y’yÐ!=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>ˆÝÔ& v¨mÔ'<¸Q¸R¸RÔ'@ÑAÔAˆÝÔ$ V¨G¤_°Q°R°RÔ%8Ñ9Ô9ˆ	Ø#Ð$8Ô9ÐÝ!)Ô!1°&Ð9QÔ2RÐSTÐSUÐSUÔ2VÑ!WÔ!WÐà—y’yÐ!=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>ˆØ% gœ¨xÔ8Ðà�AŠ:ˆ:Ø�{Ô2Ò2Ð2Ø%�ÝœÔ/��Ø¥Ô!3Ò3Ð3Ø&�ÝœÔ/��à6Ð6Ñ6Ô6Ð6ðÝ!.¨tÔ/CÀXÈvÐW]Ñ!^Ô!^Ð^Ð^Ð^Ð^Ð^Ð^�Ø”—’ÐJÐU]�Ñ^Ô^Ð^Ð^øÝð ð ð Ø”× Ò Ñ"Ô"Ð"Ø�øøøøðøøøõ
 -¨ZÐ9KÐMcÐeqØ-AÀ:ÔCSÐU`ÔUfØ-7¸À;ÐPYÐ[añcô cˆ	ð ˆ
Ø $§	¢	Ð*HÈ*ÐV`ÔVfØ*5Ô*;Ð=OÐQeØ*@À,ÐPXÐZeÐgpÝ*6°vÑ*>Ô*>À	È:ñ!Wô !Wð Wð Wð Wð Wð Wð Wˆð
 	Œ�ŠÐNÝ&-¨oÑ&>Ô&>ð 	ñ 	@ô 	@ð 	@ð 	@ð 	@s   Ä39E- Å-
FÅ7FÆFc           	      ó"  — | j         }| j                             dd¦  «        }| j        }| j        j                             |d¬¦  «        }| j                             dt          | j	        ¦  «        |¬¦  «         t          j        j                             ||¦  «                             |||| j        |dœ¦  «        }| j                             dt          | j	        ¦  «        |¬	¦  «         | j        j        j                             || j        ¬
¦  «        }| j                             dt          | j	        ¦  «        t'          t)          j        |j        ¦  «                             ¦   «         ¦  «        ¬¦  «         | j        j                             |j        ¦  «        }	t3          |	¦  «        }	| j                             dt          | j	        ¦  «        t'          t)          j        |	¦  «                             ¦   «         ¦  «        ¬¦  «         |	S )NÚ10ÚgweiÚpending)Úblock_identifierz9{func}::[1/4] - Ethereum transaction nonce: nonce={nonce})ÚfuncÚnonce)ÚfromÚgasÚgasPriceÚchainIdr‚  zQ{func}::[2/4] - Ethereum transaction created: raw_transaction=
{raw_transaction}
)r�  Úraw_transaction)Úprivate_keyzF{func}::[3/4] - Ethereum transaction signed: signed_txn=
{signed_txn}
)r�  Ú
signed_txnzE{func}::[4/4] - Ethereum transaction submitted: txn_hash=0x{txn_hash})r�  rs  )rB   rË   ÚtoWeirV   rÜ   ÚgetTransactionCountrN   rO   r)   rv  r   r<  Ú	functionsÚapproveÚbuildTransactionrC   ÚaccountÚsign_transactionrT   r+   rh   rñ   ÚrawTransactionrò   ÚsendRawTransactionrH   )
rY   rz  r{  rÇ   r„  r…  r‚  r‡  r‰  rs  s
             r[   rv  zClient._send_Allowance  sí  € àÔˆØ”8—>’> $¨Ñ/Ô/ˆà”<ˆð ””×0Ò0°ÈIÐ0ÑVÔVˆØŒ�ŠÐQÝ! $Ô"6Ñ7Ô7Ø!ð 	ñ 	#ô 	#ð 	#õ
 œ,Ô0×8Ò8¸ÀÑHÔH×YÒYØØØ Ø”~Øð[
ð [
ñ ô ˆð 	Œ�ŠØaÝ˜Ô,Ñ-Ô-Ø+ð 	ñ 	-ô 	-ð 	-ð ”X”\Ô)×:Ò:¸?ÐX\ÔXhÐ:ÑiÔiˆ
ØŒ�ŠØVÝ˜Ô,Ñ-Ô-Ý�XÔ-¨jÔ.GÑHÔH×OÒOÑQÔQÑRÔRð 	ñ 	Tô 	Tð 	Tð ”8”<×2Ò2°:Ô3LÑMÔMˆÝ˜‘?”?ˆØŒ�ŠØSÝ˜Ô,Ñ-Ô-Ý�8Ô+¨HÑ5Ô5×<Ò<Ñ>Ô>Ñ?Ô?ð 	ñ 	Aô 	Að 	Að
 ˆr\   )N)NNNr   r   r   )Ú__name__Ú
__module__Ú__qualname__rs   rA   rS   ru   r   r�   r–   r˜   rŠ   r‹   r°   r¶   r   r±   r²   r·   r¸   rµ   r¹   rº   rÎ   rÐ   rÒ   rv  © r\   r[   r;   r;   [   sÊ  € € € € € ð #€Oðð ð ð ð>Tð Tð Tð")ð )ð )ð fð fð fðð ð ð."ð "ð "ðð ð ðC7ð C7ð C7ðJ,3ð ,3ð ,3ð\!Sð !Sð !SðF5Kð 5Kð 5Kðn ð>ð >ð >ñ „_ð>ð@ ðð ñ „_ðð* mqØUVðZkð Zkð Zkð Zkðx+cð +cð +cðZXð Xð Xð*xð xð xð>Qð Qð QðFð Fð FðFð Fð Fð/@ð /@ð /@ðb+ð +ð +ð +ð +r\   r;   c                  ó¤  — t          d¦  «         t          d                     t          dt          z   ¦  «        ¦  «        ¦  «         t          d¦  «         t          d¦  «         t          d                     t	          t
          ¦  «        t          ¦  «        ¦  «         t          d                     t	          t          ¦  «        t          ¦  «        ¦  «         t          d                     t	          t          ¦  «        t          ¦  «        ¦  «         t          d                     t	          t          ¦  «        t          ¦  «        ¦  «         t          d	                     t	          t          ¦  «        t          ¦  «        ¦  «         t          d
                     t	          t          ¦  «        t           ¦  «        ¦  «         t          d¦  «         d S )NÚ z XBR CLI {}
Úvz   Contract addresses:
z"      XBRToken   : {} [source: {}]z"      XBRNetwork : {} [source: {}]z"      XBRDomain  : {} [source: {}]z"      XBRCatalog : {} [source: {}]z"      XBRMarket  : {} [source: {}]z"      XBRChannel : {} [source: {}])Úprintr`   r+   r   r*   r   r   r	   r   r
   r   r   r   r   r   r   r   r–  r\   r[   Úprint_versionr›  3  sU  € Ý	ˆ"�I„I€IÝ	ˆ/×
 Ò
 ¥ s­[Ñ'8Ñ!9Ô!9Ñ
:Ô
:Ñ;Ô;Ð;Ý	ˆ"�I„I€IÝ	Ð
$Ñ%Ô%Ð%Ý	Ð
.×
5Ò
5µdÕ;OÑ6PÔ6PÕRjÑ
kÔ
kÑlÔlÐlÝ	Ð
.×
5Ò
5µdÕ;QÑ6RÔ6RÕTnÑ
oÔ
oÑpÔpÐpÝ	Ð
.×
5Ò
5µdÕ;PÑ6QÔ6QÕSlÑ
mÔ
mÑnÔnÐnÝ	Ð
.×
5Ò
5µdÕ;QÑ6RÔ6RÕTnÑ
oÔ
oÑpÔpÐpÝ	Ð
.×
5Ò
5µdÕ;PÑ6QÔ6QÕSlÑ
mÔ
mÑnÔnÐnÝ	Ð
.×
5Ò
5µdÕ;QÑ6RÔ6RÕTnÑ
oÔ
oÑpÔpÐpÝ	ˆ"�I„I€I€I€Ir\   c                  óÄ  — t          j        ¦   «         } |                      dt          t          ddd¬¦  «         |                      dddd	¬
¦  «         |                      ddt          d¬¦  «         |                      dddt          d¬¦  «         |                      dddt          d¬¦  «         ddg}|                      dddt          d                     |¦  «        ¬¦  «         |                      ddt          d d!¬"¦  «         |                      d#d$t          d%d&¬"¦  «         |                      d'd(t          d)¬¦  «         |                      d*d+t          d,¬¦  «         |                      d-d.t          d d/¬"¦  «         |                      d0d1t          d d2¬"¦  «         |                      d3d4t          d d5¬"¦  «         |                      d6d7t          d d8¬"¦  «         |                      d9d:t          d d;¬"¦  «         |                      d<d=t          d d>¬"¦  «         |                      d?d@t          d dA¬"¦  «         |                      dBdCt          d dA¬"¦  «         |                      dDdEt          d dA¬"¦  «         |                      dFdGt          d dH¬"¦  «         |                      dIdJt          t          t          j	        t          j
        t          j        g¦  «        d dK¬L¦  «         |                      dMdNt          d dO¬"¦  «         |                      dPdQt          d dR¬"¦  «         |                      dSdTt          d dU¬"¦  «         |                      dVdWt          t          t          j        t          j        g¦  «        d dX¬L¦  «         |                      dYdZt          d d[¬"¦  «         |                      d\d]t          d d^¬"¦  «         |                      ¦   «         }|j        d_k    rt#          ¦   «          d S |j        d`k    �r t%          |j        ¬a¦  «        }|                     |j        ¦  «         t-          |j        ¦  «        t-          |j        ¦  «        z   t-          |j        ¦  «        z   }t5          db                     t7          |¦  «        t7          t-          |j        ¦  «        ¦  «        t7          t-          |j        ¦  «        ¦  «        t7          t-          |j        ¦  «        ¦  «        ¦  «        ¦  «         t5          ¦   «          |                     ¦   «          d S |j        dck    ræt%          |j        ¬a¦  «        }|                     |j        ¦  «         t5          |                     dd¬e¦  «        ¦  «         t=          j        dfdg¦  «        }tA          |dhdi¬j¦  «        }tC          |dddd¬k¦  «        }tD          j#         $                    |j%        ¦  «        stE          j&        |j%        ¦  «         | '                    ||j%        d¦  «         d S |j        �|j        dk    rNt5          dl                     dm (                    t          ¦  «        ¦  «        ¦  «         tS          j*        dn¦  «         tW          |j,        |j-        |j.        |j/        ¬o¦  «        }|j0        rtc          j2        dp¬q¦  «         ntc          j2        dr¬q¦  «         tc          j3        ¦   «         }	|	 4                    dstk          dttl          z   ¦  «        ¬u¦  «         |	 4                    dvt7          |j7        ¦  «        t7          |j#        ¦  «        ¬w¦  «         i dx|“d|j        “d.|j.        “d1|j/        “d(|j8        “d+|j9        “d4|j:        rtw          j<        |j:        ¦  «        nd “d7|j=        “d:|j>        “d=|j?        “dy|j@        pdn“dz|jA        pdn“dE|jB        pdn“dG|jC        r!t‰          jE        |jC        d{d …         ¦  «        nd “dJ|jF        “dN|jG        “dQ|jH        rtw          j<        |jH        ¦  «        nd “|jI        rtw          j<        |jI        ¦  «        nd |jJ        |jK        r!t‰          jE        |jK        d{d …         ¦  «        nd |jL        pdnd|œ¥}
t›          |jN        |jO        |
t¡          ¦   «         g¬}¦  «        }	 |	 4                    d~t7          |jN        ¦  «        |jO        rdt7          |jO        ¦  «        z   d€z   ndA¬�¦  «         | Q                    t¤          di¬‚¦  «         tS          j*        dn¦  «         d S # t¦          $ r.}t5          |¦  «         tS          j*        dƒ¦  «         Y d }~d S d }~ww xY w)„Nr†   Únoopú?zCommand to run)rG   ÚchoicesÚconstÚnargsÚhelpz-dz--debugÚ
store_truezEnable debug output.)r  r¢  z-oz--outputzCode output folder)rG   r¢  z-sz--schemaÚschemaz.FlatBuffers binary schema file to read (.bfbs))ÚdestrG   r¢  z-bz--basemoduleÚ
basemodulezRender to this base moduleÚpythonÚjsonz-lz
--languageÚlanguagez"Generated code language, one of {}z--urlÚurlzwss://planet.xbr.network/wsz8The router URL (default: "wss://planet.xbr.network/ws").)r¥  rG   Údefaultr¢  z--realmrp   rk   z*The realm to join (default: "xbrnetwork").z--ethkeyrR   z5Private Ethereum key (32 bytes as HEX encoded string)z--cskeyrF   zKPrivate WAMP-cryptosign authentication key (32 bytes as HEX encoded string)z
--usernamer›   z)For on-boarding, the new member username.z--emailrœ   z.For on-boarding, the new member email address.z--marketr¡   z*For creating new markets, the market UUID.z--market_titler¤   z+For creating new markets, the market title.z--market_labelr¥   z+For creating new markets, the market label.z--market_homepager¦   z.For creating new markets, the market homepage.z--provider_securityr­   r˜  z--consumer_securityr®   z--market_feer©   z--marketmakerr£   z3For creating new markets, the market maker address.z--actor_typer¯   zDActor type: PROVIDER = 1, CONSUMER = 2, PROVIDER_CONSUMER (both) = 3)r¥  rG   rŸ  r«  r¢  z--vcoderž   z4For verifications of actions, the verification UUID.z	--vactionr�   zRFor verifications of actions (on-board, create-market, ..), the verification code.z	--channelrÆ   z+For creating new channel, the channel UUID.z--channel_typerÅ   z6Channel type: Seller (PAYING) = 1, Buyer (PAYMENT) = 2z
--delegaterÄ   z/For creating new channel, the delegate address.z--amountrÇ   zzAmount to open the channel with. In tokens of the market coin type, used as means of payment in the market of the channel.r,   r8   )r¦  zOok, loaded {} types ({} structs and tables, {} enums and {} service interfaces)r9   T)rb   Úautobahnzxbr/templateszutf-8F)ÚencodingÚfollowlinks)ÚloaderÚtrim_blocksÚlstrip_blocksz!no command given. select from: {}z, r   )Údefault_urlÚdefault_realmÚdefault_usernameÚdefault_emailrn  )rà   rO   zXBR CLI {version}r™  )r,   z$Profile {profile} loaded from {path})r>   Úpathr>   r§   r¨   r^   )rÆ   rÅ   rÄ   rÇ   )rª  rp   rD   Úserializersz Connecting to "{url}" {realm} ..z
at realm "ú")rª  rp   )Úauto_reconnectr   )TÚargparseÚArgumentParserÚadd_argumentr(  Ú	_COMMANDSr`   r*  Úsortedr&   r   rÿ   r  r'   rÏ   rÍ   Ú
parse_argsr†   r›  r   r¦  Úloadr¤  rI   ÚobjsÚenumsÚservicesrš  r+   Úprint_summaryÚsummaryÚpkg_resourcesÚresource_filenamer   r   rP   r¶  ÚisdirÚoutputÚmkdirÚrenderrt   ÚsysÚexitr(   rª  rp   r›   rœ   rn  rˆ   Ústart_loggingÚmake_loggerrO   r*   r   ÚnamerR   rF   r¡   r³   r´   r¤   r¥   r¦   r­   r®   r©   r£   rh   ri   r¯   rž   r�   rÆ   rÅ   rÄ   rÇ   r   Únetwork_urlÚnetwork_realmr   Úrunr;   rŒ   )ÚparserÚ
_LANGUAGESÚargsÚrepoÚtotal_countÚ	templatesr¯  Úenvr>   rN   rD   r“   r�   s                r[   Ú_mainrÛ  A  s  € ÝÔ$Ñ&Ô&€Fà
×Ò˜	Ý Ý )Ø$Ø!Ø-ð ñ /ô /ð /ð ×Ò˜Ø!Ø+Ø3ð ñ 5ô 5ð 5ð
 ×Ò˜Ø"Ý Ø1ð ñ 3ô 3ð 3ð
 ×Ò˜Ø"Ø%Ý ØMð	 ñ Oô Oð Oð ×Ò˜Ø&Ø)Ý Ø9ð	 ñ ;ô ;ð ;ð ˜FÐ#€JØ
×Ò˜Ø$Ø'Ý ØA×HÒHÈÑTÔTð	 ñ Vô Vð Vð ×Ò˜Ø"Ý Ø =ØWð	 ñ Yô Yð Yð ×Ò˜	Ø$Ý Ø ,ØIð	 ñ Kô Kð Kð ×Ò˜
Ø%Ý ØTð ñ Vô Vð Vð
 ×Ò˜	Ø$Ý Øjð ñ lô lð lð
 ×Ò˜Ø'Ý Ø $ØHð	 ñ Jô Jð Jð ×Ò˜	Ø$Ý Ø $ØMð	 ñ Oô Oð Oð ×Ò˜
Ø%Ý Ø $ØIð	 ñ Kô Kð Kð ×ÒÐ(Ø+Ý Ø $ØJð	 ñ Lô Lð Lð ×ÒÐ(Ø+Ý Ø $ØJð	 ñ Lô Lð Lð ×ÒÐ+Ø.Ý Ø $ØMð	 ñ Oô Oð Oð ×ÒÐ-Ø0Ý Ø $Øð	 ñ !ô !ð !ð ×ÒÐ-Ø0Ý Ø $Øð	 ñ !ô !ð !ð ×Ò˜Ø)Ý Ø $Øð	 ñ !ô !ð !ð ×Ò˜Ø*Ý Ø $ØRð	 ñ Tô Tð Tð ×Ò˜Ø)Ý Ý &­	Ô(:½IÔ<NÕPYÔPkÐ'lÑ mÔ mØ $Øcð ñ eô eð eð ×Ò˜	Ø$Ý Ø $ØSð	 ñ Uô Uð Uð ×Ò˜Ø&Ý Ø $Øqð	 ñ sô sð sð ×Ò˜Ø&Ý Ø $ØJð	 ñ Lô Lð Lð ×ÒÐ(Ø+Ý Ý &­Ô(:½KÔ<OÐ'PÑ QÔ QØ $ØUð ñ Wô Wð Wð ×Ò˜Ø'Ý Ø $ØNð	 ñ Pô Pð Pð ×Ò˜
Ø%Ý Ø $ð Zð	 ñ [ô [ð [ð ×ÒÑÔ€Dà„|�yÒ Ð Ý‰Œˆˆˆð 
ŒÐ*Ò	*Ñ	*Ý¨¬Ð8Ñ8Ô8ˆØ�	Š	�$”+ÑÔÐå˜$œ)‘n”n¥s¨4¬:¡¤Ñ6½¸T¼]Ñ9KÔ9KÑKˆÝÐ_×fÒfÝ�+ÑÔÝ•#�d”i‘.”.Ñ!Ô!Ý•#�d”j‘/”/Ñ"Ô"Ý•#�d”mÑ$Ô$Ñ%Ô%ñ	'ô 'ñ 	(ô 	(ð 	(õ
 	‰Œˆà×ÒÑÔÐÐÐð 
ŒÐ)Ò	)Ð	)õ ¨¬Ð8Ñ8Ô8ˆØ�	Š	�$”+ÑÔÐõ 	ˆd�lŠl ˆlÑ%Ô%Ñ&Ô&Ð&õ "Ô3°JÀÑPÔPˆ	õ " )°gÈ5ÐQÑQÔQˆÝ °TÈÐNÑNÔNˆõ Œw�}Š}˜Tœ[Ñ)Ô)ð 	"ÝŒH�T”[Ñ!Ô!Ð!ð 	�Š�C˜œ hÑ/Ô/Ð/Ð/Ð/ð Œ<Ð 4¤<°6Ò#9Ð#9ÝÐ5×<Ò<¸T¿YºYÅyÑ=QÔ=QÑRÔRÑSÔSÐSÝŒH�Q‰KŒKˆKõ )°T´XÈTÌZØ:>¼-ÐW[ÔWaðcñ cô cˆð Œ:ð 	.ÝÔ gÐ.Ñ.Ô.Ð.Ð.åÔ fÐ-Ñ-Ô-Ð-åÔÑ!Ô!ˆà�ŠÐ$­d°3½Ñ3DÑ.EÔ.EˆÑFÔFÐFØ�ŠÐ7ÅÀwÄ|ÑATÔATÕ[`ÐahÔamÑ[nÔ[nˆÑoÔoÐoð
à�wð
ð
 �t”|ð
ð ˜œð
ð �T”Zð
ð �g”nð
ð �W”]ð
ð °´ÐE•d”i ¤Ñ,Ô,Ð,Àð
ð ˜DÔ-ð
ð ˜DÔ-ð
ð ˜tÔ3ð
ð  '¨Ô(>Ð(CÀ!ð!
ð" '¨Ô(>Ð(CÀ!ð#
ð$ ˜$œ/Ð.¨Qð%
ð& ÀTÔEUÐ_�8Ô+¨DÔ,<¸Q¸R¸RÔ,@ÑAÔAÐAÐ[_ð'
ð( ˜$œ/ð)
ð* �T”Zð+
ð, °$´,ÐH•t”y ¤Ñ.Ô.Ð.ÀDð-
ð. 37´,ÐH•t”y ¤Ñ.Ô.Ð.ÀDØ Ô-Ø?C¼}ÐV�Ô(¨¬°q°r°rÔ):Ñ;Ô;Ð;ÐRVØ”kÐ& Qð5
ð 
ð 
ˆõ8 # wÔ':À'ÔBWÐ_dÝ0>Ñ0@Ô0@Ð/AðCñ Cô Cˆð		Ø�HŠHÐ7Ý˜wÔ2Ñ3Ô3ØQXÔQfÐn˜L­5°Ô1FÑ+GÔ+GÑGÈ#ÑMÐMÐlnð ñ qô qð qð �JŠJ•v¨eˆJÑ4Ô4Ð4õ
 ŒH�Q‰KŒKˆKˆKˆKøõ	 ð 	ð 	ð 	Ý�!‰HŒHˆHÝŒH�Q‰KŒKˆKˆKˆKˆKˆKˆKˆKøøøøð	øøøs   â*A'd' ä'
eä1#eåeÚ__main__)OrP   rÌ  rÆ  Újinja2r   r   r¬  r   r   ÚHAS_XBRrš  rÍ  Úautobahn.xbr._abir   r	   r
   r   r   r   r   r   r   r   r   r   Úautobahn.xbrr   r³   rh   rº  rH  Úpprintr   ra   rd   r!  r$  r  Únumpyrî   rˆ   Úuse_twistedÚtwisted.internetr   Útwisted.internet.deferr   Útwisted.internet.threadsr   Útwisted.internet.errorr   Úautobahn.twisted.wampr   r   Úautobahn.wamp.serializerr   Úautobahn.wampr   Úautobahn.wamp.exceptionr   r   r    r!   r"   r#   r$   r%   r&   r'   Úautobahn.xbr._configr(   Úautobahn.utilr)   r*   r+   r½  r;   r›  rÛ  r“  r–  r\   r[   ú<module>rî     s§  ðð6 
€	€	€	Ø 
€
€
€
Ø Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à
„{ð Ø	€EÐ
@ÑAÔAÐAØ	€EÐ
7Ñ8Ô8Ð8Ø€C„HˆQ�K„K€KðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð JðVð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð 'Ð &Ð &Ð &Ð &Ð &à €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€à Ð Ð Ð à €€€à €Ô Ñ Ô Ð à $Ð $Ð $Ð $Ð $Ð $Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø $Ð $Ð $Ð $Ð $Ð $Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ hÐ hÐ hÐ hÐ hÐ hÐ hÐ hÐ hÐ hØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð2ð 2ð 2€	ðUð Uð Uð Uð UÐñ Uô Uð Uðpð ð ðMð Mð Mð` ˆzÒÐØ	€E�G„G€G€G€Gð Ðr\   