+
    -id                        R t ^ RIHt  ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt R.t ! R R4      tR t ! R R4      t]
! ]4       ! R R4      4       tR tR tR t R t!]
! ]4       ! R R4      4       t"]
! ]4       ! R  R!4      4       t#]! ]4       ! R" R#]#4      4       t$]! ]4       ! R$ R%]#4      4       t%R&#   ] d    R t Li ; i)'zBasic components support
)defaultdict)notifyc                      R # N )argkws   *,9/usr/lib/python3/dist-packages/zope/interface/registry.pyr   r      s        )AdapterRegistry)implementedBy)implementer)implementer_only)
providedBy)	Interface)ComponentLookupError)IAdapterRegistration)IComponents)IHandlerRegistration)ISpecification) ISubscriptionAdapterRegistration)IUtilityRegistration)
Registered)Unregistered
Componentsc                   8   a  ] tR t^2t o R tR tR tR tRtV t	R# )_UnhashableComponentCounterc                X    VP                  4        Uu. uF  q"NK  	  upV n        R # u upi r   )items_data)self	otherdictitems   && r	   __init__$_UnhashableComponentCounter.__init__5   s$    '0'89'8td'89
9s   
'c                D    V P                    F  w  r#W!8X  g   K  Vu # 	  ^ # )    r   )r    key	componentcounts   &&  r	   __getitem__'_UnhashableComponentCounter.__getitem__9   s#     $

I !+ r
   c                    \        V P                  4       F&  w  r4V^ ,          V8X  g   K  W3V P                  V&    R# 	  V P                  P                  W34       R# r&   N)	enumerater   append)r    r)   r*   idatas   &&&  r	   __setitem__'_UnhashableComponentCounter.__setitem__?   sM     ,GAAw)# ) 0

1 - 	

9,-r
   c                    \        V P                  4       F#  w  r#V^ ,          V8X  g   K  V P                  V  R# 	  \        V4      hr.   )r/   r   KeyError)r    r)   r1   r2   s   &&  r	   __delitem__'_UnhashableComponentCounter.__delitem__F   s>     ,GAAw)#JJqM - y!!r
   r'   N)
__name__
__module____qualname____firstlineno__r#   r+   r3   r7   __static_attributes____classdictcell____classdict__s   @r	   r   r   2   s     :." "r
   r   c                       \        \        4      # r   )r   intr   r
   r	   _defaultdict_intrC   N   s    sr
   c                   J   a  ] tR t^Rt o R tR tR tR tR tR t	R t
RtV tR	# )
_UtilityRegistrationsc                f    \        \        4      V n        Wn        W n        V P                  4        R # r   )r   rC   _cache
_utilities_utility_registrations%_UtilityRegistrations__populate_cache)r    	utilitiesutility_registrationss   &&&r	   r#   _UtilityRegistrations.__init__T   s&    !"23#&;#r
   c                    \        V P                  P                  4       4       F"  w  w  rpV^ ,          pV P                  W4       K$  	  R# r.   )iterrI   r   $_UtilityRegistrations__cache_utility)r    p_r2   r)   s   &    r	   __populate_cache&_UtilityRegistrations.__populate_cache\   s>    "4#>#>#D#D#FGNVaTQI  . Hr
   c                     V P                   V,          V;;,          ^,          uu&   R#   \         dC    \        T P                   T,          4      ;q0P                   T&   Y2;;,          ^,          uu&    R# i ; i)   N)rG   	TypeErrorr   )r    providedr)   provs   &&& r	   __cache_utility%_UtilityRegistrations.__cache_utilitya   sd    	!KK!),1, 	! ,GH%, D;;x( Oq O	!s   &* A	A76A7c                x    V P                   V,          pW,          pV^,          pV^ 8X  d   W V^ 8  # W1V&   V^ 8  # )rV   )rG   )r    rX   r)   r*   s   &&& r	   __uncache_utility'_UtilityRegistrations.__uncache_utilityl   sP    ;;x( #
