wQc@sddddgZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z m Z mZmZddlmZdd lmZmZmZmZdd lmZmZydd lmZWn!ek rdd lmZnXd Zejejegd ddfD]Z e!e"ie ^qDZ#de$fdYZ%fidZ&dZ'de(fdYZ)dZ*dZ+de$fdYZ,de$fdYZ-iej.ej/fd6ej0ej1fd6Z2de$fdYZ3de4fdYZ5de$fd YZ6d!Z7id"Z8e9e9e9e:d#Z;d$e$fd%YZ<d&e$fd'YZ=e:d(Z>d)e6fd*YZ?d+e6fd,YZ@d-e@fd.YZAd/e6fd0YZBd1e6fd2YZCd3e6fd4YZDe8d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKfZEdLeEfdMYZFe8dNd7d8d:d<d@dOdPdQdRd ddGdSdTdUdfZGe8dVd<d:d@d;dAfZHe8dWdXdYdZd[d\d]d^d_d`f ZIidadY6dad_6dbd[6dbd\6eI_Jde3fdcYZKeKjddejeKjdeejeKjdfejLeBeKjdgejMe@eKjdhejNe@eKjdiejOe@eKjdjejPe@eKjdkejQeAeKjdle eIeKjdmeReFeKjdneSeGeKjd&e=eDeKjdoe>eHeKjd$e<eCeKjdbdpe?dqeTeKjdadqeTdS(rt BaseManagert SyncManagert BaseProxytTokeniN(t format_exc(tProcesstcurrent_processtactive_childrentPooltutilt connection(tAuthenticationString(texittPopentassert_spawningtForkingPickler(tFinalizetinfo(t PicklingErrorcCstj|j|jffS(N(tarrayttypecodettostring(ta((s./sys/lib/python2.7/multiprocessing/managers.pyt reduce_array@stitemstkeystvaluescBs8eZdZdZdZdZdZdZRS( s4 Type to uniquely indentify a shared object ttypeidtaddresstidcCs!||||_|_|_dS(N(RRR(tselfRRR((s./sys/lib/python2.7/multiprocessing/managers.pyt__init__PscCs|j|j|jfS(N(RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyt __getstate__SscCs|\|_|_|_dS(N(RRR(Rtstate((s./sys/lib/python2.7/multiprocessing/managers.pyt __setstate__VscCsd|j|j|jfS(Ns#Token(typeid=%r, address=%r, id=%r)(RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__repr__Ys(stypeidsaddresssid(t__name__t __module__t__doc__t __slots__RR R"R#(((s./sys/lib/python2.7/multiprocessing/managers.pyRJs    cCsN|j||||f|j\}}|dkr;|St||dS(sL Send a message to manager using connection `c` and return response s#RETURNN(tsendtrecvtconvert_to_error(tcRt methodnametargstkwdstkindtresult((s./sys/lib/python2.7/multiprocessing/managers.pytdispatchas  cCsN|dkr|S|dkr&t|S|dkr@td|StdSdS(Ns#ERRORs #TRACEBACKs#UNSERIALIZABLEsUnserializable message: %s sUnrecognized message type(t RemoteErrort ValueError(R/R0((s./sys/lib/python2.7/multiprocessing/managers.pyR*ks    R2cBseZdZRS(cCs)ddddt|jdddS(Ns t-iKi(tstrR-(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__str__xs(R$R%R6(((s./sys/lib/python2.7/multiprocessing/managers.pyR2wscCsOg}xBt|D]4}t||}t|dr|j|qqW|S(s4 Return a list of names of methods of `obj` t__call__(tdirtgetattrthasattrtappend(tobjttemptnametfunc((s./sys/lib/python2.7/multiprocessing/managers.pyt all_methodss cCs-gt|D]}|ddkr |^q S(sP Return a list of names of methods of `obj` which do not start with '_' it_(R@(R<R>((s./sys/lib/python2.7/multiprocessing/managers.pytpublic_methodsstServerc BseZdZddddddddd g Zd Zd Zd Zd ZdZdZ dZ ie d6e d6ed6Z dZ dZ dZdZdZdZdZdZdZRS(sM Server class which runs in a process controlled by a manager object tshutdowntcreatetaccept_connectiont get_methodst debug_infotnumber_of_objectstdummytincreftdecrefcCs||_t||_t|\}}|d|dd|_|jj|_iddfd6|_i|_t j |_ d|_ dS(NRtbacklogit0i(( tregistryR tauthkeytlistener_clienttlistenerRtNonet id_to_objtid_to_refcountt threadingtRLocktmutextstop(RRORRPt serializertListenertClient((s./sys/lib/python2.7/multiprocessing/managers.pyRs  cCs|t_zykxdy|jj}Wnttfk rDqnXtjd|jd|f}t |_ |j qWnt t fk rnXWdd|_|jjXdS(s( Run the server forever ttargetR-Ni(Rt_manager_serverRRtaccepttOSErrortIOErrorRVtThreadthandle_requesttTruetdaemontstarttKeyboardInterruptt SystemExitRYtclose(RR+tt((s./sys/lib/python2.7/multiprocessing/managers.pyt serve_forevers   c Cs`d}}}yWtj||jtj||j|j}|\}}}}t||}Wn tk rdtf} nFXy||||}Wn tk rdtf} n Xd|f} y|j | Wnqtk rQ} y|j dtfWntk rnXt j d| t j d|t j d| nX|j dS(s) Handle a new connection s #TRACEBACKs#RETURNsFailure to send message: %rs ... request was %rs ... exception was %rN( RSR tdeliver_challengeRPtanswer_challengeR)R9t ExceptionRR(R RRi( RR+tfuncnameR0trequesttignoreR-R.R?tmsgte((s./sys/lib/python2.7/multiprocessing/managers.pyRcs2     cCstjdtjj|j}|j}|j}x|jsyd}}|}|\}}} } ||\}} } || krt d|t || fnt ||} y| | | }Wnt k r}d|f}npX| o| j|d}|rP|j|||\}}t||j|}d||ff}n d|f}Wnt k r|dkrdtf}q?y8|j|}|||||| | }d|f}Wq?t k rdtf}q?XnVtk rtjdtjjtjdn t k r>dtf}nXy>y||Wn)t k r{}|d t|fnXWq7t k r}tjd tjjtjd |tjd ||jtjd q7Xq7WdS(sQ Handle requests from the proxies in a particular process/thread s$starting server thread to service %rs+method %r of %r object is not in exposed=%rs#ERRORs#PROXYs#RETURNs #TRACEBACKs$got EOF -- exiting thread serving %ris#UNSERIALIZABLEsexception in thread serving %rs ... message was %rs ... exception was %riN(R tdebugRVtcurrent_threadR>R)R(RTRYRStAttributeErrorttypeR9RntgetRERRRtfallback_mappingtEOFErrortsysR treprRRi(RtconnR)R(RTR,R<RptidentR-R.texposedt gettypeidtfunctiontresRsRrRtridenttrexposedttokent fallback_funcR0((s./sys/lib/python2.7/multiprocessing/managers.pyt serve_clientsl                 cCs|S(N((RR}R~R<((s./sys/lib/python2.7/multiprocessing/managers.pytfallback_getvalue+scCs t|S(N(R5(RR}R~R<((s./sys/lib/python2.7/multiprocessing/managers.pyt fallback_str.scCs t|S(N(R|(RR}R~R<((s./sys/lib/python2.7/multiprocessing/managers.pyt fallback_repr1sR6R#s #GETVALUEcCsdS(N((RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRJ:scCs|jjzg}|jj}|jxS|D]K}|dkr6|jd||j|t|j|dd fq6q6Wdj|SWd|jj XdS(sO Return some info --- useful to spot problems with refcounting RNs %s: refcount=%s %siiKs N( RXtacquireRTRtsortR;RUR5tjointrelease(RR+R0RR~((s./sys/lib/python2.7/multiprocessing/managers.pyRH=s      'cCst|jdS(s* Number of shared objects i(tlenRT(RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRIOscCszytjd|jd tjtjkrZtjdtjt_tjt_ntj dx(t D]}tjd|j qqWx(t D]}tjd|j qWtj tj dWnddl}|jnXWdtdXdS( s' Shutdown this process s!manager received shutdown messages#RETURNsresetting stdout, stderris&terminating a child process of managersmanager exiting with exitcode 0iN(s#RETURNN(R RtR(RSR{tstdoutt __stdout__t __stderr__tstderrt_run_finalizersRt terminateRRt tracebackt print_excR (RR+tpR((s./sys/lib/python2.7/multiprocessing/managers.pyRDUs*         c Os%|jjz|j|\}}}}|dkrB|d} n|||} |dkrlt| }n|dk rt|t|}ndt| } tjd|| | t ||f|j | <| |j krd|j | Create a new shared object and return its id is%xs&%r callable returned object with id %rN(RXRRORSRBtlistRR RttsetRTRURKttupleR( RR+RR-R.tcallableRtmethod_to_typeidt proxytypeR<R~((s./sys/lib/python2.7/multiprocessing/managers.pyREus$     cCst|j|jdS(sL Return the methods of the shared object indicated by token i(RRTR(RR+R((s./sys/lib/python2.7/multiprocessing/managers.pyRGscCs-|tj_|jd|j|dS(s= Spawn a new thread to serve this connection s#RETURNN(s#RETURNN(RVRuR>R(RSR(RR+R>((s./sys/lib/python2.7/multiprocessing/managers.pyRFs cCs9|jjz|j|cd7 Connect manager object to the server process RPRJN( RQRRRR1RSRRRR(RR[R\R}((s./sys/lib/python2.7/multiprocessing/managers.pytconnectsc CsL|d k r+t|d r+tdntjdt\}}tdt|jd|j |j |j |j |||f|_ djd|j jD}t|jd||j _|j j|j|j|_ |jtj|j_tj|t|jd|j |j |j |j|jfd d |_d S( s@ Spawn a server process for this manager object R7sinitializer must be a callabletduplexR]R-t:css|]}t|VqdS(N(R5(t.0ti((s./sys/lib/python2.7/multiprocessing/managers.pys sR4t exitpriorityiN(RSR:t TypeErrorR tPipetFalseRRwt _run_serverRRRRt_processRt _identityR$R>RfRiR)RRRRR Rt_finalize_managerRRD(Rt initializertinitargstreadertwriterR~((s./sys/lib/python2.7/multiprocessing/managers.pyRfs&   c Csl|dk r||n|j||||}|j|j|jtjd|j|jdS(s@ Create a server, report its address and run it smanager serving at %rN(RSt_ServerR(RRiR RRk( tclsRORRPRZRRRtserver((s./sys/lib/python2.7/multiprocessing/managers.pyRs   cOsk|j|jd|j}z)t|dd|f||\}}Wd|jXt||j||fS(sP Create a new shared object; return the token and exposed tuple RPREN(RRRR1RSRiR(RRR-R.R}RR((s./sys/lib/python2.7/multiprocessing/managers.pyt_create0s ) cCs|jj|dS(sC Join the manager process (if it has been spawned) N(RR(Rttimeout((s./sys/lib/python2.7/multiprocessing/managers.pyR<scCsA|j|jd|j}zt|ddSWd|jXdS(sS Return some info about the servers shared objects and connections RPRHN(RRRR1RSRi(RR}((s./sys/lib/python2.7/multiprocessing/managers.pyt _debug_infoBscCsA|j|jd|j}zt|ddSWd|jXdS(s5 Return the number of shared objects RPRIN(RRRR1RSRi(RR}((s./sys/lib/python2.7/multiprocessing/managers.pyt_number_of_objectsLscCs|S(N((R((s./sys/lib/python2.7/multiprocessing/managers.pyt __enter__VscCs|jdS(N(RD(Rtexc_typetexc_valtexc_tb((s./sys/lib/python2.7/multiprocessing/managers.pyt__exit__YscCs|jrtjdy8||d|}zt|ddWd|jXWntk rdnX|jdd|jrtjdt|drtjd |j |jdd |jrtjd qqqnt j |_ yt j|=Wntk rnXdS( sQ Shutdown the manager process; will be registered as a finalizer s#sending shutdown message to managerRPRDNRg?smanager still aliveRs'trying to `terminate()` manager processg?s#manager still alive after terminate(tis_aliveR RR1RSRiRnRR:RRRRRt_address_to_localtKeyError(tprocessRRPR!RR}((s./sys/lib/python2.7/multiprocessing/managers.pyR\s.          cCs|jS(N(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyt|sc sd|jkr$|jj|_ndkr9tn|pNtdd}|pftdd}|rx|jD] \}}q|Wn|||f|j<|rfd} | _t|| ndS(s9 Register a typeid with the manager type Rt _exposed_t_method_to_typeid_c stjd|j||\}}||jd|d|jd|}|j|jd|j}t|dd|j f|S(Ns)requesting creation of a shared %r objecttmanagerRPRRL( R RtRRRRRR1RSR(RR-R.RtexptproxyR}(RR(s./sys/lib/python2.7/multiprocessing/managers.pyR=sN( t__dict__RtcopyRSt AutoProxyR9RR$tsetattr( RRRRRRt create_methodtkeyRR=((RRs./sys/lib/python2.7/multiprocessing/managers.pytregister~s   N(((R$R%R&RRCRRSRRRRRft classmethodRRRRRRRt staticmethodRtpropertyRRdR(((s./sys/lib/python2.7/multiprocessing/managers.pyRs*   $     tProcessLocalSetcBseZdZdZRS(cCstj|ddS(NcSs |jS(N(tclear(R<((s./sys/lib/python2.7/multiprocessing/managers.pyRs(R tregister_after_fork(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCst|dfS(N((Rw(R((s./sys/lib/python2.7/multiprocessing/managers.pyRs(R$R%RR(((s./sys/lib/python2.7/multiprocessing/managers.pyRs cBseZdZiZejZd d d edZ dZ d idZ dZ dZ edZdZdZd Zd Zd ZRS(s. A base for proxies of shared objects cCs;tjjzPtjj|jd}|dkr\tjt f}|tj|jRVRuRRRRR1RSRR (RR>R}((s./sys/lib/python2.7/multiprocessing/managers.pyt_connects  c Cs5y|jj}Wn@tk rRtjdtjj|j|jj}nX|j |j |||f|j \}}|dkr|S|dkr"|\}}|j j |jd} | ||jd|j d|jd|} |j|jd|j}t|d d|jf| St||d S( sW Try to call a method of the referrent and return a copy of the result s#thread %r does not own a connections#RETURNs#PROXYiRRPRRLN(RR RvR RtRVRuR>RR(RR)RRRRRRRR1RSRR*( RR,R-R.R}R/R0RRRR((s./sys/lib/python2.7/multiprocessing/managers.pyt _callmethods*      cCs |jdS(s9 Get a copy of the value of the referent s #GETVALUE(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyt _getvaluesc Cs|j|jjd|j}t|dd|jftjd|jj |j j |j|j or|j j }tj|tjd|j|j||j|j |jfdd|_dS(NRPRKs INCREF %rR-Ri (RRRRR1RSRR RtRRtaddRRRRt_decrefRt_close(RR}R!((s./sys/lib/python2.7/multiprocessing/managers.pyR s cCs|j|j|dks.|jtjkryEtjd|j||jd|}t |dd|jfWqt k r}tjd|qXntjd|j| rt |drtjdt j j|jj|`ndS(Ns DECREF %rRPRLs... decref failed %ss%DECREF %r -- manager already shutdownR s-thread %r has no more proxies so closing conn(tdiscardRRSRRRR RtRR1RnR:RVRuR>R Ri(RRPR!ttlstidsetRR}Rs((s./sys/lib/python2.7/multiprocessing/managers.pyRs  cCsBd|_y|jWn$tk r=}tjd|nXdS(Nsincref failed: %s(RSRRRnR R(RRs((s./sys/lib/python2.7/multiprocessing/managers.pyR6s  cCsi}tjr"|j|ds  cCs |jS(N(R(Rtmemo((s./sys/lib/python2.7/multiprocessing/managers.pyt __deepcopy__KscCs*dt|j|jjdt|fS(Ns<%s object, typeid %r at %s>s0x%x(RwR$RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#NscCs8y|jdSWn tk r3t|d dSXdS(sV Return representation of the referent (or a fall-back if that fails) R#is; '__str__()' failed>N(RRnR|(R((s./sys/lib/python2.7/multiprocessing/managers.pyR6Rs N((R$R%R&RR tForkAwareThreadLockRRSRdRRRRRRRRRRR#R6(((s./sys/lib/python2.7/multiprocessing/managers.pyRs %      cCsttdd}|r?|j|jkr?|j|jdS|jdtodttdt }|||d||SdS(s Function used for unpickling proxy objects. If possible the shared object is returned, or otherwise a proxy for it. R^iRKt _inheritingN( R9RRSRRTRtpopRdR(R?RRZR.RRK((s./sys/lib/python2.7/multiprocessing/managers.pyR_s cBse|}y|||fSWnek r1nXi}x |D]}d||f|Uq?We|ef|}||_||||f<|S(sC Return an proxy type whose methods are given by `exposed` sLdef %s(self, *args, **kwds): return self._callmethod(%r, args, kwds)(RRRwRR(R>Rt_cachetdictmetht ProxyType((s./sys/lib/python2.7/multiprocessing/managers.pyt MakeProxyTypets    c Cst|d}|dkr\||jd|}zt|dd|f}Wd|jXn|dkr|dk r|j}n|dkrtj}ntd|j |}|||d|d|d|} t | _ | S(s* Return an auto-proxy for `token` iRPRGNs AutoProxy[%s]RRK( RQRSRR1RiRRRPRRRdR( RRZRRPRRKRR}RR((s./sys/lib/python2.7/multiprocessing/managers.pyRs     t NamespacecBseZdZdZRS(cKs|jj|dS(N(Rtupdate(RR.((s./sys/lib/python2.7/multiprocessing/managers.pyRscCss|jj}g}x=|D]5\}}|jds|jd||fqqW|jdtjd|S(NRAs%s=%rs Namespace(%s)s, (RRt startswithR;RR5R(RRR=R>R((s./sys/lib/python2.7/multiprocessing/managers.pyR#s (R$R%RR#(((s./sys/lib/python2.7/multiprocessing/managers.pyRs tValuecBs>eZedZdZdZdZeeeZRS(cCs||_||_dS(N(t _typecodet_value(RRRtlock((s./sys/lib/python2.7/multiprocessing/managers.pyRs cCs|jS(N(R (R((s./sys/lib/python2.7/multiprocessing/managers.pyRxscCs ||_dS(N(R (RR((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs dt|j|j|jfS(Ns %s(%r, %r)(RwR$R R (R((s./sys/lib/python2.7/multiprocessing/managers.pyR#s( R$R%RdRRxRR#RR(((s./sys/lib/python2.7/multiprocessing/managers.pyR s     cCstj||S(N(R(RtsequenceR ((s./sys/lib/python2.7/multiprocessing/managers.pytArrayst IteratorProxycBsDeZd ZdZdZdZdZd Zd ZRS( t__next__tnextR(tthrowRicCs|S(N((R((s./sys/lib/python2.7/multiprocessing/managers.pyt__iter__scGs|jd|S(NR(R(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRscGs|jd|S(NR(R(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRscGs|jd|S(NR((R(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR(scGs|jd|S(NR(R(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRscGs|jd|S(NRi(R(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRis(s__next__snextssendsthrowsclose( R$R%RRRRR(RRi(((s./sys/lib/python2.7/multiprocessing/managers.pyRs     t AcquirerProxycBs5eZdZedZdZdZdZRS(RRcCs|jd|fS(NR(R(Rtblocking((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(RRRR((s./sys/lib/python2.7/multiprocessing/managers.pyRs(sacquiresrelease(R$R%RRdRRRR(((s./sys/lib/python2.7/multiprocessing/managers.pyRs    tConditionProxycBs,eZdZd dZdZdZRS( RRtwaittnotifyt notify_allcCs|jd|fS(NR(R(RR((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRs(sacquiresreleaseswaitsnotifys notify_allN(R$R%RRSRRR(((s./sys/lib/python2.7/multiprocessing/managers.pyRs  t EventProxycBs5eZdZdZdZdZd dZRS( tis_setRRRcCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs |jdS(NR(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRscCs|jd|fS(NR(R(RR((s./sys/lib/python2.7/multiprocessing/managers.pyRs(sis_setssetsclearswaitN(R$R%RRRRRSR(((s./sys/lib/python2.7/multiprocessing/managers.pyRs    tNamespaceProxycBs)eZdZdZdZdZRS(t__getattribute__t __setattr__t __delattr__cCsB|ddkr tj||Stj|d}|d|fS(NiRARR(tobjectR(RRt callmethod((s./sys/lib/python2.7/multiprocessing/managers.pyt __getattr__scCsH|ddkr#tj|||Stj|d}|d||fS(NiRARR(R!RR(RRRR"((s./sys/lib/python2.7/multiprocessing/managers.pyRscCsB|ddkr tj||Stj|d}|d|fS(NiRARR (R!R R(RRR"((s./sys/lib/python2.7/multiprocessing/managers.pyR s(s__getattribute__s __setattr__s __delattr__(R$R%RR#RR (((s./sys/lib/python2.7/multiprocessing/managers.pyRs  t ValueProxycBs/eZdZdZdZeeeZRS(RxRcCs |jdS(NRx(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRx scCs|jd|fS(NR(R(RR((s./sys/lib/python2.7/multiprocessing/managers.pyRs(sgetsset(R$R%RRxRRR(((s./sys/lib/python2.7/multiprocessing/managers.pyR$ s  t BaseListProxyt__add__t __contains__t __delitem__t __delslice__t __getitem__t __getslice__t__len__t__mul__t __reversed__t__rmul__t __setitem__t __setslice__R;tcounttextendtindextinsertRtremovetreverseRt__imul__t ListProxycBseZdZdZRS(cCs|jd|f|S(NR3(R(RR((s./sys/lib/python2.7/multiprocessing/managers.pyt__iadd__scCs|jd|f|S(NR8(R(RR((s./sys/lib/python2.7/multiprocessing/managers.pyR8s(R$R%R:R8(((s./sys/lib/python2.7/multiprocessing/managers.pyR9s t DictProxyRRRxthas_keytpopitemt setdefaultRt ArrayProxyt PoolProxytapplyt apply_asyncRitimaptimap_unorderedRtmapt map_asyncRt AsyncResulttIteratorcBseZdZRS(s( Subclass of `BaseManager` which supports a number of shared object types. The types registered are those intended for the synchronization of threads, plus `dict`, `list` and `Namespace`. The `multiprocessing.Manager()` function creates started instances of this class. (R$R%R&(((s./sys/lib/python2.7/multiprocessing/managers.pyR?s tQueuet JoinableQueuetEventtLockRWt SemaphoretBoundedSemaphoret ConditionRRtdictRRR(Ut__all__tosR{tweakrefRVRRIRRtmultiprocessingRRRRR R tmultiprocessing.processR tmultiprocessing.forkingR R RRtmultiprocessing.utilRRtcPickleRt ImportErrorRRRR>RwR9t view_typesR!RR1R*RnR2R@RBRCRR[R\t XmlListenert XmlClientRQRRRRRRRSRdRRR RRRRRRR$R%R9R;R?R@RRRKRLRWRMRNRORRPR(((s./sys/lib/python2.7/multiprocessing/managers.pyt$s      ."  4  ,