JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў f%c@sddddgZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z ddl m Z mZejd kpeed oeed sed nejd kred g7ZddlZddZddZGdddeZGdddeZddZddZddZddZdd ZddZnmejdkZddZddZGd d!d!eZd"dZd#dZd$dZd%dZGd&d'd'eZ e Z!dS((u reduce_socketureduce_connectionu send_handleu recv_handleiN(ucurrent_process(uregister_after_forkudebugu sub_debug(u is_exitingu sub_warninguwin32uCMSG_LENu SCM_RIGHTSu%pickling of connections not supportedureduce_pipe_connectioncCs&t|tj|}|j|dS(N(u DupHandleu_winapiuDUPLICATE_SAME_ACCESSusend(uconnuhandleudestination_pidudh((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu send_handle*scCs|jjS(N(urecvudetach(uconn((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu recv_handle.scBs/|EeZdZdddZddZdS(u DupHandlec Cs|dkrtj}ntjtjd|}z+tjtj|||dd|_ Wdtj |X||_ ||_ dS(NiF( uNoneuosugetpidu_winapiu OpenProcessuPROCESS_DUP_HANDLEuFalseuDuplicateHandleuGetCurrentProcessu_handleu CloseHandleu_accessu_pid(uselfuhandleuaccessupiduproc((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu__init__2s   uDupHandle.__init__c Cs{|jtjkr|jStjtjd|j}z/tj||jtj |j dtj SWdtj |XdS(NF( u_piduosugetpidu_handleu_winapiu OpenProcessuPROCESS_DUP_HANDLEuFalseuDuplicateHandleuGetCurrentProcessu_accessuDUPLICATE_CLOSE_SOURCEu CloseHandle(uselfuproc((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyudetach@s uDupHandle.detachN(u__name__u __module__u __qualname__uNoneu__init__udetach(u __locals__((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu DupHandle1su DupHandlecBs,|EeZdZddZddZdS(u DupSocketcs:|jfdd}tj|j|_dS(Ncs j|}|j|dS(N(ushareu send_bytes(uconnupidushare(unew_sock(u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyusendPsu DupSocket.__init__..send(udupuresource_shareruregisterucloseu_id(uselfusockusend((unew_socku>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu__init__Ns uDupSocket.__init__c CsAtj|j}z|j}tj|SWd|jXdS(N(uresource_shareruget_connectionu_idu recv_bytesusocketu fromshareuclose(uselfuconnushare((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyudetachUs  uDupSocket.detachN(u__name__u __module__u __qualname__u__init__udetach(u __locals__((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu DupSocketMs u DupSocketcCstt|ffS(N(urebuild_socketu DupSocket(us((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu reduce_socket]scCs |jS(N(udetach(uds((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyurebuild_socket`surebuild_socketc CsY|j}tj|tjtj,}t|}t||j|jffSWdQXdS(N( ufilenousocketufromfduAF_INETu SOCK_STREAMu DupSocketurebuild_connectionureadableuwritable(uconnuhandleusuds((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyureduce_connectioncs  cCs2ddlm}|j}||j||S(Ni(u Connection(u connectionu Connectionudetach(udsureadableuwritableu Connectionusock((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyurebuild_connectionis urebuild_connectioncCs\|jrtjnd|jr'tjndB}t|j|}t||j|jffS(Ni(ureadableu_winapiuFILE_GENERIC_READuwritableuFILE_GENERIC_WRITEu DupHandleufilenourebuild_pipe_connection(uconnuaccessudh((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyureduce_pipe_connectionnscCs,ddlm}|j}||||S(Ni(uPipeConnection(u connectionuPipeConnectionudetach(udhureadableuwritableuPipeConnectionuhandle((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyurebuild_pipe_connectionts urebuild_pipe_connectionudarwincCstj|jtjtj8}|jdgtjtjtj d|fgWdQXt r|j dkrt dndS(Nsxu@isACKu%did not receive acknowledgement of fd( usocketufromfdufilenouAF_UNIXu SOCK_STREAMusendmsgu SOL_SOCKETu SCM_RIGHTSustructupacku ACKNOWLEDGEu recv_bytesu RuntimeError(uconnuhandleudestination_pidus((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu send_handles $c Cstjd}tj|jtjtj}|jdtj|\}}}}yit rs|j dn|d\}}} |tj kr|tj krtj d| d|dSWntttjfk rYnXtdWdQXdS(Nu@iisACKiuInvalid data received(ustructucalcsizeusocketufromfdufilenouAF_UNIXu SOCK_STREAMurecvmsguCMSG_LENu ACKNOWLEDGEu send_bytesu SOL_SOCKETu SCM_RIGHTSuunpacku ValueErroru IndexErroruerroru RuntimeError( uconnusizeusumsguancdatauflagsuaddru cmsg_levelu cmsg_typeu cmsg_data((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu recv_handles$'"cBs,|EeZdZddZddZdS(uDupFdcsLtj|fdd}fdd}tj|||_dS(Ncst||dS(N(u send_handle(uconnupid(unew_fd(u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyusendsuDupFd.__init__..sendcstjdS(N(uosuclose((unew_fd(u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyuclosesuDupFd.__init__..close(uosudupuresource_shareruregisteru_id(uselfufdusenduclose((unew_fdu>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu__init__suDupFd.__init__c Cs2tj|j}zt|SWd|jXdS(N(uresource_shareruget_connectionu_idu recv_handleuclose(uselfuconn((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyudetachsu DupFd.detachN(u__name__u __module__u __qualname__u__init__udetach(u __locals__((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyuDupFds uDupFdcCs1t|j}t||j|j|jffS(N(uDupFdufilenourebuild_socketufamilyutypeuproto(usudf((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu reduce_socketscCs5|j}tj||||}tj||S(N(udetachusocketufromfduosuclose(udfufamilyutypeuprotoufdus((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyurebuild_sockets  cCs+t|j}t||j|jffS(N(uDupFdufilenourebuild_connectionureadableuwritable(uconnudf((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyureduce_connectionscCs,ddlm}|j}||||S(Ni(u Connection(u connectionu Connectionudetach(udfureadableuwritableu Connectionufd((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyurebuild_connections cBsq|EeZdZddZddZeddZdddZd d Z d d Z d dZ dS(uResourceSharercCsYd|_i|_g|_tj|_d|_d|_d|_ t |t j dS(Ni( u_keyu_cacheu _old_locksu threadinguLocku_lockuNoneu _listeneru_addressu_threaduregister_after_forkuResourceShareru _afterfork(uself((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu__init__s      uResourceSharer.__init__c Cse|jV|jdkr&|jn|jd7_||f|j|j<|j|jfSWdQXdS(Ni(u_locku_addressuNoneu_startu_keyu_cache(uselfusenduclose((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyuregisters   uResourceSharer.registercCsQddlm}|\}}||dtj}|j|tjf|S(Ni(uClientuauthkey(u connectionuClientucurrent_processuauthkeyusenduosugetpid(uidentuClientuaddressukeyuc((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyuget_connections  uResourceSharer.get_connectionc Csddlm}|j|jdk r||jdtj}|jd|j|j j ||j j rt dn|j jd|_ d|_d|_ x*|jjD]\}\}}|qW|jjnWdQXdS(Ni(uClientuauthkeyu-ResourceSharer thread did not stop when asked(u connectionuClientu_locku_addressuNoneucurrent_processuauthkeyusenducloseu_threadujoinuis_aliveusub_warnu _listeneru_cacheuitemsuclear(uselfutimeoutuClientucukeyusenduclose((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyustops         " uResourceSharer.stopcCsx*|jjD]\}\}}|qW|jj|jj|jtj|_|jdk r{|jj nd|_d|_ d|_ dS(N( u_cacheuitemsuclearu _old_locksuappendu_locku threadinguLocku _listeneruNoneucloseu_addressu_thread(uselfukeyusenduclose((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu _afterforks"    uResourceSharer._afterforkcCsddlm}|jdks%ttd|dtj|_|jj|_ t j d|j }d|_|j||_dS(Ni(uListeneru0starting listener and thread for sending handlesuauthkeyutargetT(u connectionuListeneru _listeneruNoneuAssertionErrorudebugucurrent_processuauthkeyuaddressu_addressu threadinguThreadu_serveuTrueudaemonustartu_thread(uselfuListenerut((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu_starts   uResourceSharer._startc Csttdr1tjtjtdtjnxyq|jj}|j}|dkrbPn|\}}|j j |\}}|||||j Wq4t sddl}tdddd|jddnYq4Xq4dS(Nupthread_sigmaskiiu.thread for sharing handles raised exception : u-iOu (uhasattrusignalupthread_sigmasku SIG_BLOCKurangeuNSIGu _listeneruaccepturecvuNoneu_cacheupopucloseu is_exitingu tracebacku sub_warningu format_exc(uselfuconnumsgukeyudestination_pidusenducloseu traceback((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu_serves$"      uResourceSharer._serveN( u__name__u __module__u __qualname__u__init__uregisteru staticmethoduget_connectionuNoneustopu _afterforku_startu_serve(u __locals__((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyuResourceSharers   uResourceSharer("u__all__uosusysusocketu threadingustructusignalumultiprocessingucurrent_processumultiprocessing.utiluregister_after_forkudebugu sub_debugu is_exitingu sub_warninguplatformuhasattru ImportErroru_winapiu send_handleu recv_handleuobjectu DupHandleu DupSocketu reduce_socketurebuild_socketureduce_connectionurebuild_connectionureduce_pipe_connectionurebuild_pipe_connectionu ACKNOWLEDGEuDupFduResourceShareruresource_sharer(((u>/opt/alt/python33/lib64/python3.3/multiprocessing/reduction.pyu sF                      \