A:# qy #(Yqyr
   c                b     V P                   V,          V,          ^ 8  #   \         d     R# i ; i)r&   F)rG   rW   )r    rX   r)   s   &&&r	   _is_utility_subscribed,_UtilityRegistrations._is_utility_subscribed{   s2    	;;x(3a77 		s    ..c                    V P                  W4      pW4V3V P                  W3&   V P                  P                  RWV4       V'       g   V P                  P	                  RW4       V P                  W4       R # Nr   )r`   rI   rH   register	subscriberP   )r    rX   namer)   infofactory
subscribeds   &&&&&& r	   registerUtility%_UtilityRegistrations.registerUtility   so    00E
 W$ 	##	
 	  XY?OO%%b(>X1r
   c                    V P                   W3 V P                  P                  RW4       V P                  W4      pV'       g   V P                  P	                  RW4       R # R # rc   )rI   rH   
unregister&_UtilityRegistrations__uncache_utilityunsubscribe)r    rX   rf   r)   ri   s   &&&& r	   unregisterUtility'_UtilityRegistrations.unregisterUtility   sS    ''(89""2x6++H@
OO''H@ r
   )rG   rH   rI   N)r9   r:   r;   r<   r#   rJ   rP   rn   r`   rj   rp   r=   r>   r?   s   @r	   rE   rE   R   s/      /
	!2A Ar
   rE   c                   P  a a ] tR t^t oRtR%R ltR tV 3R ltR tR t	]
R 4       tR tR	 t]
! R
 R 4      tR&R ltR'R ltR tR(R ltR)R ltR tR tR*R ltR+R ltR tR(R ltR)R ltR(R ltR)R ltR tR*R ltR tR+R lt R t!R,R lt"R  t#R-R! lt$R" t%R.R# lt&R$t'Vt(V ;t)# )/r   Nc                    \        V\        4      '       g   Q hWn        V P                  4        V P	                  4        \        V4      V n        R V n        R # r   )
