PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB` sh-3ll

HOME


sh-3ll 1.0
DIR:/lib64/python3.12/multiprocessing/__pycache__/
Upload File :
Current File : //lib64/python3.12/multiprocessing/__pycache__/managers.cpython-312.opt-2.pyc
�

�?h��
��gd�ZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZmZmZddlmZdd	lmZdd
lmZddlmZ	ddlmZd
Zej1d�d�Zej6eje�dD�cgc]}eei|�����c}Zd�ZeD]Z ej6e e��[ [Gd�de!�Z"difd�Z#d�Z$Gd�de%�Z&d�Z'd�Z(Gd�de!�Z)Gd�de!�Z*e
jVe
jXfe
jZe
j\fd �Z/Gd!�d"e!�Z0Gd#�d$e1�Z2Gd%�d&e!�Z3d'�Z4ifd(�Z5		dbd)�Z6Gd*�d+e!�Z7Gd,�d-e!�Z8dcd.�Z9Gd/�d0e3�Z:Gd1�d2e3�Z;Gd3�d4e;�Z<Gd5�d6e3�Z=Gd7�d8e3�Z>Gd9�d:e3�Z?Gd;�d<e3�Z@e5d=d>�ZAGd?�d@eA�ZBe5dAdB�ZCdCdDieC_De5dEdF�ZEe5dGdH�ZFdIdIdIdDdDdJ�eF_DGdK�dGeF�ZGGdL�dMe0�ZHeHj7dNej��eHj7dOej��eHj7dPej�e=�eHj7dQej�e;�eHj7dRej�e;�eHj7dSej�e;�eHj7dTej�e;�eHj7dUej�e<�eHj7dVej�e>�eHj7dWej�eG�eHj7dXeReB�eHj7dYeSeC�eHj7d-e8e@�eHj7dZe9eE�eHj7d+e7e?�eHj7dDe:d�[�eHj7dId�\�er!Gd]�d^�ZTGd_�d`e)�ZUGda�de0�ZVyy#e$rdZY���wxYwcc}w)d)�BaseManager�SyncManager�	BaseProxy�Token�N)�getpid)�
format_exc�)�
connection)�	reduction�get_spawning_popen�ProcessError)�pool)�process)�util)�get_context)�
shared_memoryT�SharedMemoryManagerFc�Z�tj|j|j�ffS�N)�array�typecode�tobytes)�as �1/usr/lib64/python3.12/multiprocessing/managers.py�reduce_arrayr/s ���;�;����Q�Y�Y�[�1�1�1�)�items�keys�valuesc�&�tt|�ffSr)�list��objs r�rebuild_as_listr$4s���$�s�)���rc�*�eZdZ	dZd�Zd�Zd�Zd�Zy)r��typeid�address�idc�0�|||c|_|_|_yrr&)�selfr'r(r)s    r�__init__zToken.__init__Ds��06���,���d�l�D�Grc�H�|j|j|jfSrr&�r+s r�__getstate__zToken.__getstate__Gs�����T�\�\�4�7�7�3�3rc�.�|\|_|_|_yrr&�r+�states  r�__setstate__zToken.__setstate__Js��/4�,���d�l�D�Grc��|jj�d|j�d|j�d|j�d�S)Nz(typeid=z
, address=z, id=�))�	__class__�__name__r'r(r)r.s r�__repr__zToken.__repr__Ms-�����'�'����d�l�l�D�G�G�M�	MrN)r7�
__module__�__qualname__�	__slots__r,r/r3r8�rrrr>s$���,�I�E�4�5�Mrrr<c�z�	|j||||f�|j�\}}|dk(r|St||��)N�#RETURN)�send�recv�convert_to_error)�cr)�
methodname�args�kwds�kind�results       r�dispatchrHUsG����F�F�B�
�D�$�'�(��6�6�8�L�D�&��y���
�
�4��
(�(rc	���|dk(r|S|dvrSt|t�s%tdj||t	|����|dk(rtd|z�St|�St
dj|��S)N�#ERROR)�
#TRACEBACK�#UNSERIALIZABLEz.Result {0!r} (kind '{1}') type is {2}, not strrLzUnserializable message: %s
zUnrecognized message type {!r})�
isinstance�str�	TypeError�format�type�RemoteError�
ValueError)rFrGs  rrArA_s����x���
�	
�2�	2��&�#�&��@�G�G��D�$�v�,�0�1�
1��$�$��=��F�G�G��v�&�&��:�A�A�$�G�H�Hrc��eZdZd�Zy)rRc�>�dt|jd�zdzS)NzM
---------------------------------------------------------------------------
rzK---------------------------------------------------------------------------)rNrDr.s r�__str__zRemoteError.__str__os��$�s�4�9�9�Q�<�'8�8�6�A�BrN)r7r9r:rVr<rrrRrRns��CrrRc�~�	g}t|�D]+}t||�}t|�s�|j|��-|Sr)�dir�getattr�callable�append)r#�temp�name�funcs    r�all_methodsr_vsB����D��C����s�D�!���D�>��K�K�����Krc�R�	t|�D�cgc]
}|ddk7s�|��c}Scc}w)Nr�_)r_)r#r]s  r�public_methodsrb�s2���)��-�@�-�T��a��C��D�-�@�@��@s�
$�$c��eZdZ	gd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zeee
d�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�Server)	�shutdown�create�accept_connection�get_methods�
debug_info�number_of_objects�dummy�incref�decrefc�z�t|t�s$tdj|t	|����||_t
j|�|_t|\}}||d��|_
|jj|_ddi|_i|_
i|_tj �|_y)Nz&Authkey {0!r} is type {1!s}, not bytes�)r(�backlog�0�Nr<)rM�bytesrOrPrQ�registryr�AuthenticationString�authkey�listener_client�listenerr(�	id_to_obj�id_to_refcount�id_to_local_proxy_obj�	threading�Lock�mutex)r+rtr(rv�
serializer�Listener�Clients       rr,zServer.__init__�s����'�5�)��8�?�?��T�'�]�,�-�
-�!��
��3�3�G�<���*�:�6���&�!��#�>��
��}�}�,�,����z�*��� ���%'��"��^�^�%��
rc��	tj�|_|tj�_	tj|j��}d|_|j�	|jj�s6|jjd�|jj�s�6tjtj k7rGt#j$d�tj t_tj&t_tj*d�y#ttf$rY��wxYw#tjtj k7rGt#j$d�tj t_tj&t_tj*d�wxYw)N)�targetTr	zresetting stdout, stderrr)r|�Event�
stop_eventr�current_process�_manager_server�Thread�accepter�daemon�start�is_set�wait�KeyboardInterrupt�
SystemExit�sys�stdout�
__stdout__r�debug�
__stderr__�stderr�exit)r+r�s  r�
serve_foreverzServer.serve_forever�s%��	�$�/�/�+���48����!�1�	� �'�'�t�}�}�=�H�"�H�O��N�N��
��/�/�0�0�2��O�O�(�(��+��/�/�0�0�2�
�z�z�S�^�^�+��
�
�5�6� �^�^��
� �^�^��
��H�H�Q�K��&�z�2�
��
���z�z�S�^�^�+��
�
�5�6� �^�^��
� �^�^��
��H�H�Q�K�s+�7E�-AD;�;E
�
E�E
�
E�A?Gc���		|jj�}tj|j
|f��}d|_|j��U#t$rY�awxYw)NT�r�rD)rx�accept�OSErrorr|r��handle_requestr�r�)r+rB�ts   rr�zServer.accepter�sa���
��M�M�(�(�*��� � ��(;�(;�1�$�G�A��A�H�
�G�G�I����
��
�s�A�	A#�"A#c��d}	tj||j�tj||j�|j	�}|\}}}}t||�}	||g|��i|��}d|f}		|j|	�y#t$rdt�f}	Y�*wxYw#t$rdt�f}	Y�EwxYw#t$rx}
	|jdt�f�n#t$rYnwxYwtjd|	�tjd|�tjd|
�Yd}
~
yd}
~
wwxYw)Nr>rKzFailure to send message: %rz ... request was %r� ... exception was %r)r
�deliver_challengerv�answer_challenger@rY�	Exceptionrr?r�info)r+rB�request�ignore�funcnamerDrEr^rG�msg�es           r�_handle_requestzServer._handle_request�s2����	*��(�(��D�L�L�9��'�'��4�<�<�8��f�f�h�G�+2�(�F�H�d�D��4��*�D�
*��a�/�$�/�$�/��!�&�)��		2�
�F�F�3�K��
�
3�#�Z�\�2��
3���	/����.�C�	/���	2�
�����j�l�3�4���
��
���I�I�3�S�9��I�I�+�W�5��I�I�-�q�1�1��	2�s[�A#B&�(B�9C�B#�"B#�&B>�=B>�	E�C'�&D=�'	C3�0D=�2C3�3AD=�=Ec��		|j|�|j�y#t$rY�wxYw#|j�wxYwr)r�r��close�r+�conns  rr�zServer.handle_request�sE��	�	�� � ��&�

�J�J�L��	�	��	��
�J�J�L�s�%�	1�4�1�4�Ac�&�	tjdtj�j�|j
}|j}|j}|jj�s�	dx}}|�}|\}}}	}
	||\}}}||vrtd|�dt|��d|����t||�}	||	i|
