JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў fNc&@sdZddlZddlZddlZddlmZddlZddlZddl m Z ddl Z ddl Z ddl mZyddlZWnek rdZYnXddZejddZdWZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZdcZ ddZ!deZ"Gddde#Z$Gddde$Z%Gddde$Z&Gddde$Z'e(Z)Z*ed d d Z+e+j,ddkrd d!Z-n0e+j,d"dkrd#d!Z-n d$d!Z-[+d%d&Z.Gd'd(d(Z/d)d*Z0d+d,Z1Gd-d.d.Z2d/d0Z3e/e2fZ4Gd1d2d2Z5Gd3d4d4Z6Gd5d6d6Z7Gd7d8d8Z8Gd9d:d:Z9Gd;d<d<Z:dZ;Z<Z=dfdfd=d>Z?ddddfd?d@Z@dfdfdAdBZAdCdDZBdEdFdGZCGdHdIdIerHejDneEZFGdJdKdKZGGdLdMdMZHGdNdOdOeHZIGdPdQdQZJeJZKeLdRkreJdSZMyeNeMjOjPWn2e$k r ZQzeNdTeQWYddZQ[QXnXe:eMZReRjSeRjTd dUeRjUd d y"xeRD]ZVeNeVqMWWqe$k rZQzeNdTeQWYddZQ[QXqXndS(gu An XML-RPC client interface for Python. The marshalling and response parser code can also be used to implement XML-RPC servers. Exported exceptions: Error Base class for client errors ProtocolError Indicates an HTTP protocol error ResponseError Indicates a broken response package Fault Indicates an XML-RPC fault package Exported classes: ServerProxy Represents a logical connection to an XML-RPC server MultiCall Executor of boxcared xmlrpc requests DateTime dateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate a "dateTime.iso8601" XML-RPC value Binary binary data wrapper Marshaller Generate an XML-RPC params chunk from a Python data structure Unmarshaller Unmarshal an XML-RPC response from incoming XML event message Transport Handles an HTTP transaction to an XML-RPC server SafeTransport Handles an HTTPS transaction to an XML-RPC server Exported constants: (none) Exported functions: getparser Create instance of the fastest available parser & attach to an unmarshalling object dumps Convert an argument tuple or a Fault instance to an XML-RPC request (or response, if the methodresponse option is used). loads Convert an XML-RPC packet to unmarshalled data plus a method name (None if not present). iN(udatetime(uexpat(uBytesIOcCs4|jdd}|jdd}|jddS(Nu&u&uu>(ureplace(us((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuescapesuescapeiiiiiiXi~i~i,~iiiYiZi[cBs&|EeZdZdZddZdS(uErroruBase class for client errors.cCs t|S(N(urepr(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__str__su Error.__str__N(u__name__u __module__u __qualname__u__doc__u__str__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuErrorsuErrorcBs2|EeZdZdZddZddZdS(u ProtocolErroru!Indicates an HTTP protocol error.cCs5tj|||_||_||_||_dS(N(uErroru__init__uurluerrcodeuerrmsguheaders(uselfuurluerrcodeuerrmsguheaders((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__s     uProtocolError.__init__cCsd|j|j|jfS(Nu(uurluerrcodeuerrmsg(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__suProtocolError.__repr__N(u__name__u __module__u __qualname__u__doc__u__init__u__repr__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ProtocolErrors u ProtocolErrorcBs|EeZdZdZdS(u ResponseErroru$Indicates a broken response package.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ResponseErrorsu ResponseErrorcBs2|EeZdZdZddZddZdS(uFaultu#Indicates an XML-RPC fault package.cKs#tj|||_||_dS(N(uErroru__init__u faultCodeu faultString(uselfu faultCodeu faultStringuextra((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__s  uFault.__init__cCsd|j|jfS(Nu(u faultCodeu faultString(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__suFault.__repr__N(u__name__u __module__u __qualname__u__doc__u__init__u__repr__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuFaults uFaultu%Yu0001cCs |jdS(Nu%Y%m%dT%H:%M:%S(ustrftime(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_iso8601_format su_iso8601_formatu%4YcCs |jdS(Nu%4Y%m%dT%H:%M:%S(ustrftime(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_iso8601_formatscCs|jdjdS(Nu%Y%m%dT%H:%M:%Si(ustrftimeuzfill(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_iso8601_formatscCspt|trt|St|ttjfs^|dkrLtj}ntj|}nd|ddS(Niu%04d%02d%02dT%02d:%02d:%02di(u isinstanceudatetimeu_iso8601_formatutupleutimeu struct_timeu localtime(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu _strftimes  u _strftimecBs|EeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdS(uDateTimeuDateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate 'dateTime.iso8601' XML-RPC value. icCs.t|tr||_nt||_dS(N(u isinstanceustruvalueu _strftime(uselfuvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__(s uDateTime.__init__cCst|tr$|j}|j}nt|trK|j}t|}nt|trl|j}|}nmt|dr|j}|j}nCt|dr|jj pt |}t d|jj |f||fS(Nu timetupleu __class__uCan't compare %s and %s( u isinstanceuDateTimeuvalueudatetimeu_iso8601_formatustruhasattru timetupleu __class__u__name__utypeu TypeError(uselfuotherusuouotype((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyumake_comparable.s$        uDateTime.make_comparablecCs|j|\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__lt__CsuDateTime.__lt__cCs|j|\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__le__GsuDateTime.__le__cCs|j|\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__gt__KsuDateTime.__gt__cCs|j|\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__ge__OsuDateTime.__ge__cCs|j|\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__eq__SsuDateTime.__eq__cCs|j|\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__ne__WsuDateTime.__ne__cCstj|jdS(Nu%Y%m%dT%H:%M:%S(utimeustrptimeuvalue(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu timetuple[suDateTime.timetuplecCs|jS(N(uvalue(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__str__csuDateTime.__str__cCsd|jt|fS(Nu(uvalueuid(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__fsuDateTime.__repr__cCst|j|_dS(N(ustrustripuvalue(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudecodeisuDateTime.decodecCs.|jd|j|j|jddS(Nuu (uwriteuvalue(uselfuout((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuencodels uDateTime.encodeN(u__name__u __module__u __qualname__u__doc__u__init__umake_comparableu__lt__u__le__u__gt__u__ge__u__eq__u__ne__u timetupleu__str__u__repr__udecodeuencode(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuDateTime"s           uDateTimecCst}|j||S(N(uDateTimeudecode(udatauvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu _datetimeqs  u _datetimecCstj|dS(Nu%Y%m%dT%H:%M:%S(udatetimeustrptime(udata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_datetime_typewsu_datetime_typecBse|EeZdZdZdddZddZddZdd Zd d Z d d Z dS(uBinaryuWrapper for binary data.cCs\|dkrd}n:t|ttfsCtd|jjnt|}||_dS(Nsu#expected bytes or bytearray, not %s(uNoneu isinstanceubytesu bytearrayu TypeErroru __class__u__name__udata(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__s   uBinary.__init__cCst|jdS(Nulatin-1(ustrudata(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__str__suBinary.__str__cCs(t|tr|j}n|j|kS(N(u isinstanceuBinaryudata(uselfuother((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__eq__s u Binary.__eq__cCs(t|tr|j}n|j|kS(N(u isinstanceuBinaryudata(uselfuother((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__ne__s u Binary.__ne__cCstj||_dS(N(ubase64u decodebytesudata(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudecodesu Binary.decodecCsF|jdtj|j}|j|jd|jddS(Nu uasciiu (uwriteubase64u encodebytesudataudecode(uselfuoutuencoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuencodes u Binary.encodeN( u__name__u __module__u __qualname__u__doc__uNoneu__init__u__str__u__eq__u__ne__udecodeuencode(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuBinarys    uBinarycCst}|j||S(N(uBinaryudecode(udatauvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_binarys  u_binarycBs8|EeZdZddZddZddZdS(u ExpatParsercCs`tjdd|_}||_|j|_|j|_|j |_ d}|j |ddS(N( uexpatu ParserCreateuNoneu_parseru_targetustartuStartElementHandleruenduEndElementHandlerudatauCharacterDataHandleruxml(uselfutargetuparseruencoding((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__s    uExpatParser.__init__cCs|jj|ddS(Ni(u_parseruParse(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyufeedsuExpatParser.feedcCs#|jjdd|`|`dS(Nui(u_parseruParseu_target(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuclosesuExpatParser.closeN(u__name__u __module__u __qualname__u__init__ufeeduclose(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ExpatParsers u ExpatParsercBs`|EeZdZdZddddZiZddZddZ dd Z e ee d u faultCodeu faultStringu u u u u u(uappendu_Marshaller__dumpu isinstanceuFaultu faultCodeu faultStringujoin(uselfuvaluesuoutuwriteudumpuvuresult((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudumpss"          uMarshaller.dumpsc Csy|jt|}Wntk rt|dsOtdt|nxEt|jD]4}||jjkr_tdt|q_q_W|jd}YnX||||dS(Nu__dict__ucannot marshal %s objectsu_arbitrary_instance(udispatchutypeuKeyErroruhasattru TypeErroru__mro__ukeys(uselfuvalueuwriteufutype_((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__dumps uMarshaller.__dumpcCs&|jstdn|ddS(Nu0cannot marshal None unless allow_none is enabledu(u allow_noneu TypeError(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudump_nils uMarshaller.dump_nilcCs.|d||rdpd|ddS(Nuu1u0u ((uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_bools uMarshaller.dump_boolcCsU|tks|tkr'tdn|d|tt||ddS(Nuint exceeds XML-RPC limitsu u (uMAXINTuMININTu OverflowErrorustruint(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_longs  uMarshaller.dump_longcCs(|d|t||ddS(Nuu (urepr(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_double(s uMarshaller.dump_doublecCs(|d||||ddS(Nuu ((uselfuvalueuwriteuescape((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_unicode.s uMarshaller.dump_unicodecCs:|dtj|}||jd|ddS(Nu uasciiu (ubase64u encodebytesudecode(uselfuvalueuwriteuencoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_bytes4s uMarshaller.dump_bytescCst|}||jkr*tdnd|j|<|j}|dx|D]}|||qQW|d|j|=dS(Nu"cannot marshal recursive sequencesu u (uidumemou TypeErroruNoneu_Marshaller__dump(uselfuvalueuwriteuiudumpuv((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_array<s      uMarshaller.dump_arraycCst|}||jkr*tdnd|j|<|j}|dxm|jD]_\}}|dt|tstdn|d||||||dqWW|d|j|=dS(Nu%cannot marshal recursive dictionariesu u udictionary key must be stringu%s u u (uidumemou TypeErroruNoneu_Marshaller__dumpuitemsu isinstanceustr(uselfuvalueuwriteuescapeuiudumpukuv((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_structJs       uMarshaller.dump_structcCs(|d|t||ddS(Nuu (u _strftime(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_datetime\s uMarshaller.dump_datetimecCsE|jtkr.||_|j||`n|j|j|dS(N(u __class__uWRAPPERSuwriteuencodeu dump_structu__dict__(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_instancebs    uMarshaller.dump_instanceu_arbitrary_instanceNF(#u__name__u __module__u __qualname__u__doc__uNoneuFalseu__init__udispatchudumpsu_Marshaller__dumpudump_nilutypeu dump_booluboolu dump_longuintudump_intu dump_doubleufloatuescapeu dump_unicodeustru dump_bytesubytesu bytearrayu dump_arrayutupleulistu dump_structudictu dump_datetimeudatetimeu dump_instanceuDateTimeuBinary(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu Marshallers<                    u MarshallercBs|EeZdZdZd=d=ddZddZddZdd Zd d Z d d Z ddZ ddZ iZ ddZee du UnmarshalleruUnmarshal an XML-RPC response, based on incoming XML event messages (start, data, end). Call close() to get the resulting data structure. Note that this reader is fairly tolerant, and gladly accepts bogus XML-RPC data without complaining (but not bogus XML). cCsad|_g|_g|_g|_d|_d|_|jj|_|pN||_||_ dS(Nuutf-8( uNoneu_typeu_stacku_marksu_datau _methodnameu _encodinguappendu _use_datetimeu _use_bytes(uselfu use_datetimeuuse_builtin_types((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__s      uUnmarshaller.__init__cCsV|jdks|jr$tn|jdkrIt|jdnt|jS(Nufaulti(u_typeuNoneu_marksu ResponseErroruFaultu_stackutuple(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyucloses  uUnmarshaller.closecCs|jS(N(u _methodname(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu getmethodnamesuUnmarshaller.getmethodnamecCs ||_dS(N(u _encoding(uselfuencodingu standalone((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuxmlsuUnmarshaller.xmlcCsP|dks|dkr4|jjt|jng|_|dk|_dS(Nuarrayustructuvalue(u_marksuappendulenu_stacku_datau_value(uselfutaguattrs((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyustarts uUnmarshaller.startcCs|jj|dS(N(u_datauappend(uselfutext((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudatasuUnmarshaller.datac CsCy|j|}Wntk r%YnX||dj|jSdS(Nu(udispatchuKeyErrorujoinu_data(uselfutaguf((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuends  uUnmarshaller.endc Cs7y|j|}Wntk r%YnX|||SdS(N(udispatchuKeyError(uselfutagudatauf((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_dispatchs  uUnmarshaller.end_dispatchcCs|jdd|_dS(Ni(uappenduNoneu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuend_nils uUnmarshaller.end_nilunilcCsQ|dkr|jdn(|dkr8|jdn tdd|_dS(Nu0u1ubad boolean valueiFT(uappenduFalseuTrueu TypeErroru_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_booleans    uUnmarshaller.end_booleanubooleancCs |jt|d|_dS(Ni(uappenduintu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuend_intsuUnmarshaller.end_intui4ui8uintcCs |jt|d|_dS(Ni(uappendufloatu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_doublesuUnmarshaller.end_doubleudoublecCs8|jr|j|j}n|j|d|_dS(Ni(u _encodingudecodeuappendu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_strings  uUnmarshaller.end_stringustringunamecCs?|jj}|j|dg|j|d a object used to boxcar method calls server should be a ServerProxy object. Methods can be added to the MultiCall using normal method call syntax e.g.: multicall = MultiCall(server_proxy) multicall.add(2,3) multicall.get_address("Guido") To execute the multicall, call the MultiCall object e.g.: add_result, address = multicall() cCs||_g|_dS(N(u_MultiCall__serveru_MultiCall__call_list(uselfuserver((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__Ns uMultiCall.__init__cCsdt|S(Nu(uid(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__RsuMultiCall.__repr__cCst|j|S(N(u_MultiCallMethodu_MultiCall__call_list(uselfuname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __getattr__WsuMultiCall.__getattr__cCsTg}x2|jD]'\}}|ji|d6|d6qWt|jjj|S(Nu methodNameuparams(u_MultiCall__call_listuappenduMultiCallIteratoru_MultiCall__serverusystemu multicall(uselfumarshalled_listunameuargs((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__call__ZsuMultiCall.__call__N( u__name__u __module__u __qualname__u__doc__u__init__u__repr__u__str__u __getattr__u__call__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu MultiCall=s    u MultiCallcCstrltrl|r$t}tj}n!|r9t}t}n t}t}tdd||t }t|}n6t d|d|}trt|}n t |}||fS(ugetparser() -> parser, unmarshaller Create an instance of the fastest available parser, and attach it to an unmarshalling object. Return both objects. u use_datetimeuuse_builtin_typesTF( u FastParseruFastUnmarshalleru_datetime_typeubase64u decodebytesu_binaryu _datetimeuTrueuFalseuFaultu Unmarshalleru ExpatParser(u use_datetimeuuse_builtin_typesu mkdatetimeumkbytesutargetuparser((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu getparserls     u getparsercCst|trd}n|r0t|tr0n|s?d}ntrTt|}nt||}|j|}|dkrdt|}nd}|rt|ts|j|}n|d|d|df}n|r|d|d f}n|Sd j|S( udata [,options] -> marshalled data Convert an argument tuple or a Fault instance to an XML-RPC request (or response, if the methodresponse option is used). In addition to the data object, the following options can be given as keyword arguments: methodname: the method name for a methodCall packet methodresponse: true to create a methodResponse packet. If this option is used with a tuple, the tuple must be a singleton (i.e. it can contain only one element). encoding: the packet encoding (default is UTF-8) All byte strings in the data structure are assumed to use the packet encoding. Unicode strings are automatically converted, where necessary. iuutf-8u$ u u u u u u u( u isinstanceuFaultutupleuFastMarshalleru Marshallerudumpsustruencodeujoin(uparamsu methodnameumethodresponseuencodingu allow_noneumudatau xmlheader((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudumpss8     udumpscCsHtd|d|\}}|j||j|j|jfS(udata -> unmarshalled data, method name Convert an XML-RPC packet to unmarshalled data plus a method name (None if not present). If the XML-RPC packet represents a fault condition, this function raises a Fault exception. u use_datetimeuuse_builtin_types(u getparserufeeducloseu getmethodname(udatau use_datetimeuuse_builtin_typesupuu((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuloadss   uloadscCsgtstnt}tjddd|dd}|j||j|j}|j|S(uhdata -> gzip encoded data Encode data using the gzip content encoding as described in RFC 1952 umodeuwbufileobju compressleveli(ugzipuNotImplementedErroruBytesIOuGzipFileuwriteucloseugetvalue(udataufugzfuencoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu gzip_encodes      u gzip_encodei@c Cststnt|}tjddd|}y2|dkrQ|j}n|j|d}Wntk rtdYnX|j|j|dkrt||krtdn|S(urgzip encoded data -> unencoded data Decode data using the gzip content encoding as described in RFC 1952 umodeurbufileobjiiu invalid datau#max gzipped payload length exceeded( ugzipuNotImplementedErroruBytesIOuGzipFileureaduIOErroru ValueErrorucloseulen(udatau max_decodeufugzfudecoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu gzip_decodes      u gzip_decodecBs2|EeZdZdZddZddZdS(uGzipDecodedResponseuha file-like object to decode a response encoded with the gzip method, as described in RFC 1952. cCsGtstnt|j|_tjj|ddd|jdS(Numodeurbufileobj(ugzipuNotImplementedErroruBytesIOureaduiouGzipFileu__init__(uselfuresponse((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__2s uGzipDecodedResponse.__init__cCs!tjj||jjdS(N(ugzipuGzipFileucloseuio(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuclose:suGzipDecodedResponse.closeN(u__name__u __module__u __qualname__u__doc__u__init__uclose(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuGzipDecodedResponse.s uGzipDecodedResponsecBs8|EeZdZddZddZddZdS(u_MethodcCs||_||_dS(N(u _Method__sendu _Method__name(uselfusenduname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__Es u_Method.__init__cCst|jd|j|fS(Nu%s.%s(u_Methodu _Method__sendu _Method__name(uselfuname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __getattr__Hsu_Method.__getattr__cGs|j|j|S(N(u _Method__sendu _Method__name(uselfuargs((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__call__Jsu_Method.__call__N(u__name__u __module__u __qualname__u__init__u __getattr__u__call__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_MethodBs  u_MethodcBs|EeZdZdZdeZdZdZ ddddZ dddZ dddZ d d Zd d Zd dZddZddZddZddZddZdS(u Transportu1Handles an HTTP transaction to an XML-RPC server.uPython-xmlrpc/%scCs(||_||_d|_g|_dS(N(NN(u _use_datetimeu_use_builtin_typesuNoneu _connectionu_extra_headers(uselfu use_datetimeuuse_builtin_types((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__as   uTransport.__init__cCsxdD]}y|j||||SWqtjk r~}z2|sf|jtjtjtjfkrlnWYdd}~Xqtjj k r|rnYqXqWdS(Nii(ii( usingle_requestusocketuerroruerrnou ECONNRESETu ECONNABORTEDuEPIPEuhttpuclientu BadStatusLine(uselfuhostuhandleru request_bodyuverboseuiue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyurequestqs 'uTransport.requestcCsyM|j||||}|j}|jdkrL||_|j|SWn3tk rdYntk r|jYnX|jddr|j nt |||j|j t |j dS(Niucontent-lengthu(u send_requestu getresponseustatusuverboseuparse_responseuFaultu Exceptionucloseu getheaderureadu ProtocolErrorureasonudictu getheaders(uselfuhostuhandleru request_bodyuverboseu http_connuresp((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyusingle_request}s"       uTransport.single_requestcCstd|jd|jS(Nu use_datetimeuuse_builtin_types(u getparseru _use_datetimeu_use_builtin_types(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu getparsersuTransport.getparsercCsi}t|tr$|\}}ntjj|\}}|rtjj|}tj|jd}dj |j }dd|fg}ng}|||fS(Nuutf-8uu AuthorizationuBasic ( u isinstanceutupleuurllibuparseu splituseruunquote_to_bytesubase64u encodebytesudecodeujoinusplit(uselfuhostux509uauthu extra_headers((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu get_host_infosuTransport.get_host_infocCsh|jr'||jdkr'|jdS|j|\}|_}|tjj|f|_|jdS(Nii(u _connectionu get_host_infou_extra_headersuhttpuclientuHTTPConnection(uselfuhostuchostux509((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyumake_connections  uTransport.make_connectioncCs.|jdr*|jdjd|_ndS(Ni(NN(u _connectionucloseuNone(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyucloses uTransport.closecCs|j|}|jdd}|r8|jdn|jrmtrm|jd|dd |jd n|jd||jd |jd|jf|j |||j |||S( NiuPOSTuskip_accept_encodinguAccept-Encodingugzipu Content-Typeutext/xmlu User-AgentT(uAccept-Encodingugzip(u Content-Typeutext/xml( umake_connectionu_extra_headersuset_debugleveluaccept_gzip_encodingugzipu putrequestuTrueuappendu user_agentu send_headersu send_content(uselfuhostuhandleru request_bodyudebugu connectionuheaders((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu send_requests uTransport.send_requestcCs+x$|D]\}}|j||qWdS(N(u putheader(uselfu connectionuheadersukeyuval((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu send_headerssuTransport.send_headerscCsv|jdk rI|jt|krItrI|jddt|}n|jdtt||j|dS(NuContent-EncodingugzipuContent-Length(uencode_thresholduNoneulenugzipu putheaderu gzip_encodeustru endheaders(uselfu connectionu request_body((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu send_contentsuTransport.send_contentcCst|dr?|jdddkr6t|}qE|}n|}|j\}}xH|jd}|ssPn|jrtdt|n|j|qZ||k r|j n|j |j S(Nu getheaderuContent-Encodinguugzipiubody:( uhasattru getheaderuGzipDecodedResponseu getparserureaduverboseuprintureprufeeduclose(uselfuresponseustreamupuuudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuparse_responses"     uTransport.parse_responseNTF(u__name__u __module__u __qualname__u__doc__u __version__u user_agentuTrueuaccept_gzip_encodinguNoneuencode_thresholduFalseu__init__urequestusingle_requestu getparseru get_host_infoumake_connectionucloseu send_requestu send_headersu send_contentuparse_response(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu TransportSs  !      u TransportcBs&|EeZdZdZddZdS(u SafeTransportu2Handles an HTTPS transaction to an XML-RPC server.cCs|jr'||jdkr'|jdSttjdsHtdn|j|\}|_}|tjj|d|p~if|_|jdS(NiiuHTTPSConnectionu1your version of http.client doesn't support HTTPS( u _connectionuhasattruhttpuclientuNotImplementedErroru get_host_infou_extra_headersuHTTPSConnectionuNone(uselfuhostuchostux509((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyumake_connection9s  uSafeTransport.make_connectionN(u__name__u __module__u __qualname__u__doc__umake_connection(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu SafeTransport4su SafeTransportcBsz|EeZdZdZddddddddZddZddZdd Z e Z d d Z d d Z dS(u ServerProxyuuri [,options] -> a logical connection to an XML-RPC server uri is the connection point on the server, given as scheme://host/target. The standard implementation always supports the "http" scheme. If SSL socket support is available (Python 2.0), it also supports "https". If the target part and the slash preceding it are both omitted, "/RPC2" is assumed. The following options can be given as keyword arguments: transport: a transport factory encoding: the request encoding (default is UTF-8) All 8-bit strings passed to the server proxy are assumed to use the given encoding. c Cstjj|\}}|dkr3tdntjj|\|_|_|jsfd|_n|dkr|dkrt} nt } | d|d|}n||_ |pd|_ ||_ ||_ dS( Nuhttpuhttpsuunsupported XML-RPC protocolu/RPC2u use_datetimeuuse_builtin_typesuutf-8(uhttpuhttps(uurllibuparseu splittypeuIOErroru splithostu_ServerProxy__hostu_ServerProxy__handleruNoneu SafeTransportu Transportu_ServerProxy__transportu_ServerProxy__encodingu_ServerProxy__verboseu_ServerProxy__allow_none( uselfuuriu transportuencodinguverboseu allow_noneu use_datetimeuuse_builtin_typesutypeuhandler((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__ns           uServerProxy.__init__cCs|jjdS(N(u_ServerProxy__transportuclose(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__closesuServerProxy.__closecCswt||d|jd|jj|j}|jj|j|j|d|j}t |dkrs|d}n|S(Nuencodingu allow_noneuverboseii( udumpsu_ServerProxy__encodingu_ServerProxy__allow_noneuencodeu_ServerProxy__transporturequestu_ServerProxy__hostu_ServerProxy__handleru_ServerProxy__verboseulen(uselfu methodnameuparamsurequesturesponse((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __requests   uServerProxy.__requestcCsd|j|jfS(Nu(u_ServerProxy__hostu_ServerProxy__handler(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__suServerProxy.__repr__cCst|j|S(N(u_Methodu_ServerProxy__request(uselfuname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __getattr__suServerProxy.__getattr__cCs=|dkr|jS|dkr&|jStd|fdS(u|A workaround to get special attributes on the ServerProxy without interfering with the magic __getattr__ ucloseu transportuAttribute %r not foundN(u_ServerProxy__closeu_ServerProxy__transportuAttributeError(uselfuattr((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__call__s   uServerProxy.__call__NF( u__name__u __module__u __qualname__u__doc__uNoneuFalseu__init__u_ServerProxy__closeu_ServerProxy__requestu__repr__u__str__u __getattr__u__call__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ServerProxyXs     u ServerProxyu__main__uhttp://localhost:8000uERRORi liliiDii ipiԁiDiCiBiiiiF(Wu__doc__ubase64usysutimeudatetimeu http.clientuhttpu urllib.parseuurllibu xml.parsersuexpatusocketuerrnouiouBytesIOugzipu ImportErroruNoneuescapeuversionu __version__uMAXINTuMININTu PARSE_ERRORu SERVER_ERRORuAPPLICATION_ERRORu SYSTEM_ERRORuTRANSPORT_ERRORuNOT_WELLFORMED_ERRORuUNSUPPORTED_ENCODINGuINVALID_ENCODING_CHARuINVALID_XMLRPCuMETHOD_NOT_FOUNDuINVALID_METHOD_PARAMSuINTERNAL_ERRORu ExceptionuErroru ProtocolErroru ResponseErroruFaultuboolubooleanuBooleanu_day0ustrftimeu_iso8601_formatu _strftimeuDateTimeu _datetimeu_datetime_typeuBinaryu_binaryuWRAPPERSu ExpatParseru Marshalleru Unmarshalleru_MultiCallMethoduMultiCallIteratoru MultiCalluFastMarshalleru FastParseruFastUnmarshalleruFalseu getparserudumpsuloadsu gzip_encodeu gzip_decodeuGzipFileuobjectuGzipDecodedResponseu_Methodu Transportu SafeTransportu ServerProxyuServeru__name__userveruprintu currentTimeugetCurrentTimeuvumultiugetDataupowuadduresponse(((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyus              O  (   '' L %$_