isinstancestrr9   _init_registries_init_registrationstuple	__bases___v_utility_registrations_cache)r    rf   basess   &&&r	   r#   Components.__init__   sG     $$$$$  "u.2+r
   c                P    R V P                   P                   RV P                   R2# )< >)	__class__r9   r    s   &r	   __repr__Components.__repr__   s&    4>>**+1T]]O1==r
   c                   < \         SV `  4       pV^,          P                  4        UUu/ uF   w  r#VP                  R4      '       d   K  W#bK"  	  ppp\	        V4      pWA^&   \        V4      # u uppi )   _v_)super
__reduce__r   
startswithlistrx   )r    	reductionkvfiltered_stater   s   &    r	   r   Components.__reduce__   sp    
 G&(	 ,5Q<+=+=+? 6+?41!"e!4 !$+? 6O	%!Y	6s   A-
A-c                B    \        4       V n        \        4       V n        R # r   )r   adaptersrK   r   s   &r	   rv   Components._init_registries   s     ()(*r
   c                >    / V n         / V n        . V n        . V n        R # r   )rI   _adapter_registrations_subscription_registrations_handler_registrationsr   s   &r	   rw   Components._init_registrations   s"    &(#&(#+-(&(#r
   c                    V P                   pVe5   VP                  V P                  Jg   VP                  V P                  Jd'   \	        V P                  V P                  4      ;qn         V# r   )rz   rH   rK   rI   rE   )r    caches   & r	   _utility_registrations_cache'Components._utility_registrations_cache   sd     33MDNN2((0K0KK &NND$?$?E7
 r
   c                :    V P                   P                  R R4      # )ry   r   )__dict__getr   s   &r	   	_getBasesComponents._getBases   s    }}  b11r
   c                   \        V Uu. uF  q"P                  NK  	  up4      V P                  n        \        V Uu. uF  q"P                  NK  	  up4      V P                  n        \        V4      V P                  R &   R# u upi u upi )ry   N)rx   r   ry   rK   r   )r    r{   bases   && r	   	_setBasesComponents._setBases   sr    "'&+)-&+dMMe)- #.#(',*.',tNNu*. $/ %*5\k"	)-*.s
   BBc                "    V P                  4       # r   )r   r   s   &r	   <lambda>Components.<lambda>   s    T^^%r
   c                $    V P                  V4      # r   )r   )r    r{   s   &&r	   r   r      s    DNN51r
   c                   V'       d   V'       d   \        R 4      hV! 4       pVf   \        V4      pVR8X  d   \        V4      pV P                  P	                  W#34      pVe+   VR,          W38X  d   R# V P                  V^ ,          W#4       V P                  P                  W#WV4       V'       d"   \        \        \        WW1WF4      4      4       R# R# )$Can't specify factory and component.N :Nr   N)rW   _getUtilityProvided_getNamerI   r   rp   r   rj   r   r   UtilityRegistration)r    r)   rX   rf   rg   eventrh   regs   &&&&&&& r	   rj   Components.registerUtility   s     FGG	I*95H2:I&D))--x.>??2w9++""3q68:))99IW	6 :#DTD  r
   c           
        V'       d   V'       d   \        R 4      hV! 4       pVf   Vf   \        R4      h\        V4      pV P                  P                  W#34      pVe   Ve   W^ ,          8w  d   R# Vf
   V^ ,          pV P                  P                  W#V4       \        \        \        WW1.VR,          O5!  4      4       R# )r   z3Must specify one of component, factory and providedF:rV   NNT)	rW   r   rI   r   r   rp   r   r   r   )r    r)   rX   rf   rh   olds   &&&&& r	   rp   Components.unregisterUtility  s     FGG	I  !+ , ,*95H))--x.>?Ki3'q61AI 	));;I	' 	|J#b'J
 	 r
   c              #     "   \        V P                  P                  4       4       F  w  w  rp\        WV.VO5!  x  K  	  R # 5ir   )rO   rI   r   r   )r    rX   rf   r2   s   &   r	   registeredUtilitiesComponents.registeredUtilities$  s?     t2288:;ht%ddBTBB <s   AAc                <    V P                   P                  RWV4      # rc   )rK   lookup)r    rX   rf   defaults   &&&&r	   queryUtilityComponents.queryUtility)  s    ~~$$RAAr
   c                \    V P                   P                  RW4      pVf   \        W4      hV# rc   )rK   r   r   )r    rX   rf   utilitys   &&& r	   
getUtilityComponents.getUtility,  s-    ..''H;?&x66r
   c              #  Z   "   V P                   P                  RV4       R j  xL
  R #  L5irc   )rK   	lookupAllr    	interfaces   &&r	   getUtilitiesForComponents.getUtilitiesFor2  s     >>++B	:::s    +)+c                :    V P                   P                  RV4      # rc   )rK   subscriptionsr   s   &&r	   getAllUtilitiesRegisteredFor'Components.getAllUtilitiesRegisteredFor5  s    ~~++B	::r
   c                   Vf   \        V4      p\        W4      pVR8X  d   \        V4      pW3V P                  W#V3&   V P                  P                  W#WA4       V'       d"   \        \        \        WW4W4      4      4       R # R # )Nr   )	_getAdapterProvided_getAdapterRequiredr   r   r   rd   r   r   AdapterRegistrationr    rh   requiredrX   rf   rg   r   s   &&&&&&&r	   registerAdapterComponents.registerAdapter8  s    *73H&w92:G$D(/ 	##X$> 	&x4A:#HG  r
   c           
     |   Vf   Vf   \        R4      h\        V4      pVf   Vf   \        R4      h\        W4      pV P                  P	                  W#V34      pVe   Ve   W^ ,          8w  d   R# V P                  W#V3 V P
                  P                  W#V4       \        \        \        WW4.VO5!  4      4       R# )N(Must specify one of factory and provided(Must specify one of factory and requiredFT)
rW   r   r   r   r   r   rm   r   r   r   )r    rh   r   rX   rf   r   s   &&&&& r	   unregisterAdapterComponents.unregisterAdapterJ  s      JKK*73H7?FGG&w9))--x4.HIKg1%Q/''T(BC  T:|EE
 	 r
   c           	   #     "   \        V P                  P                  4       4       F  w  w  rpw  rE\        WW#WE4      x  K  	  R # 5ir   )rO   r   r   r   )r    r   rX   rf   r)   rg   s   &     r	   registeredAdaptersComponents.registeredAdaptersd  sF     t2288:;'h$):)%dh&/7 7 <s   AAc                :    V P                   P                  WW44      # r   )r   queryAdapter)r    objectr   rf   r   s   &&&&&r	   r   Components.queryAdapterj  s    }}))&TKKr
   c                ^    V P                   P                  WV4      pVf   \        WV4      hV# r   )r   r   r   )r    r   r   rf   adapters   &&&& r	   
getAdapterComponents.getAdapterm  s/    --,,VE?&v$??r
   c                :    V P                   P                  WW44      # r   )r   queryMultiAdapter)r    objectsr   rf   r   s   &&&&&r	   r   Components.queryMultiAdapters  s    }}../ 	/r
   c                ^    V P                   P                  WV4      pVf   \        WV4      hV# r   )r   r   r   )r    r   r   rf   r   s   &&&& r	   getMultiAdapterComponents.getMultiAdapterx  s/    --11'dK?&w4@@r
   c              #     "   V P                   P                  \        \        \        V4      4      V4       F  w  r4V! V!  pVf   K  W53x  K  	  R # 5ir   )r   r   r   mapr   )r    r   rX   rf   rh   r   s   &&&   r	   getAdaptersComponents.getAdapters~  sK     !]]44Z)*H
MD w'G"m#
s   A AAc                &   V'       d   \        R 4      hVf   \        V4      p\        W4      pV P                  P	                  W#WAV34       V P
                  P                  W#V4       V'       d"   \        \        \        WW4W4      4      4       R# R# )'Named subscribers are not yet supportedN)
rW   r   r   r   r0   r   re   r   r   SubscriptionRegistrationr   s   &&&&&&&r	   registerSubscriptionAdapter&Components.registerSubscriptionAdapter  s     EFF*73H&w9((//5	
 	G<:(HG  r
   c              #  R   "   V P                    F  p\        V .VO5!  x  K  	  R # 5ir   )r   r   r    r2   s   & r	   registeredSubscriptionAdapters)Components.registeredSubscriptionAdapters  s%     44D*47$77 5   %'c                   V'       d   \        R 4      hVf   Vf   \        R4      h\        V4      pVf   Vf   \        R4      h\        W4      pVf:   V P                   UUUUU	u. uF  w  rVrxp	WR8X  d	   Wc8X  d   K  WVWxV	3NK  	  p
ppppp	M>V P                   UUUUU	u. uF   w  rVrxp	WR8X  d   Wc8X  d	   W8X  d   K  WVWxV	3NK"  	  p
ppppp	\	        V
4      \	        V P                  4      8X  d   R# WP                  R&   V P
                  P                  W#V4       \        \        \        WW4VR4      4      4       R# u up	ppppi u up	ppppi )r   r   r   FNNNr   T)
rW   r   r   r   lenr   ro   r   r   r   )r    rh   r   rX   rf   rrQ   nfr1   news   &&&&&      r	   unregisterSubscriptionAdapter(Components.unregisterSubscriptionAdapter  sP    EFF JKK*73H7?FGG&w9? 666 'aA=Q] #A!?6  C 666 'aA=Q]q| #A!?6   s8s4;;<<.1((+!!(g>|$
 	 1s   &D<=	D<E<	Ec                8    V P                   P                  W4      # r   r   subscribers)r    r   rX   s   &&&r	   r  Components.subscribers  s    }}((;;r
   c                   V'       d   \        R 4      h\        W4      pV P                  P                  W#W34       V P                  P                  VRV4       V'       d"   \        \        \        WW1V4      4      4       R# R# )z$Named handlers are not yet supportedN)	rW   r   r   r0   r   re   r   r   HandlerRegistration)r    rh   r   rf   rg   r   s   &&&&&&r	   registerHandlerComponents.registerHandler  st     BCC&w9##**W+	
 	$8:#DD4H  r
   c              #  R   "   V P                    F  p\        V .VO5!  x  K  	  R # 5ir   )r   r  r   s   & r	   registeredHandlersComponents.registeredHandlers  s%     //D%d2T22 0r   c                4   V'       d   \        R 4      hVf   Vf   \        R4      h\        W4      pVf0   V P                   UUUUu. uF  w  rErgWB8w  g   K  WEWg3NK  	  pppppM4V P                   UUUUu. uF  w  rErgWB8X  d	   Wa8X  d   K  WEWg3NK  	  ppppp\        V4      \        V P                  4      8X  d   R# WP                  R&   V P                  P                  VRV4       \        \        \        WW1R4      4      4       R# u uppppi u uppppi )r   Nr   Fr   r   T)	rW   r   r   r   r   ro   r   r   r  )	r    rh   r   rf   r   r   r   r1   r   s	   &&&&     r	   unregisterHandlerComponents.unregisterHandler  s   EFF7?FGG&w9? 111 $am  A!<1  C 111 $a=Q\  A!<1   s8s46677),##A&!!(D':|rB
 	 -s   D

D

6D
D
c                >    V P                   P                  VR 4       R # r   r  )r    r   s   &*r	   handleComponents.handle  s    !!'40r
   c                   \        V P                  4      pV P                  p^ p^ p^ p^ pRVP                  9  g   Q hR Vn        V'       d   VP
                  pVP                  p	MR ;r VP                  4        Fp  w  w  rw  rpVP                  RW4      V8w  d   V! RWV4       V^,          pM	V^,          pVP                  RW4      f   V^,          pV	! RW4       Kg  V^,          pKr  	  V=V'       d"   V'       g	   V'       d   VP	                  V4       RTRTRTRT/#   T=T'       d$   T'       g	   T'       d   TP	                  T4       i i i ; i)	ad  
Emergency maintenance method to rebuild the ``.utilities``
registry from the local copy maintained in this object, or
detect the need to do so.

Most users will never need to call this, but it can be helpful
in the event of suspected corruption.

By default, this method only checks for corruption. To make it
actually rebuild the registry, pass `True` for *rebuild*.

:param bool rebuild: If set to `True` (not the default),
   this method will actually register and subscribe utilities
   in the registry as needed to synchronize with the local cache.

:return: A dictionary that's meant as diagnostic data. The keys
   and values may change over time. When called with a false
   *rebuild*, the keys ``"needed_registered"`` and
   ``"needed_subscribed"`` will be non-zero if any corruption was
   detected, but that will not be corrected.

.. versionadded:: 5.3.0
changedc                     R # r   r   )rR   s   &r	   r   AComponents.rebuildUtilityRegistryFromLocalCache.<locals>.<lambda>(  s    $r
   c                      R # r   r   )argss   *r	   r   r  .  s    r
   needed_registereddid_not_registerneeded_subscribeddid_not_subscriber   )
dictrI   rK   r   r  rd   re   r   
registeredri   )r    rebuildregsutilsr  r  r  r  rd   re   rX   rf   value_info_factorys   &&             r	   $rebuildUtilityRegistryFromLocalCache/Components.rebuildUtilityRegistryFromLocalCache  s`   0 D//0 ...&~~HI#55H	%>Bjjl: ":5##B75@R7%*%$)$##B8@%*%b(2%*% ?K -1Be$  !2 0!2!2	
 	
	 -1Be$ 2Cws   +BD$ $E7E?E)	ry   r9   r   r   r   rI   rz   r   rK   )r   r   )NNr   r   TN)NNr   N)r   Nr   )NNr   r   T)NNNr   )Nr   r   T)NNr   )F)*r9   r:   r;   r<   rz   r#   r   r   rv   rw   propertyr   r   r   ry   rj   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r%  r=   r>   __classcell__)r   r@   s   @@r	   r   r      s      &*"3> +)   22 %1I