��}|xr|j|d�}|r4|j!|||�\}}t#||j$|�}d||ff}nd|f}			|�|jj�s��yy#t$r.}
	|j|\}}}n#t$r|
�wxYwYd}
~
��d}
~
wwxYw#t&$r}d|f}Yd}~�sd}~wwxYw#t$rQ�
dt)�f}n?	|j*|}|||g	��i
��}d|f}n#t&$rdt)�f}YnwxYwY��t,$rKtjd	tj�j�t/j0d
�Y��&t&$rdt)�f}Y��=wxYw#t&$r|dt)�f�Y��UwxYw#t&$r�}tj2dtj�j�tj2d
�tj2d|�|j5�t/j0d�Yd}~���d}~wwxYw)Nz$starting server thread to service %rzmethod z of z object is not in exposed=�#PROXYr>rJrKz$got EOF -- exiting thread serving %rrrLzexception in thread serving %rz ... message was %rr�r	)rr�r|�current_threadr]r@r?ryr�r��KeyErrorr{�AttributeErrorrQrY�getrfrr(r�r�fallback_mapping�EOFErrorr�r�r�r�)r+r�r@r?ryrCr#r��identrDrE�exposed�	gettypeid�ke�function�resr'�rident�rexposed�tokenr�r��
fallback_funcrGs                        r�serve_clientzServer.serve_client�s��	�	
�
�
�9��+�+�-�2�2�	4��y�y���y�y���N�N�	��/�/�(�(�*�5
3�#'�'�
�S��&��07�-��z�4��!�.7��.>�+�C��)��W�,�(�#�T�#�Y��9���
#�3�
�3��/�"�D�1�D�1�C�'�J�9�=�=��T�+J�F��+/�;�;�t�V�S�+I�(��� %�f�d�l�l�F� C��'�(�E�):�;��(�#�.��.
�<���I�w�/�/�(�(�*�� �!�!� �6�6�u�=�0��W�i��#�!� ��!��'0��!��"!�(�#�Q�-�C��(��"�
;��%�'���6�C�;�(,�(=�(=�j�(I�
�!.� �$��s�"�59�"�=A�"�� )�&�1���$�;�+�Z�\�:��;���
��
�
�A�$�3�3�5�:�:�<�������
3�#�Z�\�2��
3��!�<��+�Z�\�:�;�<���
��	�	�:�!�0�0�2�7�7�9��	�	�/��5��	�	�1�1�5��
�
���������

�s��3F�	D=�-F�=E7�AF�I�=	E4�E�E/�E'�'E/�*F�/E4�4F�7	F�F	�F�	F�F�I�*"G
�I�
G%�"I�$G%�%I�*AI�<I�I�I6�2I9�5I6�6I9�9	L�BL�Lc��|Srr<�r+r�r�r#s    r�fallback_getvaluezServer.fallback_getvalue?s���
rc��t|�Sr�rNr�s    r�fallback_strzServer.fallback_strBs���3�x�rc��t|�Sr)�reprr�s    r�
fallback_reprzServer.fallback_reprEs���C�y�r)rVr8�	#GETVALUEc��yrr<�r+rBs  rrkzServer.dummyNs��rc
�t�	|j5g}t|jj��}|j	�|D]K}|dk7s�	|jd|�d|j|�dt
|j|d�dd����Mdj|�cddd�S#1swYyxYw)Nrqz  z:       refcount=z
    r�K�
)	r~r!rzr�sortr[rNry�join)r+rBrGrr�s     rrizServer.debug_infoQs���	��Z�Z��F���+�+�0�0�2�3�D��I�I�K����C�<��M�M�#(�$�*=�*=�e�*D�#&�t�~�~�e�'<�Q�'?�#@��"�#E�#G�H��
�9�9�V�$��Z�Z�s�AB.�AB.�.B7c�.�	t|j�Sr)�lenrzr�s  rrjzServer.number_of_objectsas��	��4�&�&�'�'rc��		tjd�|jd�|j
j
�y#ddl}|j	�Y�3xYw#|j
j
�wxYw)Nz!manager received shutdown message�r>Nr)rr�r?�	traceback�	print_excr��set)r+rBr�s   rrezServer.shutdownhs_��	�	"��J�J�:�;�
�F�F�$�%�

�O�O���!��		"�����!���O�O���!�s�&A�A�A�A;c	�p�	|j5|j|\}}}}|�!|st|�dk7rtd��|d}	n||i|��}	|�t	|	�}|�Kt|t�s$tdj|t|����t|�t|�z}dt|	�z}
tjd||
�|	t|�|f|j|
<|
|j vrd|j |
<ddd�|j#|
�|
t%�fS#1swY�(xYw)Nr	z4Without callable, must have one non-keyword argumentrz,Method_to_typeid {0!r}: type {1!s}, not dictz%xz&%r callable returned object with id %r)r~rtr�rSrbrM�dictrOrPrQr!r)rr�r�ryrzrl�tuple)r+rBr'rDrErZr��method_to_typeid�	proxytyper#r�s           rrfz
Server.createusJ��	��Z�Z��m�m�F�+�
;�H�g�/�����C��I��N�$�N�P�P��1�g����-��-����(��-���+�!�"2�D�9�#�F�M�M�,�d�3C�.D�F�G�G��w�-�$�/?�*@�@���2�c�7�N�E��J�J�?���O�%(�#�g�,�8H�$I�D�N�N�5�!��D�/�/�/�-.��#�#�E�*�7�:	
���A�u���e�G�n�$�$�=�Z�s�C7D,�,D5c�N�	t|j|jd�S)Nr	)r�ryr))r+rBr�s   rrhzServer.get_methods�s&��	��T�^�^�E�H�H�-�a�0�1�1rc�|�	|tj�_|jd�|j	|�y)Nr�)r|r�r]r?r�)r+rBr]s   rrgzServer.accept_connection�s5��	�+/�	� � �"�'�	��� �!����!�rc�F�|j5	|j|xxdz
cc<ddd�y#t$r\}||jvrBd|j|<|j||j|<tjd|�n|�Yd}~�id}~wwxYw#1swYyxYw)Nr	z&Server re-enabled tracking & INCREF %r)r~rzr�r{ryrr�)r+rBr�r�s    rrlz
Server.incref�s���
�Z�Z�

��#�#�E�*�a�/�*��Z���
�
�D�6�6�6�12�D�'�'��.��2�2�5�9��N�N�5�)��J�J�G��O��H�P��
���Z�s,�B�/�	B�AB�
B�B�B�B c	�l�||jvr%||jvrtjd|�y|j5|j|dkr6tdj
||j||j|���|j|xxdzcc<|j|dk(r
|j|=ddd�||jvrHd|j|<tjd|�|j5|j|=ddd�yy#1swY�`xYw#1swYyxYw)NzServer DECREF skipping %rrz+Id {0!s} ({1!r}) has refcount {2:n}, not 1+r	)Nr<Nzdisposing of obj with id %r)rzr{rr�r~�AssertionErrorrPry)r+rBr�s   rrmz
Server.decref�s����+�+�+��T�/�/�/��J�J�2�E�:��
�Z�Z��"�"�5�)�Q�.�$�A�H�H��t�~�~�e�4��+�+�E�2�4�5�5�
����&�!�+�&��"�"�5�)�Q�.��'�'��.����+�+�+�%5�D�N�N�5�!��J�J�4�e�<�����N�N�5�)���,��Z��$��s�A?D�D*�D'�*D3N)r7r9r:�publicr,r�r�r�r�r�r�r�r�r�rkrirjrerfrhrgrlrmr<rrrdrd�s���N�F�&�$�,�2�<
�O�b���� �%�
��
�%� (�"�"%�H2���"*rrdc��eZdZdgZdZdZdZy)�State�valuerr	�N)r7r9r:r;�INITIAL�STARTED�SHUTDOWNr<rrr�r��s���	�I��G��G��Hrr�)�pickle�	xmlrpclibc��eZdZ	iZeZ		ddd�d�Zd�Zd�Zdd�Z	e
	dd��Zd	�Zdd
�Z
d�Zd�Zd
�Zd�Zed��Zed��Ze
		dd��Zy)rNg�?)�shutdown_timeoutc�P�|�tj�j}||_tj|�|_t
