e^SrSSKrSSKrSSKrSSKJr SSKJr SSKrSSK r SSK J r SSK r SSKJr SSKrSrS\R&SS -rS rS rS rS rSrSrSrS rSrSrS rSr Sr!Sr""SS\#5r$"SS\$5r%"SS\$5r&"SS\$5r'\(=r)r*Sr+Sr,"S S!5r-S"r.S#r/"S$S%5r0S&r1\-\04r2"S'S(5r3"S)S*5r4"S+S,5r5"S-S.5r6"S/S05r7"S1S25r8S=r9=r:r;SGS3jr<SHS4jr=SGS5jr>S6r?SIS7jr@"S8S9\(a \RO\B5rC"S:S;5rD"S<S=5rE"S>S?\E5rF"S@SA5rG\GrH\ISB:Xa}\G"SC5rJ\K"\JRR55 \8"\J5rO\OR5 \ORS SE5 \ORSFS 5 \O"5H rS\K"\S5 M gg!\a SrGNf=f!\$arN\K"SD\N5 SrNCNNxSrNCNff=f!\$arN\K"SD\N5 SrNCNgSrNCNff=f)Ja 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). N)datetime)Decimal)expat)BytesIOcnURSS5nURSS5nURSS5$)N&z&z>)replace)ss 3/opt/imh/python3.13/lib/python3.13/xmlrpc/client.pyescapers3 #wA #vA 99S& ""z%d.%diiiDii ipiԁiCiBiiic0\rSrSrSr\R rSrg)ErrorzBase class for client errors.N)__name__ __module__ __qualname____firstlineno____doc__object__str____static_attributes__rrr rrs'nnGrrc$\rSrSrSrSrSrSrg) ProtocolErrorz!Indicates an HTTP protocol error.c^[RU5 XlX lX0lX@lgN)r__init__urlerrcodeerrmsgheaders)selfr#r$r%r&s r r"ProtocolError.__init__s" t   rc SURR<SUR<SUR<SUR<S3 $)Nr  for :  r ) __class__rr#r$r%r's r __repr__ProtocolError.__repr__s.^^ $ $dhh dkk K r)r$r%r&r#Nrrrrrr"r/rrrr rrs+ rrc\rSrSrSrSrg) ResponseErrorz$Indicates a broken response package.rN)rrrrrrrrr r3r3s.rr3c$\rSrSrSrSrSrSrg)Faultz#Indicates an XML-RPC fault package.c F[RU5 XlX lgr!)rr" faultCode faultString)r'r9r:extras r r"Fault.__init__s t"&rcpSURR<SUR<SUR<S3$)Nr r,r+r )r-rr9r:r.s r r/Fault.__repr__s* $ 7 7 $0@0@B Brr9r:Nr1rrr r6r6s-'Brr6cxURbURSS9nURSS9RSS5$)N)tzinfoseconds)timespec-)rAr isoformatvalues r _iso8601_formatrIs: || T * ??I? . 6 6sB ??rc[U[5(a [U5$[U[[R 45(d1US:Xa[R"5n[R "U5nSUSS-$)Nrz%04d%02d%02dT%02d:%02d:%02d) isinstancerrItupletime struct_time localtimerGs r _strftimerQsc%""u%% eeT%5%56 7 7 A:IIKEu% (5!9 44rcd\rSrSrSrSSjrSrSrSrSr Sr S r S r S r S rS rSrSrg)DateTimeizDateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate 'dateTime.iso8601' XML-RPC value. c\[U[5(aXlg[U5Ulgr!)rLstrrHrQ)r'rHs r r"DateTime.__init__s eS ! !J"5)DJrc[U[5(aURnURnX#4$[U[5(aURn[ U5nX#4$[U[ 5(aURnUnX#4$[ US5(a#UR5nUR5nX#4$Un[nX#4$)N timetuple) rLrSrHrrIrUhasattrrXNotImplementedr'otherr os r make_comparableDateTime.make_comparables eX & & A At x ( ( A&At s # # AAt UK ( ( A!At AAt rcNURU5up#U[La[$X#:$r!r^rZr[s r __lt__DateTime.__lt__,)##E*  ! !u rcNURU5up#U[La[$X#:*$r!rar[s r __le__DateTime.__le__2)##E*  ! !v rcNURU5up#U[La[$X#:$r!rar[s r __gt__DateTime.__gt__8rdrcNURU5up#U[La[$X#:$r!rar[s r __ge__DateTime.__ge__>rhrcNURU5up#U[La[$X#:H$r!rar[s r __eq__DateTime.__eq__DrhrcD[R"URS5$Nz%Y%m%dT%H:%M:%S)rNstrptimerHr.s r rXDateTime.timetupleJs}}TZZ):;;rcUR$r!rGr.s r rDateTime.__str__Rs zzrc`SURRUR[U54-$)Nz<%s %r at %#x>)r-rrHidr.s r r/DateTime.__repr__Us&4>>#:#:DJJ4"QQQrc@[U5R5Ulgr!)rUstriprHr'datas r decodeDateTime.decodeXsY__& rc~URS5 URUR5 URS5 gNzz )writerH)r'outs r encodeDateTime.encode[s, -. $** 12rrGN)r)rrrrrr"r^rbrfrjrmrprXrr/rrrrrr rSrSsD * $     <R'3rrSc<[5nURU5 U$r!)rSrr~rHs r _datetimer`s JE LL Lrc0[R"US5$rs)rrtr~s r _datetime_typerfs   T#4 55rc:\rSrSrSrS SjrSrSrSrSr S r g) BinaryiozWrapper for binary data.NcUcSnOH[U[[45(d"[SURR -5e[U5nXlg)Nrz#expected bytes or bytearray, not %s)rLbytes bytearray TypeErrorr-rr~r}s r r"Binary.__init__rsN <DdUI$677 E $ 7 7!899;D rc.[URS5$)Nzlatin-1)rUr~r.s r rBinary.__str__s499i((rcb[U[5(a URnURU:H$r!)rLrr~)r'r\s r rp Binary.__eq__s' eV $ $JJEyyE!!rc:[R"U5Ulgr!)base64 decodebytesr~r}s r r Binary.decodes&&t, rcURS5 [R"UR5nURUR S55 URS5 gNz asciiz )rr encodebytesr~r)r'rencodeds r r Binary.encodesE %&$$TYY/ '..)* '(rrr!) rrrrrr"rrprrrrrr rros")" -)rrc<[5nURU5 U$r!)rrrs r _binaryrs HE LL Lrc&\rSrSrSrSrSrSrg) ExpatParseric[R"SS5=UlnXlURUlUR UlURUl SnURUS5 gr!) r ParserCreate_parser_targetstartStartElementHandlerendEndElementHandlerr~CharacterDataHandlerxml)r'targetparserencodings r r"ExpatParser.__init__sW % 2 24 >> v %+\\"#):: &,kk# 8T"rc<URRUS5 gNF)rParser}s r feedExpatParser.feeds 4'rcjURnU?U?URSS5 g![a gf=f)NrT)rrrAttributeError)r'rs r closeExpatParser.closes= $\\F dl LLd #    s % 22)rrN)rrrrr"rrrrrr rrs#($rrc\rSrSrSrSSjr0rSrSrSr \ \\ "S5'Sr \ \\ 'S r \ \\'\ rS r\\\'\4S jr\\\'S r\\\'\\\'S r\\\'\\\'\4Sjr\\\'Sr\\\'Sr\\\ '\\\!'\\S'Sr"g) Marshalleria^Generate an XML-RPC params chunk from a Python data structure. Create a Marshaller instance for each set of parameters, and use the "dumps" method to convert your data (represented as a tuple) to an XML-RPC params chunk. To write a fault response, pass a Fault instance instead. You may prefer to use the "dumps" module function for this purpose. Nc80UlSUlXlX lgr!)memor~r allow_none)r'rrs r r"Marshaller.__init__s   $rcJ/nURnURn[U[5(a1U"S5 U"URUR S.U5 U"S5 O1U"S5 UHnU"S5 U"XS5 U"S5 M U"S5 SR U5nU$) Nz r?z z z z z rE)append_Marshaller__dumprLr6r9r:join)r'valuesrrdumpvresults r dumpsMarshaller.dumpss {{ fe $ $ +  v//!'!3!35  ,  , k"Ql# -  rcvUR[U5nU"XU5 g![a [US5(d[ S[U5-5e[U5R H7nX@RR 5;dM"[ S[U5-5e URSnNf=f)N__dict__zcannot marshal %s objects_arbitrary_instance)dispatchtypeKeyErrorrYr__mro__keys)r'rHrftype_s r __dumpMarshaller.__dumps 5 d5k*A $u 55*-- ;d5k IJJe,,MM..00#$?$u+$MNN-  34A 5s$A%B8 (B87B8cLUR(d [S5eU"S5 g)Nz0cannot marshal None unless allow_none is enabledz)rrr'rHrs r dump_nilMarshaller.dump_nilsNO O %&rcXU"S5 U"U=(a S=(d S5 U"S5 g)Nz10z rrs r dump_boolMarshaller.dump_bools%  ! em"s# $%rcU[:d U[:a [S5eU"S5 U"[[ U555 U"S5 g)Nzint exceeds XML-RPC limitsz z )MAXINTMININT OverflowErrorrUintrs r dump_longMarshaller.dump_long s< 6>UV^ <= = n c#e*o  !rcFU"S5 U"[U55 U"S5 g)Nzz )reprrs r dump_doubleMarshaller.dump_doubles    d5k #$rc@U"S5 U"U"U55 U"S5 g)Nzz r)r'rHrrs r dump_unicodeMarshaller.dump_unicodes    fUm #$rc~U"S5 [R"U5nU"URS55 U"S5 gr)rrr)r'rHrrs r dump_bytesMarshaller.dump_bytes#s5 !"$$U+ gnnW%& #$rc[U5nX0R;a [S5eSURU'URnU"S5 UH nU"XR5 M U"S5 URU g)Nz"cannot marshal recursive sequencesz z )ryrrr)r'rHrirrs r dump_arrayMarshaller.dump_array+sd uI >@A A ! {{ &'A N )* IIaLrc[U5nX@R;a [S5eSURU'URnU"S5 UR 5HNupgU"S5 [ U[ 5(d [S5eU"SU"U5-5 U"Xr5 U"S5 MP U"S5 URU g)Nz%cannot marshal recursive dictionariesz z zdictionary key must be stringz%s z z )ryrrritemsrLrU)r'rHrrrrkrs r dump_structMarshaller.dump_struct9s uI >CD D ! {{ !"KKMDA , a%% ?@@ %q 1 2 N - " #$ IIaLrcFU"S5 U"[U55 U"S5 gr)rQrs r dump_datetimeMarshaller.dump_datetimeKs! )* i -.rcUR[;aX lURU5 U?gUR UR U5 gr!)r-WRAPPERSrrrrrs r dump_instanceMarshaller.dump_instanceQs: ??h &J LL     U^^U 3rr)rr~rrrr)#rrrrrr"rrrrrrboolrrdump_intrfloatrrrUrrrrrMlistrdictrrrrSrrrrr rrs% H6$'$HT$Z&HTN" HSMH%"HUO06%!HSM% !HUO$HY !HUOHTN/5 !HTN/'HX4'HX$HV'4H "#rrcv\rSrSrSrS0SjrSrSrSrSr Sr S r S r 0r S r\\ S 'S r\\ S'Sr\\ S'\\ S'\\ S'\\ S'\\ S'\\ S'Sr\\ S'\\ S'Sr\\ S'Sr\\ S'\\ S'Sr\\ S'S r\\ S!'S"r\\ S#'S$r\\ S%'S&r\\ S''S(r\\ S)'S*r\\ S+'S,r\\ S-'S.rg/)1 UnmarshallerieaUnmarshal 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). cSUl/Ul/Ul/UlSUlSUlSUlURRUlU=(d UUlX l g)NFutf-8) _type_stack_marks_data_value _methodname _encodingr _use_datetime _use_bytes)r' use_datetimeuse_builtin_typess r r"Unmarshaller.__init__qsW      kk(( .>,+rcURbUR(a [5eURS:Xa[S0URSD6e[ UR5$)Nfaultrr)r rr3r6r rMr.s r rUnmarshaller.close}sK :: / ! :: )$++a.) )T[[!!rcUR$r!)rr.s r getmethodnameUnmarshaller.getmethodnamesrcXlgr!)r)r'r standalones r rUnmarshaller.xmls!rc*SU;aURS5SnUS:XdUS:Xa.URR[UR55 /UlUR (aXR;a[SU-5eUS:HUlg)N:arraystructzunknown tag %rrH) splitrrlenr rrrr3)r'tagattrss r rUnmarshaller.startsv #:))C.$C '>SH_ KK  s4;;/ 0 ;;3mm3 03 67 7g~ rc:URRU5 gr!)rr)r'texts r r~Unmarshaller.datas $rcURUnU"USRUR55$![a> SU;agURURS5SnNX![a gf=ff=f)Nr"r#rE)rrr&rr)r'r(rs r rUnmarshaller.ends~  c"Arwwtzz*++ #~ MM#))C."45    s'3A;!A)) A73A;6A77A;cURUnU"X5$![a> SU;agURURS5SnN>![a gf=ff=f)Nr"r#)rrr&)r'r(r~rs r end_dispatchUnmarshaller.end_dispatchsn  c"A} #~ MM#))C."45    s&A!!A AA!AA!c4URS5 SUlgNr)rrr}s r end_nilUnmarshaller.end_nils D rnilcUS:XaURS5 O#US:XaURS5 O [S5eSUlg)NrFrTzbad boolean valuer)rrrr}s r end_booleanUnmarshaller.end_booleans; 3; KK  S[ KK /0 0 rbooleancFUR[U55 SUlgr4)rrrr}s r end_intUnmarshaller.end_ints CI ri1i2i4i8r bigintegercFUR[U55 SUlgr4)rrrr}s r end_doubleUnmarshaller.end_doubles E$K  rdoublercFUR[U55 SUlgr4)rrrr}s r end_bigdecimalUnmarshaller.end_bigdecimals GDM" r bigdecimalcUR(aURUR5nURU5 SUlgr4)rrrrr}s r end_stringUnmarshaller.end_strings. >>;;t~~.D D rstringnamecURR5nURUS/URUS&SUlgr4)rpopr r)r'r~marks r end_arrayUnmarshaller.end_arrays7{{ "kk$%01 DE rr$cURR5n0nURUSn[S[ U5S5HnXES-X4U'M U/URUS&SUlg)Nrr)rrRr ranger'r)r'r~rSrrrs r end_structUnmarshaller.end_structsh{{  DE"q#e*a(A"Q3ZDqN)"V DE rr%c[5nURURS55 UR(a URnUR U5 SUlg)Nrr)rrrrr~rrr'r~rHs r end_base64Unmarshaller.end_base64sA T[[)* ??JJE E rrc[5nURU5 UR(a [U5nUR U5 gr!)rSrrrrr\s r end_dateTimeUnmarshaller.end_dateTimes4  T   "4(E ErzdateTime.iso8601cJUR(aURU5 ggr!)rrMr}s r end_valueUnmarshaller.end_values ;; OOD ! rrHcSUlg)Nparamsr r}s r end_paramsUnmarshaller.end_paramss  rrfcSUlg)Nrrgr}s r end_faultUnmarshaller.end_faults  rrcvUR(aURUR5nXlSUlg)N methodName)rrrr r}s r end_methodNameUnmarshaller.end_methodNames( >>;;t~~.D! rrn) rrrrr r rrrrNFF)rrrrrr"rrrrr~rr1rr5r9r=rErIrMrTrYr]r`rcrhrkrorrrr r r esa ," " '  ,  HHUO&HYHTNHTNHTNHTNHUO$H\$HX"HW,H\ $HX!HV "HW$HX$HX $0H  " "HW#HX!HW" ,H\rr c&\rSrSrSrSrSrSrg)_MultiCallMethodi'cXlX lgr!)_MultiCallMethod__call_list_MultiCallMethod__name)r' call_listrPs r r"_MultiCallMethod.__init__*s $ rcP[URUR<SU<35$N.)rsrurvr'rPs r __getattr___MultiCallMethod.__getattr__-s 0 0T[[$2OPPrcRURRURU45 gr!)rurrvr'argss r __call___MultiCallMethod.__call__/s d 34r) __call_list__nameNrrrrr"r}rrrrr rsrs'sQ5rrsc$\rSrSrSrSrSrSrg)MultiCallIteratori2z]Iterates over the results of a multicall. Exceptions are raised in response to xmlrpc faults.cXlgr!results)r'rs r r"MultiCallIterator.__init__6s rcURUn[U[5(a[USUS5e[U[5(aUS$[ S5e)Nr9r:rz#unexpected type in multicall result)rrLrr6r ValueError)r'ritems r __getitem__MultiCallIterator.__getitem__9sU||A dD ! ![)4 +>? ? d # #7NBC CrrN)rrrrrr"rrrrr rr2s,Drrc0\rSrSrSrSrSrSrSrSr g) MultiCalliBaZserver -> an 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() cXl/Ulgr!)_MultiCall__server_MultiCall__call_list)r'servers r r"MultiCall.__init__Ss rcJSURR[U54-$)Nz <%s at %#x>)r-rryr.s r r/MultiCall.__repr__Ws  7 7DBBBrc.[URU5$r!)rsrr|s r r}MultiCall.__getattr__Zs 0 0$77rc/nURHup#URX#S.5 M [URRR U55$)N)rnrf)rrrrsystem multicall)r'marshalled_listrPrs r rMultiCall.__call__]sL**JD  " "4#I J+!!5!5!?!?!PQQr)r__serverN) rrrrrr"r/r}rrrrr rrBs C8RrrcJ[(ai[(a^U(a[n[RnO U(a [n[ nO [ n[ n[SSX2[5n[U5nXT4$[XS9n[(a[U5nXT4$[U5nXT4$)zgetparser() -> parser, unmarshaller Create an instance of the fastest available parser, and attach it to an unmarshalling object. Return both objects. TFrr) FastParserFastUnmarshallerrrrrrr6r r)rr mkdatetimemkbytesrrs r getparserros z&& 'J((G 'JG"JG!$wEJF# > <] :'F >!(F >rc[U[[45(dS5e[U[5(aSnO2U(a+[U[5(a[U5S:XdS5eU(dSn[(a [ U5nO [ X45nUR U5nUS:waS[U5-nOSnU(a USUSUS 4nOU(aUS US 4nOU$S RU5$) adata [,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. z(argument must be tuple or Fault instancerWz"response tuple must be a singletonr z$ z z z z z z rE) rLrMr6r'FastMarshallerrrrUr)rf methodnamemethodresponserrmr~ xmlheaders r rrs. fuen - -Y/YY -&%   Jvu556{aE!EE ~ 8 $ x , 776?D7;c(mK -   &(9       !  774=rc[XS9up4URU5 UR5 UR5UR54$)zdata -> 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. r)rrrr)r~rrpus r loadsrs< , TDAFF4LGGI 779aoo' ''rc[(d[e[5n[R"SUSS9nUR U5 SSS5 UR 5$!,(df  UR 5$=f)z`data -> gzip encoded data Encode data using the gzip content encoding as described in RFC 1952 wbrW)modefileobj compresslevelN)gzipNotImplementedErrorrGzipFilergetvalue)r~rgzfs r gzip_encodersY 4!! A D!1 = $ > ::< > = ::<s A A9cd[(d[e[R"S[U5S9nUS:aUR 5nOUR US-5nSSS5 US:a[W5U:a [ S5eW$![ a [ S5ef=f!,(df  NI=f)zjgzip encoded data -> unencoded data Decode data using the gzip content encoding as described in RFC 1952 rbrrrrWz invalid dataNz#max gzipped payload length exceeded)rrrrreadOSErrorrr')r~ max_decoderdecodeds r gzip_decoders 4!! D'$- 8C -A~((*((:>2 9Q3w<*4>?? N  -^, , - 9 8s.B!BB! BB!BB!! B/c$\rSrSrSrSrSrSrg)GzipDecodedResponsei)z`a file-like object to decode a response encoded with the gzip method, as described in RFC 1952. c[(d[e[UR55Ul[R R USURS9 g)Nrr)rrrriorr")r'responses r r"GzipDecodedResponse.__init__-s>t% %(--/* t$@rc[RRU5 URR5 g!URR5 f=fr!)rrrrr.s r rGzipDecodedResponse.close5s4  MM   % GGMMODGGMMOs <A)rN)rrrrrr"rrrrr rr)sArrc&\rSrSrSrSrSrSrg)_Methodi?cXlX lgr! _Method__send _Method__name)r'sendrPs r r"_Method.__init__Bs   rcP[URUR<SU<35$rz)rrrr|s r r}_Method.__getattr__Est{{t{{D$ABBrc:URURU5$r!rrs r r_Method.__call__Gs{{4;;--r)r__sendNrrrr rr?sC.rrc\rSrSrSrS\-rSrSrSSS.Sjjr SS jr SS jr S r S r S rSrSrSrSrSrSrg) TransportiPz1Handles an HTTP transaction to an XML-RPC server.zPython-xmlrpc/%sTNr)r&cXXlX lSUl[U5Ul/UlgN)NN)r_use_builtin_types _connectionr_headers_extra_headers)r'rrr&s r r"Transport.__init__^s))"3'W   rcFSHnURXX45s $ g![RRa U(aeMD[aPnU(d=UR [ R [ R[ R4;aeSnAMSnAff=f)N)rrW) single_requesthttpclientRemoteDisconnectedrerrno ECONNRESET ECONNABORTEDEPIPE)r'hosthandler request_bodyverboseres r requestTransport.requestpsA **4,PP;;11  (8(8%:L:L(- (555 s&B  B ABB c URXX45nUR5nURS:XaX@lUR U5$URSS5(aUR5 [X-URUR[UR555e![ a e[ a UR5 ef=f)Nzcontent-lengthrE) send_request getresponsestatusrparse_responser6 Exceptionr getheaderrrreasonr getheaders)r'rrrr http_connresps r rTransport.single_request}s ))$OI((*D{{c!& **400" >>*B / / IIK N KK " #     JJL   s AB..&Cc>[URURS9$)Nr)rrrr.s r rTransport.getparsers"d&8&8+/+B+BD Drcl0n[U[5(aUup[RR U5up1U(al[RR U5n[ R"U5RS5nSRUR55nSSU-4/nO/nXU4$)Nr rE AuthorizationzBasic ) rLrMurllibparse _splituserunquote_to_bytesrrrrr&)r'rx509auth extra_headerss r get_host_infoTransport.get_host_infos dE " "JD\\,,T2  <<006D%%d+227;D774::<(D (T/2MMD((rcUR(a!XRS:XaURS$URU5uo lnU[RR U54UlURS$)NrrW)rr rrrHTTPConnectionr'rchostr s r make_connectionTransport.make_connectionss   (8(8(; ;##A& &+/+=+=d+C("D!;!;E!BB""rc^URupU(aSUlUR5 ggr)rr)r'r connections r rTransport.closes,++ +D      rcURU5nURUR-nU(aURS5 UR(a.[ (a#UR SUSS9 URS5 OUR SU5 URS5 URSUR45 URXV5 URXS5 U$)NrWPOSTT)skip_accept_encoding)zAccept-Encodingr)z Content-Typeztext/xmlz User-Agent) rrrset_debuglevelaccept_gzip_encodingr putrequestr user_agent send_headers send_content)r'rrrdebugrr&s r rTransport.send_requests))$/ --$"5"55   % %a (  $ $  ! !&' ! M NN6 7  ! !&' 234 doo67 *. *3rc<UHup4URX45 M gr!) putheader)r'rr&keyvals r rTransport.send_headerssHC   * rc URbAUR[U5:a([(aURSS5 [ U5nURS[ [U555 UR U5 g)NContent-EncodingrzContent-Length)encode_thresholdr'rr$rrU endheaders)r'rrs r r Transport.send_contentsj  ! ! -  ! !C $5 5 D  !3V <&|4L-s3|3D/EFl+rc[US5(a%URSS5S:Xa [U5nOUnOUnUR5up4UR S5=n(aQUR (a[ S[U55 URU5 UR S5=n(aMQX!LaUR5 UR5 UR5$)Nrr)rErizbody:) rYrrrrrprintrrr)r'rstreamrrr~s r rTransport.parse_responses 8[ ) )!!"4b9VC,X6!F~~kk$''d'||gtDz* FF4Lkk$''d'  ! LLN  wwyr)rrrrrrrq)F)rrrrr __version__rrr*r"rrrr rrrrr rrrrr rrPsb;$k1J  !!$ BD)4#.+ ,"rrc@^\rSrSrSrS SSS.U4SjjjrSrSrU=r$) SafeTransporti2z2Handles an HTTPS transaction to an XML-RPC server.rNr&contextc0>[TU]UUUS9 X@lg)Nrrr&)superr"r5)r'rrr&r5r-s r r"SafeTransport.__init__5s$ l+s   (8(8(; ;##A& &t{{$566% ?A A,0+=+=d+C("D! 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. Nrr4c[RRU5n U RS;a [ S5eU R Ul[RRSS/U SSQ5UlUR(dSUlUc/U RS:Xa [n SU 0n O[n 0n U "S UUUS.U D6nX l U=(d S Ul X@l XPlg) N)rhttpszunsupported XML-RPC protocolrErz/RPC2rAr5r7r r)rrurlsplitschemernetloc_ServerProxy__host urlunsplit_ServerProxy__handlerr3r_ServerProxy__transport_ServerProxy__encoding_ServerProxy__verbose_ServerProxy__allow_none) r'uri transportrrrrrr&r5rr extra_kwargss r r"ServerProxy.__init__ss LL ! !# & 88, ,89 9hh 00"b1A1QR51AB~~$DN  xx7"' )73 #! 0\2C(/0#/0I%"-g &rc8URR5 gr!)rHrr.s r __closeServerProxy.__closes  rc[X!URURS9RURS5nURR UR URUURS9n[U5S:XaUSnU$)N)rrxmlcharrefreplace)rrWr) rrIrKrrHrrErGrJr')r'rrfrrs r __requestServerProxy.__requestsT__#'#4#466> C rc.[URU5$r!)r_ServerProxy__requestr|s r r}ServerProxy.__getattr__st~~t,,rcjUS:Xa UR$US:Xa UR$[SU<S35e)ziA workaround to get special attributes on the ServerProxy without interfering with the magic __getattr__ rrMz Attribute z not found)_ServerProxy__closerHr)r'attrs r rServerProxy.__call__s7 7?<<  [ ## #?@@rcU$r!rr.s r __enter__ServerProxy.__enter__s rc$UR5 gr!)r]rs r __exit__ServerProxy.__exit__s  r) __allow_none __encoding __handler__host __transport __verbose)NNFFFF)rrrrrr"r]rZr/r}rrardrrrr r?r?]sD*DIIN''>!$ -Arr?__main__zhttp://localhost:8000ERROR rWrq)NNNF)i@)TrrsysrNrdecimalr http.clientr urllib.parser xml.parsersrrrrr ImportErrorr version_infor1rr PARSE_ERROR SERVER_ERRORAPPLICATION_ERROR SYSTEM_ERRORTRANSPORT_ERRORNOT_WELLFORMED_ERRORUNSUPPORTED_ENCODINGINVALID_ENCODING_CHARINVALID_XMLRPCMETHOD_NOT_FOUNDINVALID_METHOD_PARAMSINTERNAL_ERRORrrrr3r6rr;BooleanrIrQrSrrrrrrrr rsrrrrrrrrrrrrrrrr3r?Serverrrr. currentTimegetCurrentTimermultigetDatapowaddrrrr rsr(T  # ((!,,      I E & E BEB'@ 5P3P3d 6!)!)F f  $$B`4`4N},},D 5 5DD R RJ2655.NBF@V (, 044$--V, . ."]]D#I#VeeR   z 0 1F f  //12 f E MMO IIaN IIaNH (O #y) DJ*  gq  gqsAG(3 G7H(G43G47H= H  HH, H''H,