:>C
B;;$47L/
$*8(T<"3 D1A
 A
r
   c                 @     V P                   #   \         d     R # i ; ir'  )__component_name__AttributeError)r)   s   &r	   r   r   J  s%    +++ s    c                 r    \        \        V 4      4      p\        V4      ^8X  d
   V^ ,          # \        R4      h)rV   zWThe utility doesn't provide a single interface and no provided interface was specified.)r   r   r   rW   )r)   rX   s   & r	   r   r   Q  s9    Jy)*H
8}{
	3 r
   c                 r    \        \        V 4      4      p\        V4      ^8X  d
   V^ ,          # \        R4      h)rV   zaThe adapter factory doesn't implement a single interface and no provided interface was specified.)r   r   r   rW   )rh   rX   s   & r	   r   r   [  s9    M'*+H
8}{
	3 r
   c                    Vf    V P                   pM'\        P                  ! V4      '       d   \        R4      h. pV Fx  pVf   \
        pMY\        P                  ! V4      '       g>   \        V\        4      '       d   \        V4      pM\        R\        V4      ,          4      hVP                  V4       Kz  	  \        V4      #   \         d    \        R4      hi ; i)NzoThe adapter factory doesn't have a __component_adapts__ attribute and no required specifications were specifiedzLthe required argument should be a list of interfaces, not a single interfacez?Required specification must be a specification or class, not %r)__component_adapts__r,  rW   r   r   r   rt   typer   r0   rx   )rh   r   resultr   s   &&  r	   r   r   e  s    	33H 
	"	"8	,	,1
 	

 F9A**1--!T""!!$57;Aw?  	a  =1  	J 	s   C Cc                   Z   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tRtV tR# )r   i  Nc                N    Wn         W n        W0n        W@n        WPn        W`n        R # r   )registryrX   rf   r)   rg   rh   )r    r5  rX   rf   r)   docrh   s   &&&&&&&r	   r#   UtilityRegistration.__init__  s       	"	r
   c                "   R P                  V P                  P                  V P                  \	        V P
                  RR4      V P                  \	        V P                  R\        V P                  4      4      V P                  V P                  4      # )z"{}({!r}, {}, {!r}, {}, {!r}, {!r})r9   N)formatr   r9   r5  getattrrX   rf   r)   reprrh   rg   r   s   &r	   r   UtilityRegistration.__repr__  se    3::NN##MMDMM:t4diiDNNJT^^0DELL$))
 	
r
   c                    \        V 4      # r   idr   s   &r	   __hash__UtilityRegistration.__hash__      $xr
   c                0    \        V 4      \        V4      8H  # r   r;  r    others   &&r	   __eq__UtilityRegistration.__eq__      DzT%[((r
   c                0    \        V 4      \        V4      8g  # r   rD  rE  s   &&r	   __ne__UtilityRegistration.__ne__  rI  r
   c                0    \        V 4      \        V4      8  # r   rD  rE  s   &&r	   __lt__UtilityRegistration.__lt__      DzDK''r
   c                0    \        V 4      \        V4      8*  # r   rD  rE  s   &&r	   __le__UtilityRegistration.__le__  rI  r
   c                0    \        V 4      \        V4      8  # r   rD  rE  s   &&r	   __gt__UtilityRegistration.__gt__  rP  r
   c                0    \        V 4      \        V4      8  # r   rD  rE  s   &&r	   __ge__UtilityRegistration.__ge__  rI  r
   )r)   rh   rg   rf   rX   r5  r   r9   r:   r;   r<   r#   r   r@  rG  rK  rN  rR  rU  rX  r=   r>   r?   s   @r	   r   r     s7     
))()() )r
   r   c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )r   i  c                Z    WW4WV3w  V n         V n        V n        V n        V n        V n        R # r   )r5  r   rX   rf   rh   rg   )r    r5  r   rX   rf   r)   r6  s   &&&&&&&r	   r#   AdapterRegistration.__init__  s,     ?	t}di	tyr
   c                   R P                  V P                  P                  V P                  RRP	                  V P
                   Uu. uF  qP                  NK  	  up4      ,           R,           \        V P                  RR4      V P                  \        V P                  R\        V P                  4      4      V P                  4      # u upi )z {}({!r}, {}, {}, {!r}, {}, {!r})[, ]r9   N)r9  r   r9   r5  joinr   r:  rX   rf   rh   r;  rg   r    r   s   & r	   r   AdapterRegistration.__repr__  s    188NN##MM$))?AZZ?@@3FDMM:t4diiDLL*d4<<.@A499
 	
 @s   Cc                    \        V 4      # r   r>  r   s   &r	   r@  AdapterRegistration.__hash__  rB  r
   c                0    \        V 4      \        V4      8H  # r   rD  rE  s   &&r	   rG  AdapterRegistration.__eq__  rI  r
   c                0    \        V 4      \        V4      8g  # r   rD  rE  s   &&r	   rK  AdapterRegistration.__ne__  rI  r
   c                0    \        V 4      \        V4      8  # r   rD  rE  s   &&r	   rN  AdapterRegistration.__lt__  rP  r
   c                0    \        V 4      \        V4      8*  # r   rD  rE  s   &&r	   rR  AdapterRegistration.__le__  rI  r
   c                0    \        V 4      \        V4      8  # r   rD  rE  s   &&r	   rU  AdapterRegistration.__gt__  rP  r
   c                0    \        V 4      \        V4      8  # r   rD  rE  s   &&r	   rX  AdapterRegistration.__ge__  rI  r
   )rh   rg   rf   rX   r5  r   NrZ  r?   s   @r	   r   r     s8     @

))()() )r
   r   c                       ] tR tRtRtR# )r   i  r   N)r9   r:   r;   r<   r=   r   r
   r	   r   r     s    r
   r   c                   @   a  ] tR tRt o R t]R 4       tRtR tRt	V t