�|_tj|j_	||_
t|\|_|_
|xs
t�|_||_yr)rr�rv�_addressru�_authkeyr��_stater�r��_serializerrw�	_Listener�_Clientr�_ctx�_shutdown_timeout)r+r(rvr�ctxr�s      rr,zBaseManager.__init__�s~���?��-�-�/�7�7�G���
��4�4�W�=��
��g���!�M�M�����%���'6�z�'B�$������(�;�=��	�!1��rc���	|jjtjk7r�|jjtjk(rtd��|jjtjk(rtd��tdj|jj���t|j|j|j|j�S)N�Already started server�Manager has shut down�Unknown state {!r})
r�r�r�r�r�r
r�rPrd�	_registryr�r�r�r.s r�
get_serverzBaseManager.get_server�s���	��;�;����
�
�-��{�{� � �E�M�M�1�"�#;�<�<����"�"�e�n�n�4�"�#:�;�;�"�(�/�/����0A�0A�B�D�D��d�n�n�d�m�m��m�m�T�%5�%5�7�	7rc���	t|j\}}||j|j��}t	|dd�t
j|j_y)N�rvrk)	rwr�r�r�rHr�r�r�r�)r+r�r�r�s    r�connectzBaseManager.connectsN��	�+�4�+;�+;�<���&��d�m�m�T�]�]�;����t�W�%�!�M�M����rc
��	|jjtjk7r�|jjtjk(rtd��|jjtjk(rtd��tdj|jj���|�t|�std��tjd��\}}|jjt|�j|j |j"|j$|j&|||f��|_dj+d	�|j(j,D��}t|�j.d
z|z|j(_|j(j3�|j5�|j7�|_|j5�tj|j_t9j:|t|�j<|j(|j"|j$|j|j>|j@fd��|_!y)
Nr�r�r�zinitializer must be a callableF)�duplexr��:c3�2K�|]}t|����y�wrr�)�.0�is  r�	<genexpr>z$BaseManager.start.<locals>.<genexpr>0s����A�)@�A��Q��)@�s��-r�rD�exitpriority)"r�r�r�r�r�r
r�rPrZrOr
�Piper��ProcessrQ�_run_serverr�r�r�r��_processr��	_identityr7r]r�r�r@r�Finalize�_finalize_managerr�r�re)r+�initializer�initargs�reader�writerr�s      rr�zBaseManager.starts���	��;�;����
�
�-��{�{� � �E�M�M�1�"�#;�<�<����"�"�e�n�n�4�"�#:�;�;�"�(�/�/����0A�0A�B�D�D��"�8�K�+@��<�=�=�$����6�����	�	�)�)���:�)�)��.�.�$�-�-�����"�"�F�K��C�*���
�
���A����)@�)@�A�A��!�$�Z�0�0�C�7�%�?��
�
���
�
����	�������
��
�����"�M�M������
�
��$�t�*�.�.��-�-�����
�
�t�{�{��,�,�� 6� 6�8��	��
rc�V�	tjtjtj�|�||�|j||||�}|j	|j
�|j
�tjd|j
�|j�y)Nzmanager serving at %r)
�signal�SIGINT�SIG_IGN�_Serverr?r(r�rr�r�)	�clsrtr(rvrrrr�servers	         rrzBaseManager._run_serverBs��	�	�
�
�f�m�m�V�^�^�4��"���"����X�w���D��	���F�N�N�#�����	
�	�	�)�6�>�>�:����rc��	|j|j|j��}	t|dd|f|z|�\}}|j	�t||j|�|fS#|j	�wxYw)Nrrf)r�r�r�rHr�r)r+r'rDrEr�r)r�s       r�_createzBaseManager._createYsr��	��|�|�D�M�M�4�=�=�|�A��	�"�4��x�&��4���N�K�B���J�J�L��V�T�]�]�B�/��8�8��
�J�J�L�s�A)�)A;c��	|j�>|jj|�|jj�sd|_yyyr)rr��is_alive�r+�timeouts  rr�zBaseManager.joinesF��	��=�=�$��M�M���w�'��=�=�)�)�+� $��
�,�%rc��	|j|j|j��}	t|dd�|j	�S#|j	�wxYw)Nrri�r�r�r�rHr�r�s  r�_debug_infozBaseManager._debug_infonsG��	��|�|�D�M�M�4�=�=�|�A��	��D�$��5��J�J�L��D�J�J�L���A�Ac��	|j|j|j��}	t|dd�|j	�S#|j	�wxYw)Nrrjr%r�s  r�_number_of_objectszBaseManager._number_of_objectsxsH��	��|�|�D�M�M�4�=�=�|�A��	��D�$�(;�<��J�J�L��D�J�J�L�r'c���|jjtjk(r|j	�|jjtj
k7r�|jjtjk(rt
d��|jjtjk(rt
d��t
dj|jj���|S)NzUnable to start serverr�r�)	r�r�r�r�r�r�r
r�rPr.s r�	__enter__zBaseManager.__enter__�s����;�;����
�
�-��J�J�L��;�;����
�
�-��{�{� � �E�M�M�1�"�#;�<�<����"�"�e�n�n�4�"�#:�;�;�"�(�/�/����0A�0A�B�D�D��rc�$�|j�yr)re�r+�exc_type�exc_val�exc_tbs    r�__exit__zBaseManager.__exit__�s���
�
�rc���	|j��rtjd�	|||��}	t|dd�|j	�	|j|��|j�r�tjd�t|d�r�tjd�|j�|j|��|j�r7tjd�|j�|j�tj|_	tj|=y#|j	�wxYw#t
$rY��wxYw#t$rYywxYw)	Nz#sending shutdown message to managerrre)r#zmanager still alive�	terminatez'trying to `terminate()` manager processz#manager still alive after terminate)r!rr�rHr�r�r��hasattrr3�killr�r�r�r�_address_to_localr�)rr(rvr2r�r�r�s       rrzBaseManager._finalize_manager�s/��	��7�����I�I�;�<�
��w��8��!��T�4��4��J�J�L�
�G�L�L�!1�2��w���!��	�	�/�0��7�K�0��I�I�G�H�%�G�%�%�'� �G�L�L�)9�:�'�w�'�'�)��	�	�"G�H�$�����$������n�n���	��+�+�G�4��%�J�J�L���
��
��$�	��	�s:�
E�
E�E�/E&�E�E�	E#�"E#�&	E2�1E2c��|jSr)r�r.s rr(zBaseManager.address�s���}�}�rc�^���	d|jvr|jj�|_��t�|xs
t	�dd�}|xs
t	�dd�}|r!t|j
��D]\}}�|||�f|j�<|r��fd�}	�|	_t|�|	�yy)Nr��	_exposed_�_method_to_typeid_c�(��tjd��|j�g|��i|��\}}�||j||j|��}|j|j|j��}t|dd|jf�|S)Nz)requesting creation of a shared %r object��managerrvr�rrm)	rr�rr�r�r�r(rHr))	r+rDrEr��exp�proxyr�r�r's	       ��rr\z"BaseManager.register.<locals>.temp�s�����
�
�F��O�)�T�\�\�&�@�4�@�4�@�
��s�!��4�+�+�T� �M�M�3����|�|�E�M�M�4�=�=�|�I����t�X����{�;��r)	�__dict__r��copy�	AutoProxyrYr!rr7�setattr)
rr'rZr�r�r��
create_method�keyr�r\s
 ` `      r�registerzBaseManager.register�s����	��c�l�l�*��M�M�.�.�0�C�M���!�I��B�W�Y��T�B��+�J�"�9�.B�D�I�	��"�#3�#9�#9�#;�<�
��U�<�

�g�/��!��
�
�f���	
�#�D�M��C���&�r)NNr�Nrrr)NNNNT)r7r9r:r�rdrr,r�rr��classmethodrrr�r&r)r+r1�staticmethodr�propertyr(rFr<rrrr�s�����I��G�>F��2�/2�2�
7�*�)�V�/1����,
9�%������ �� �D�����EI�6:�%'��%'rrc��eZdZd�Zd�Zy)�ProcessLocalSetc�2�tj|d��y)Nc�"�|j�Sr)�clearr"s r�<lambda>z*ProcessLocalSet.__init__.<locals>.<lambda>�s
��3�9�9�;r)r�register_after_forkr.s rr,zProcessLocalSet.__init__�s��� � ��'>�?rc��t|�dfSrr)rQr.s r�
__reduce__zProcessLocalSet.__reduce__�s���D�z�2�~�rN)r7r9r:r,rRr<rrrKrK�s
��@�rrKc��eZdZ	iZej
�ZdZ		dd�Zd�Z	difd�Z
d�Zd�Ze
d	��Zd
�Zd�Zd�Zd
�Zd�Zy)rr	Nc�n�tj5tjj|jd�}|�;tj�t�f}|tj|j<tj|_	txjdz
c_ddd�d|_
|d|_||_|jj|_||_||_t"|d|_||_|�t)j*|�|_nK|j�|jj,|_n#t)j.�j0|_|r|j3�tj4|tj6�y#1swY��xYw)Nr	r)r�_mutexr6r�r(r�ForkAwareLocalrK�_next_serial�_serial�_tls�_all_serials�_tokenr)�_id�_managerr�rwr��_owned_by_managerrrur�r�rv�_increfrP�_after_fork)	r+r�rr=rvr�rl�
manager_owned�tls_serialss	         rr,zBaseProxy.__init__�sJ��
�
�
�#�5�5�9�9�%�-�-��N�K��"�"�1�1�3�_�5F�F��=H�	�+�+�E�M�M�:�$�1�1�D�L��"�"�a�'�"�� ��N��	�
(��N�������;�;�>�>�����
�%���&�z�2�1�5���"/�����#�8�8��A�D�M�
�]�]�
&� �M�M�2�2�D�M�#�3�3�5�=�=�D�M���L�L�N�� � ��y�'<�'<�=�Q�
�s�BF*�*F4c��tjd�tj�j}tj�jdk7r$|dtj�jzz
}|j|jj|j��}t|dd|f�||j_
y)Nzmaking connection to manager�
MainThread�|rrg)rr�rr�r]r|r�r�r[r(r�rHrYr
)r+r]r�s   r�_connectzBaseProxy._connect&s����
�
�1�2��&�&�(�-�-���#�#�%�*�*�l�:��C�)�2�2�4�9�9�9�9�D��|�|�D�K�K�/�/����|�G����t�0�4�'�:�#��	�	�rr<c��		|jj}|j|j|||f�|j�\}}|dk(r|S|dk(r�|\}}|jj|jd}	|jj |_|	||j"|j|j$|��}
|j'|j |j$��}t)|dd|j*f�|
St-||��#t$r\tjdtj�j�|j�|jj}Y��awxYw)Nz#thread %r does not own a connectionr>r����r<rrm)rYr
r�rr�r|r�r]rfr?r\r@r]r�r'r[r(r�r�r�rHr)rA)r+rCrDrEr�rFrGr�r�r�r?s           r�_callmethodzBaseProxy._callmethod/sA��	�	(��9�9�'�'�D�	
�	�	�4�8�8�Z��t�4�5��y�y�{���f��9���M�
�X�
�#�N�G�U��
�
�/�/����=�b�A�I� �K�K�/�/�E�M���t�'�'�����
�
�w��E��<�<��
�
�t�}�}�<�E�D��T�4��E�H�H�;�7��L��t�V�,�,��-�	(��J�J�<� �/�/�1�6�6�
8��M�M�O��9�9�'�'�D�		(�s�D�A!E;�:E;c�&�	|jd�S)Nr��rir.s r�	_getvaluezBaseProxy._getvalueMs��	�����,�,rc���|jr+tjd|jj�y|j|jj|j��}t|dd|jf�tjd|jj�|jj|j�|jxr|jj}tj|t j"|j|j|j||j$|j|j
fd��|_y)Nz%owned_by_manager skipped INCREF of %rrrlz	INCREF %r�
r
)r^rr�r[r)r�r(r�rHr\rZ�addrXr]r�rr�_decrefrY�_close)r+r�r2s   rr_zBaseProxy._increfSs����!�!��J�J�>������O���|�|�D�K�K�/�/����|�G����t�X����{�3��
�
�;������/������d�l�l�+��
�
�6�$�-�-�"6�"6���m�m��)�#�#��+�+�t�|�|�T�]�]�E��)�)�T�.�.����>��	��rc�V�|j|�|�|jtjk(rO	t	j
d|j�||j|��}t|dd|jf�n t	j
d|j�|s\t|d�rOt	j
dtj�j�|jj�|`yyy#t$r }t	j
d|�Yd}~��d}~wwxYw)Nz	DECREF %rrrmz... decref failed %sz%DECREF %r -- manager already shutdownr
z-thread %r has no more proxies so closing conn)�discardr�r�r�rr�r)r(rHr�r4r|r�r]r
r�)	r��serialrvr2�tls�idsetr�r�r�s	         rrpzBaseProxy._decrefgs���
�
�
�f���=�E�K�K�5�=�=�8�
6��
�
�;����1��u�}�}�g�>����t�X����{�;�

�J�J�>����I����l�3��J�J�F� �/�/�1�6�6�
8��N�N� � �"���	4�u���
6��
�
�1�1�5�5��
6�s�A
C?�?	D(�D#�#D(c��d|_	|j�y#t$r"}tjd|z�Yd}~yd}~wwxYw)Nzincref failed: %s)r]r_r�rr�)r+r�s  rr`zBaseProxy._after_fork�s<����
�	/��L�L�N���	/��I�I�)�A�-�.�.��	/�s��	A�A�Ac�
�i}t��|j|d<t|dd�r3|j|d<tt
|j|j|ffStt|�|j|j|ffS)Nrv�_isautoFr�)	rr�rYr9�RebuildProxyrBr[r�rQ�r+rEs  rrRzBaseProxy.__reduce__�s�������+�"�m�m�D��O��4��E�*�"�n�n�D��O� �����T�-=�-=�t�D�F�
F�!��$�Z����d�.>�.>��E�G�
Grc�"�|j�Sr)rl)r+�memos  r�__deepcopy__zBaseProxy.__deepcopy__�s���~�~��rc�r�dt|�j|jjt	|�fzS)Nz<%s object, typeid %r at %#x>)rQr7r[r'r)r.s rr8zBaseProxy.__repr__�s3��.��T�
�#�#�T�[�[�%7�%7��D��B�C�	Crc�h�		|jd�S#t$rt|�dddzcYSwxYw)Nr8rhz; '__str__()' failed>)rir�r�r.s rrVzBaseProxy.__str__�sB��	�	=��#�#�J�/�/���	=���:�c�r�?�%<�<�<�	=�s��1�1�NNNTF)r7r9r:r6r�ForkAwareThreadLockrUrWr,rfrirlr_rHrpr`rRr~r8rVr<rrrr�s|�����
%�T�
%�
%�
'�F��L�26�HM�*>�X$�,.�B�-�<-��(����0/�G� �C�=rrc��	ttj�dd�}|r||j|jk(rct	j
d|�d|d<|j|jvr0|j|j|j|j<|jdd�xr ttj�dd�}|||fd|i|��S)Nr�z*Rebuild a proxy owned by manager, token=%rTrarl�_inheritingF)
rYrr�r(rr�r)r{ry�pop)r^r�rrErrls      rrzrz�s�����W�,�,�.�0A�4�
H�F�
�&�.�.�E�M�M�1��
�
�?��G� $��_���8�8�6�7�7�7�� � ����*�
�(�(����2�	
����4� �	E��G�+�+�-�}�e�D�D����z�9�&�9�D�9�9rc���	t|�}	|||fS#t$rYnwxYwi}|D]}td|�d|�d�|��t|tf|�}||_||||f<|S)Nzdef z:(self, /, *args, **kwds):
        return self._callmethod(z
, args, kwds))r�r��execrQrr9)r]r��_cache�dic�meth�	ProxyTypes      r�
MakeProxyTyper��s�����G�n�G�
��t�W�o�&�&���
��
��
�C����6:�D�B�CF�	H���T�I�<��-�I�!�I��'�F�D�'�?���s��	!�!c�r�	t|d}|�4||j|��}	t|dd|f�}|j�|�|�|j}|�tj�j}td|jz|�}	|	||||||��}
d|
_
|
S#|j�wxYw)Nr	rrhz
AutoProxy[%s])r=rvrlraT)rwr(rHr�r�rr�rvr�r'ry)r�rr=rvr�rlrar�r�r�r?s           rrBrB�s�����j�)�!�,�G����u�}�}�g�6��	��t�T�=�5�(�C�G��J�J�L���7�.��"�"�����)�)�+�3�3���o����<�g�F�I��e�Z��'�#�=�
B�E��E�M��L��
�J�J�L�s�B$�$B6c��eZdZd�Zd�Zy)�	Namespacec�:�|jj|�yr)r@�updater{s  rr,zNamespace.__init__�s���
�
���T�"rc�&�t|jj��}g}|D]-\}}|jd�r�|j	|�d|����/|j�|jj�ddj|��d�S)Nra�=�(�, r5)	r!r@r�
startswithr[r�r6r7r�)r+rr\r]r�s     rr8zNamespace.__repr__�sq���T�]�]�(�(�*�+���� �K�D�%��?�?�3�'����t�U�3�4�!�	
�	�	���>�>�2�2�D�I�I�d�O�D�DrN)r7r9r:r,r8r<rrr�r��s
��#�Err�c�8�eZdZdd�Zd�Zd�Zd�Zeee�Zy)�Valuec� �||_||_yr)�	_typecode�_value)r+rr��locks    rr,zValue.__init__�s��!�����rc��|jSr�r�r.s rr�z	Value.gets���{�{�rc��||_yrr��r+r�s  rr�z	Value.sets	����rc�f�t|�j�d|j�d|j�d�S)Nr�r�r5)rQr7r�r�r.s rr8zValue.__repr__s!��!�$�Z�0�0�$�.�.�$�+�+�N�NrN�T)	r7r9r:r,r�r�r8rIr�r<rrr�r��s#�����O��S�#��Err�c�.�tj||�Sr)r)r�sequencer�s   r�Arrayr�	s���;�;�x��*�*rc�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�
IteratorProxy)�__next__r?�throwr�c��|Srr<r.s r�__iter__zIteratorProxy.__iter__����rc�&�|jd|�S)Nr�rk�r+rDs  rr�zIteratorProxy.__next__s�����
�D�1�1rc�&�|jd|�S)Nr?rkr�s  rr?zIteratorProxy.sends�������-�-rc�&�|jd|�S)Nr�rkr�s  rr�zIteratorProxy.throw��������.�.rc�&�|jd|�S)Nr�rkr�s  rr�zIteratorProxy.closer�rN)	r7r9r:r9r�r�r?r�r�r<rrr�r�s ��6�I��2�.�/�/rr�c�*�eZdZdZdd�Zd�Zd�Zd�Zy)�
AcquirerProxy)�acquire�releaseNc�8�|�|fn||f}|jd|�S�Nr�rk)r+�blockingr#rDs    rr�zAcquirerProxy.acquire s'��%�o��{�H�g�3F�����	�4�0�0rc�$�|jd�S�Nr�rkr.s rr�zAcquirerProxy.release#������	�*�*rc�$�|jd�Sr�rkr.s rr+zAcquirerProxy.__enter__%r�rc�$�|jd�Sr�rkr-s    rr1zAcquirerProxy.__exit__'r�r)TN)r7r9r:r9r�r�r+r1r<rrr�r�s��&�I�1�+�+�+rr�c�.�eZdZdZdd�Zdd�Zd�Zdd�Zy)	�ConditionProxy)r�r�r��notify�
notify_allNc�(�|jd|f�S�Nr�rkr"s  rr�zConditionProxy.wait-��������
�3�3rc�(�|jd|f�S)Nr�rk)r+�ns  rr�zConditionProxy.notify/s������1�$�/�/rc�$�|jd�S)Nr�rkr.s rr�zConditionProxy.notify_all1s������-�-rc���|�}|r|S|�tj�|z}nd}d}|s<|�|tj�z
}|dkr	|S|j�|�}|s�<|S)Nr)�time�	monotonicr�)r+�	predicater#rG�endtime�waittimes      r�wait_forzConditionProxy.wait_for3s~�������M����n�n�&��0�G��G��H���"�"�T�^�^�%5�5���q�=���
�
�I�I�h���[�F�
��
rr)r	)r7r9r:r9r�r�r�r�r<rrr�r�+s��F�I�4�0�.�rr�c�*�eZdZdZd�Zd�Zd�Zdd�Zy)�
EventProxy)r�r�rNr�c�$�|jd�S)Nr�rkr.s rr�zEventProxy.is_setHs������)�)rc�$�|jd�S�Nr�rkr.s rr�zEventProxy.setJ�������&�&rc�$�|jd�S)NrNrkr.s rrNzEventProxy.clearL�������(�(rNc�(�|jd|f�Sr�rkr"s  rr�zEventProxy.waitNr�rr)r7r9r:r9r�r�rNr�r<rrr�r�Fs��2�I�*�'�)�4rr�c�T�eZdZdZd	d�Zd�Zd�Zed��Zed��Z	ed��Z
y)
�BarrierProxy)�__getattribute__r��abort�resetNc�(�|jd|f�Sr�rkr"s  rr�zBarrierProxy.waitTr�rc�$�|jd�S)Nr�rkr.s rr�zBarrierProxy.abortVr�rc�$�|jd�S)Nr�rkr.s rr�zBarrierProxy.resetXr�rc�&�|jdd�S)Nr�)�partiesrkr.s rr�zBarrierProxy.partiesZs����� 2�L�A�Arc�&�|jdd�S)Nr�)�	n_waitingrkr.s rr�zBarrierProxy.n_waiting]s����� 2�N�C�Crc�&�|jdd�S)Nr�)�brokenrkr.s rr�zBarrierProxy.broken`s����� 2�K�@�@rr)r7r9r:r9r�r�r�rIr�r�r�r<rrr�r�RsR��>�I�4�)�)�
�B��B�
�D��D�
�A��Arr�c�"�eZdZdZd�Zd�Zd�Zy)�NamespaceProxy)r��__setattr__�__delattr__c�~�|ddk(rtj||�Stj|d�}|d|f�S)Nrrarir�)�objectr��r+rE�
callmethods   r�__getattr__zNamespaceProxy.__getattr__gsB���q�6�S�=��*�*�4��5�5��,�,�T�=�A�
��,�s�f�5�5rc��|ddk(rtj|||�Stj|d�}|d||f�S)Nrrarir�)r�r�r�)r+rEr�r�s    rr�zNamespaceProxy.__setattr__lsE���q�6�S�=��%�%�d�C��7�7��,�,�T�=�A�
��-�#�u��6�6rc�~�|ddk(rtj||�Stj|d�}|d|f�S)Nrrarir�)r�r�r�r�s   rr�zNamespaceProxy.__delattr__qsA���q�6�S�=��%�%�d�C�0�0��,�,�T�=�A�
��-�#��0�0rN)r7r9r:r9r�r�r�r<rrr�r�es��B�I�6�
7�
1rr�c�R�eZdZdZd�Zd�Zeee�Zee	j�Zy)�
ValueProxy)r�r�c�$�|jd�S)Nr�rkr.s rr�zValueProxy.getzr�rc�(�|jd|f�Sr�rkr�s  rr�zValueProxy.set|s�������x�0�0rN)r7r9r:r9r�r�rIr�rG�types�GenericAlias�__class_getitem__r<rrr�r�xs.���I�'�1��S�#��E�#�E�$6�$6�7�rr��
BaseListProxy)�__add__�__contains__�__delitem__�__getitem__�__len__�__mul__�__reversed__�__rmul__�__setitem__r[�count�extend�index�insertr��remove�reverser��__imul__c��eZdZd�Zd�Zy)�	ListProxyc�,�|jd|f�|S)Nrrkr�s  r�__iadd__zListProxy.__iadd__�s������E�8�,��rc�,�|jd|f�|S)Nr	rkr�s  rr	zListProxy.__imul__�s������e�X�.��rN)r7r9r:r
r	r<rrrr�s���rr�	DictProxy)r�r�r�r�r�rrNrAr�rrr��popitem�
setdefaultr�rr��Iterator�
ArrayProxy)r�r�r�	PoolProxy)�apply�apply_asyncr��imap�imap_unorderedr��map�	map_async�starmap�
starmap_asyncr3�AsyncResult)rrrrrc��eZdZd�Zd�Zy)rc��|Srr<r.s rr+zPoolProxy.__enter__�r�rc�$�|j�yr)r3r-s    rr1zPoolProxy.__exit__�s�����rN)r7r9r:r+r1r<rrrr�s���rc��eZdZy)rN)r7r9r:r<rrrr�s��rr�Queue�
JoinableQueuer�r}�RLock�	Semaphore�BoundedSemaphore�	Condition�Barrier�Poolr!r�r�)r�rD)rDc�<�eZdZ	gfd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�_SharedMemoryTrackerc� �||_||_yr��shared_memory_context_name�
segment_names)r+r]r/s   rr,z_SharedMemoryTracker.__init__�s��.2�D�+�!.�D�rc��	tjd|�dt����|jj	|�y)NzRegister segment � in pid )rr�rr/r[�r+�segment_names  r�register_segmentz%_SharedMemoryTracker.register_segment�s6��D��J�J�*�<�*:�(�6�8�*�M�N����%�%�l�3rc���	tjd|�dt����|jj	|�tj|�}|j�|j�y)NzDestroy segment r1)	rr�rr/rr�SharedMemoryr��unlink)r+r3�segments   r�destroy_segmentz$_SharedMemoryTracker.destroy_segment�s\��
E��J�J�)�,�)9��&�(��L�M����%�%�l�3�#�0�0��>�G��M�M�O��N�N�rc�P�	|jddD]}|j|��yr)r/r9r2s  rr7z_SharedMemoryTracker.unlink�s(��J� $� 2� 2�1� 5���$�$�\�2�!6rc��tjd|jj�dt	����|j�y)NzCall z.__del__ in )rr�r6r7rr7r.s r�__del__z_SharedMemoryTracker.__del__�s1���J�J��t�~�~�6�6�7�|�F�H�:�N�O��K�K�Mrc�2�|j|jfSrr-r.s rr/z!_SharedMemoryTracker.__getstate__�s���3�3�T�5G�5G�H�Hrc�"�|j|�yr)r,r1s  rr3z!_SharedMemoryTracker.__setstate__�s���D�M�M�5�!rN)
r7r9r:r,r4r9r7r<r/r3r<rrr+r+�s,��5�/1�	/�	4�
	�	3�
	�	I�	"rr+c�R�eZdZejgd�zZd�Zd�Zd�Zd�Zd�Z	d�Z
y)	�SharedMemoryServer)�
track_segment�release_segment�
list_segmentsc��tj|g|��i|��|j}t|t�rtj|�}td|�dt����|_	tjdt����y)N�shm_raz"SharedMemoryServer started by pid )rdr,r(rMrs�os�fsdecoder+r�shared_memory_contextrr�)r+rD�kwargsr(s    rr,zSharedMemoryServer.__init__sn���O�O�D�2�4�2�6�2��l�l�G��'�5�)��+�+�g�.��$�t�G�9�A�f�h�Z�%@�A�
�&��J�J�;�F�H�:�F�Grc��	t|j|dd�r|j|d<tj|||g|��i|��S)Nrh�_shared_memory_proxyrH)r4rtrHrdrf)r+rBr'rDrIs     rrfzSharedMemoryServer.createsQ��
M�
�t�}�}�V�,�R�0�2H�I�26�2L�2L��.�/��=�=��q�&�B�4�B�6�B�Brc�d�	|jj�tj||�Sr)rHr7rdrer�s  rrezSharedMemoryServer.shutdowns(��O��&�&�-�-�/��?�?�4��+�+rc�<�	|jj|�yr)rHr4�r+rBr3s   rrAz SharedMemoryServer.track_segments��M��&�&�7�7��Erc�<�	|jj|�yr)rHr9rNs   rrBz"SharedMemoryServer.release_segment"s��
K��&�&�6�6�|�Drc�0�	|jjSr)rHr/r�s  rrCz SharedMemoryServer.list_segments's��
&��-�-�;�;�;rN)r7r9r:rdr�r,rfrerArBrCr<rrr@r@s6�����F�G��	H�	C�	,�
	F�	E�
	<rr@c�0�eZdZ	eZd�Zd�Zd�Zd�Zd�Z	y)rc���tjdk(rddlm}|j	�tj|g|��i|��tj|jj�dt����y)N�posixr	)�resource_trackerz created by pid )rFr]�rT�ensure_runningrr,rr�r6r7r)r+rDrIrTs    rr,zSharedMemoryManager.__init__9s\���w�w�'�!�/� �/�/�1�� � ��7��7��7��J�J�$�.�.�1�1�2�2B�6�8�*�M�Nrc�p�tj|jj�dt	����y)Nz.__del__ by pid )rr�r6r7rr.s rr<zSharedMemoryManager.__del__Es'���J�J�$�.�.�1�1�2�2B�6�8�*�M�Nrc���	|jjtjk7r�|jjtjk(rtd��|jjtjk(rtd��tdj|jj���|j|j|j|j|j�S)Nz"Already started SharedMemoryServerz!SharedMemoryManager has shut downr�)
r�r�r�r�r�r
r�rPrr�r�r�r�r.s rr�zSharedMemoryManager.get_serverHs���N��{�{� � �E�M�M�1��;�;�$�$��
�
�5�&�'K�L�L��[�[�&�&�%�.�.�8�&�'J�K�K�&�,�3�3�D�K�K�4E�4E�F�H�H��<�<�����
�
� $�
�
�t�/?�/?�A�
Arc�.�	|j|j|j��5}tjdd|��}	t|dd|jf�	ddd�|S#t$r}|j�|�d}~wwxYw#1swYSxYw)NrT)rf�sizerA)	r�r�r�rr6rHr]�
BaseExceptionr7)r+rZr��smsr�s     rr6z SharedMemoryManager.SharedMemoryUs���
4����d�m�m�T�]�]��C�t�#�0�0��d��N����T�4��3�8�8�+�F�D��J��%���J�J�L��G����	D��J�s)�B
�A'�'	B�0B�B�B
�
Bc�P�	|j|j|j��5}tj|�}	t|dd|jjf�	ddd�|S#t$r!}|jj�|�d}~wwxYw#1swYSxYw)NrrA)
r�r�r�r�
ShareableListrH�shmr]r[r7)r+r�r��slr�s     rr^z!SharedMemoryManager.ShareableListas���
F����d�m�m�T�]�]��C�t�"�0�0��:����T�4��2�6�6�;�;�.�I�D��I��%���F�F�M�M�O��G����	D��I�s)�B�#A.�.	B�7B�B�B�B%N)
r7r9r:r@rr,r<r�r6r^r<rrrr-s*��	�%��
	O�	O�	A�
	�
	rr�r�)W�__all__r�r|rr�queuer�r�rFrr�rrUr