R# )r  i  c                N    WW4V3w  V n         V n        V n        V n        V n        R # r   )r5  r   rf   handlerrg   )r    r5  r   rf   rv  r6  s   &&&&&&r	   r#   HandlerRegistration.__init__  s%    3	ty$,	r
   c                    V P                   # r   )rv  r   s   &r	   rh   HandlerRegistration.factory  s    ||r
   Nc                l   R P                  V P                  P                  V P                  RRP	                  V P
                   Uu. uF  qP                  NK  	  up4      ,           R,           V P                  \        V P                  R\        V P                  4      4      V P                  4      # u upi )z{}({!r}, {}, {!r}, {}, {!r})r_  r`  ra  r9   )r9  r   r9   r5  rb  r   rf   r:  rh   r;  rg   rc  s   & r	   r   HandlerRegistration.__repr__  s    -44NN##MM$))?AZZ?@@3FIIDLL*d4<<.@A499
 	
 @s   B1)rv  rg   rf   r5  r   )r9   r:   r;   r<   r#   r(  rh   rX   r   r=   r>   r?   s   @r	   r  r    s/     4   H
 
r
   r  N)&__doc__collectionsr   
zope.eventr   ImportErrorzope.interface.adapterr   zope.interface.declarationsr   r   r   r   zope.interface.interfacer   zope.interface.interfacesr   r   r   r   r   r   r   r   r   __all__r   rC   rE   r   r   r   r   r   r   r   r   r  r   r
   r	   <module>r     s?   #!
 3 5 3 8 2 . : : 1 : 4 F : 0 2 	" "8DA DAN [m
 m
 m
`> !"&) &) #&)R !"#) #) ##)L 23	2 	 4	 &'
- 
 (
M  s   C= =
D
	D