�contextrrr
rrrrr�	HAS_SHMEMr[�ImportErrorrrFrQrY�
view_typesr$�	view_typer�rrHrAr�rRr_rbrdr�r�r��XmlListener�	XmlClientrwrr�rKrrzr�rBr�r�r�r�r�r�r�r�r�r�r�rrr:r�
BasePoolProxyrrr"r�r}r$r%r&r'r(r)r!r�r+r@r)r]s0r�<module>rksX��A����
�����	�� ��@�@�����*���I��N�N�(�)�2��	���5�;�;��-�4M�
N�4M�D�d�$�7�2�t�$�&�'�4M�
N�
���I��I���y�/�2��
�z�M�F�M�.&(�b�)�
I�C�)�C�	�A�F*�V�F*�Z
�F���#�#�Z�%6�%6�7��)�)�:�+?�+?�@���t'�&�t'�t�c��t=��t=�t:�*)+��,8<�7<��:
E��
E�
�F�
�+�/�I�/�
+�I�
+��]��6	4��	4�A�9�A�&1�Y�1�&8��8��o�0��
��
��
�+�(�
�	��
� �	��
�<�*��
�
�k�,��
�
!��"�� �$�
� ��
��	�+�	����W�e�k�k�*����_�e�k�k�2����W�i�o�o�z�:����V�Y�^�^�]�;����W�i�o�o�}�=����[�)�"5�"5�}�E����'��)C�)C�"�$����[�)�"5�"5�~�F����Y�	� 1� 1�<�@����V�T�Y�Y�	�2����V�T�9�-����V�T�9�-����W�e�Z�0����W�e�Z�0����[�)�^�<����Z�=���N����]�%��8�
�""�""�J*<�V�*<�Z>�k�>�g
��k%���I���Os�O;�P	�;P�P