§ x<ˆjPãóV—dZddlmZddlZddlZddlZddlmZddlm Z ddlm Z ddlm Z ddlm Z dd lm Z dd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZer ddlmZddlmZed¦«Zede def¬¦«ZeeefZeZ e e!edee!efe"geee effZ#e deee deedfffZ$erGd„de¦«Z%Gd„de¦«Z&Gd„d ¦«Z'Gd!„d"¦«Z(d5d&„Z)e*ed'¦«Z+d6d+„Z,Gd,„d-¦«Z-e eee!efee e gdffZ.Gd.„d/¦«Z/Gd0„d1e/¦«Z0Gd2„d¦«Z1Gd3„d4¦«Z2dS)7zA Internal hook annotation, representation and calling machinery. é)Ú annotationsN)Ú ModuleType)Ú AbstractSet)ÚAny)ÚCallable)Ú Generator)ÚList)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTuple)Ú TYPE_CHECKING)ÚTypeVar)ÚUnioné)Ú_Result)Ú TypedDict)ÚFinalÚ_TÚ_F.)ÚboundÚHookImplcó.—eZdZUded<ded<ded<dS)Ú _HookSpecOptsÚboolÚ firstresultÚhistoricúWarning | NoneÚ warn_on_implN©Ú__name__Ú __module__Ú __qualname__Ú__annotations__©óú_/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/pluggy/_hooks.pyrr*s3€€€€€€ØÐÐÑØˆˆ‰Ø$Ð$Ð$Ñ$Ð$Ð$r'rcóL—eZdZUded<ded<ded<ded<ded<ded<d S) Ú _HookImplOptsrÚwrapperÚ hookwrapperÚ optionalhookÚtryfirstÚtrylastú str | NoneÚspecnameNr!r&r'r(r*r*/sQ€€€€€€Øˆ ˆ ‰ ØÐÐÑØÐÐÑØˆˆ‰Øˆ ˆ ‰ ØÐÐÑÐÐr'r*cór—eZdZdZdZdd„Ze ddd„¦«Ze ddd„¦«Z ddd„Zd S)ÚHookspecMarkeraDecorator for marking functions as hook specifications. Instantiate it with a project_name to get a decorator. Calling :meth:`PluginManager.add_hookspecs` later will discover all marked functions if the :class:`PluginManager` uses the same project_name. ©Ú project_namer5ÚstrÚreturnÚNonecó—||_dS©Nr4©Úselfr5s r(Ú__init__zHookspecMarker.__init__Bó€Ø#/ˆÔÐÐr'FNÚfunctionrrrrr rcó—dSr:r&©r<r?rrr s r(Ú__call__zHookspecMarker.__call__Eó €ð ˆr'.úCallable[[_F], _F]có—dSr:r&rAs r(rBzHookspecMarker.__call__OrCr'ú _F | Noneú_F | Callable[[_F], _F]có:‡‡‡‡—dˆˆˆˆfd„ }|� ||¦«S|S)a‚If passed a function, directly sets attributes on the function which will make it discoverable to :meth:`PluginManager.add_hookspecs`. If passed no function, returns a decorator which can be applied to a function later using the attributes supplied. If ``firstresult`` is ``True``, the 1:N hook call (N being the number of registered hook implementation functions) will stop at I<=N when the I'th function returns a non-``None`` result. If ``historic`` is ``True``, every call to the hook will be memorized and replayed on plugins registered after the call was made. Úfuncrr7cól•—‰r‰rtd¦«‚‰‰‰dœ}t|‰jdz|¦«|S)Nz'cannot have a historic firstresult hook)rrr Ú_spec)Ú ValueErrorÚsetattrr5)rIÚoptsrrr<r s €€€€r(Úsetattr_hookspec_optsz6HookspecMarker.__call__..setattr_hookspec_optsnsYø€Øð L˜Kð LÝ Ð!JÑKÔKÐKà*Ø$Ø ,ð#ð#ˆDõ �D˜$Ô+¨gÑ5°tÑ <Ô <Ð <؈Kr'N©rIrr7rr&)r<r?rrr rOs` ``` r(rBzHookspecMarker.__call__YsRøøøø€ð* ð ð ð ð ð ð ð ð ð Ð Ø(Ð(¨Ñ2Ô2Ð 2à(Ð (r'©r5r6r7r8)FFN) r?rrrrrr rr7r)....) r?r8rrrrr rr7rD)NFFN) r?rFrrrrr rr7rG©r"r#r$Ú__doc__Ú __slots__r=r rBr&r'r(r3r38sÀ€€€€ððð"€Ið0ð0ð0ð0ðð"ØØ'+ð  ð ð ð ñ„Xð ððØØØ'*ð  ð ð ð ñ„Xð ð#Ø!ØØ'+ð #)ð#)ð#)ð#)ð#)ð#)ð#)r'r3có„—eZdZdZdZdd„Ze ddd„¦«Ze ddd„¦«Z d d!d„ZdS)"ÚHookimplMarkeraDecorator for marking functions as hook implementations. Instantiate it with a ``project_name`` to get a decorator. Calling :meth:`PluginManager.register` later will discover all marked functions if the :class:`PluginManager` uses the same project_name. r4r5r6r7r8có—||_dSr:r4r;s r(r=zHookimplMarker.__init__‰r>r'.r?rr,rr-r.r/r1r0r+có—dSr:r&©r<r?r,r-r.r/r1r+s r(rBzHookimplMarker.__call__Œó €ð ˆr'rDcó—dSr:r&rYs r(rBzHookimplMarker.__call__™rZr'NFrFrGcóF‡‡‡‡‡‡‡—dˆˆˆˆˆˆˆfd„ }|€|S||¦«S)a�If passed a function, directly sets attributes on the function which will make it discoverable to :meth:`PluginManager.register`. If passed no function, returns a decorator which can be applied to a function later using the attributes supplied. If ``optionalhook`` is ``True``, a missing matching hook specification will not result in an error (by default it is an error if no matching spec is found). If ``tryfirst`` is ``True``, this hook implementation will run as early as possible in the chain of N hook implementations for a specification. If ``trylast`` is ``True``, this hook implementation will run as late as possible in the chain of N hook implementations. If ``wrapper`` is ``True``("new-style hook wrapper"), the hook implementation needs to execute exactly one ``yield``. The code before the ``yield`` is run early before any non-hook-wrapper function is run. The code after the ``yield`` is run after all non-hook-wrapper functions have run. The ``yield`` receives the result value of the inner calls, or raises the exception of inner calls (including earlier hook wrapper calls). The return value of the function becomes the return value of the hook, and a raised exception becomes the exception of the hook. If ``hookwrapper`` is ``True`` ("old-style hook wrapper"), the hook implementation needs to execute exactly one ``yield``. The code before the ``yield`` is run early before any non-hook-wrapper function is run. The code after the ``yield`` is run after all non-hook-wrapper function have run The ``yield`` receives a :class:`_Result` object representing the exception or result outcome of the inner calls (including earlier hook wrapper calls). This option is mutually exclusive with ``wrapper``. If ``specname`` is provided, it will be used instead of the function name when matching this hook implementation to a hook specification during registration. .. versionadded:: 1.2.0 The ``wrapper`` parameter. rIrr7cóL•—‰‰‰‰‰‰dœ}t|‰jdz|¦«|S)N)r+r,r-r.r/r1Ú_impl)rMr5) rIrNr,r-r<r1r.r/r+s €€€€€€€r(Úsetattr_hookimpl_optsz6HookimplMarker.__call__..setattr_hookimpl_optsÙsBø€à"Ø*Ø ,Ø$Ø"Ø$ð #ð#ˆDõ �D˜$Ô+¨gÑ5°tÑ <Ô <Ð <؈Kr'NrPr&) r<r?r,r-r.r/r1r+r_s ` `````` r(rBzHookimplMarker.__call__¦seøøøøøøø€ðf ð ð ð ð ð ð ð ð ð ð ð ð Ð Ø(Ð (à(Ð(¨Ñ2Ô2Ð 2r'rQ)......)r?rr,rr-rr.rr/rr1r0r+rr7r).......)r?r8r,rr-rr.rr/rr1r0r+rr7rD)NFFFFNF)r?rFr,rr-rr.rr/rr1r0r+rr7rGrRr&r'r(rVrVs倀€€€ððð"€Ið0ð0ð0ð0ðð Ø ØØØ"Øð  ð  ð  ð  ñ„Xð  ððØØ ØØØ"Øð  ð  ð  ð  ñ„Xð  ð#Ø!Ø"ØØØ#ØðB3ðB3ðB3ðB3ðB3ðB3ðB3r'rVrNr7r8có—| dd¦«| dd¦«| dd¦«| dd¦«| dd¦«| dd¦«dS)Nr.Fr/r+r,r-r1)Ú setdefault)rNs r(Únormalize_hookimpl_optsrbës€€Ø‡O‚O�J Ñ&Ô&Ð&؇O‚O�I˜uÑ%Ô%Ð%؇O‚O�I˜uÑ%Ô%Ð%؇O‚O�M 5Ñ)Ô)Ð)؇O‚O�N EÑ*Ô*Ð*؇O‚O�J Ñ%Ô%Ð%Ð%Ð%r'Úpypy_version_inforIÚobjectú'tuple[tuple[str, ...], tuple[str, ...]]cód‡ —tj|¦«r |j}nI#t$rYdSwxYwtj|¦«s$ t |d|¦«}n#t $rYdSwxYw tjtj|¦«r|j n|¦«}n#t$rYdSwxYwtj j tj j fŠ ˆ fd„|j ¦«D¦«}t!|¦«}t!d„| ¦«D¦«¦«pd}|r2t%|¦« }|d|…t!||d…¦«}}nd}t&sd}nd}|r=t |d d ¦«}tj|¦«sd |vr|d |vr |d d…}||fS)zâReturn tuple of positional and keywrord argument names for a function, method, class or callable. In case of a class, its ``__init__`` method is considered. For methods the ``self`` parameter is not included. )r&r&rBcó.•—i|]\}}|j‰v¯||“ŒSr&)Úkind)Ú.0ÚnameÚparamÚ_valid_param_kindss €r(ú zvarnames..s7ø€ðððá ˆD�%Ø Œ:Ð+Ð +Ð +ð ˆeà +Ð +Ð +r'c3ó@K—|]}|j|ju¯|jV—ŒdSr:)ÚdefaultÚempty)rirks r(ú zvarnames..s?èè€ð ð àØŒ} E¤KÐ/Ð/ð ŒMà/Ð/Ð/Ð/ð ð r'Nr&©r<)r<Úobjr$Úú.rr)ÚinspectÚisclassr=ÚAttributeErrorÚ isroutineÚgetattrÚ ExceptionÚ signatureÚismethodÚ__func__Ú TypeErrorÚ ParameterÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚ parametersÚitemsÚtupleÚvaluesÚlenÚ_PYPY) rIÚsigÚ _valid_paramsÚargsÚdefaultsÚindexÚkwargsÚimplicit_namesÚqualnamerls @r(Úvarnamesr‘÷s=ø€õ„�tÑÔð ð Ø”=ˆDˆDøÝð ð ð Ø�6�6ð øøøå Ô ˜tÑ $Ô $ðð ݘ4 ¨TÑ2Ô2ˆDˆDøÝð ð ð Ø�6�6ð øøøðåÔÝ$Ô-¨dÑ3Ô3Ð =ˆDŒMˆM¸ñ ô ˆˆøõ ððð؈vˆvðøøøõ ÔÔ)ÝÔÔ/ðÐððððàœ>×/Ò/Ñ1Ô1ðñô€Mõ �Ñ Ô €Då ð ð à&×-Ò-Ñ/Ô/ð ñ ô ñ ô ð ð ð  ððÝ�X‘”�ˆØ˜F˜U˜F”|¥U¨4°°°¬<Ñ%8Ô%8ˆfˆˆàˆõ ð)Ø*3ˆˆà(ˆØ ðÝ  n°bÑ9Ô9ˆÝ Ô ˜DÑ !Ô !ð  c¨X o o¸$¸q¼'À^Ð:SÐ:Sؘ˜˜”8ˆDà �ˆ<Ðs0—Ÿ -¬-ÁAÁ A%Á$A%Á)/B B'Â&B'có&—eZdZdZdZerd d„ZdSdS) Ú _HookRelayzaHook holder object for performing 1:N hook calls where N is the number of registered plugins.)Ú__dict__rjr6r7Ú _HookCallercó—dSr:r&)r<rjs r(Ú __getattr__z_HookRelay.__getattr__@s€Ø ˆCr'N)rjr6r7r•)r"r#r$rSrTrr—r&r'r(r“r“8sK€€€€€ððð€Iàðð ð ð ð ð ð ððr'r“có†—eZdZdZ d,d-d „Zd.d„Zd/d„Zd.d„Zd0d„Zd1d„Z d2d„Z d3d„Z d4d„Z d5d"„Z d,d6d&„Zd7d)„Zd8d+„ZdS)9r•)rjÚspecÚ _hookexecÚ _hookimplsÚ _call_historyNrjr6Ú hook_executeÚ _HookExecÚspecmodule_or_classú_Namespace | NoneÚ spec_optsú_HookSpecOpts | Noner7r8cóˆ—||_||_g|_d|_d|_|�|€J‚| ||¦«dSdSr:)rjršr›rœr™Úset_specification)r<rjr�rŸr¡s r(r=z_HookCaller.__init__Ps_€ð ˆŒ Ø ,ˆŒØ13ˆŒØ26ˆÔØ%)ˆŒ Ø Ð *ØÐ(Ð(Ð(Ø × "Ò "Ð#6¸ Ñ BÔ BÐ BÐ BÐ Bð +Ð *r'rcó—|jduSr:)r™rrs r(Úhas_specz_HookCaller.has_spec`s€ØŒy Ð$Ð$r'Ú _NamespacercóØ—|j�)td|jj›d|jj›�¦«‚t ||j|¦«|_| d¦«r g|_dSdS)NzHook z( is already registered within namespace r)r™rLrjÚ namespaceÚHookSpecÚgetrœ)r<rŸr¡s r(r¤z_HookCaller.set_specificationcs‰€ð Œ9Ð Ýð:˜œ œð:ð:Ø$(¤IÔ$7ð:ð:ñôð õÐ0°$´)¸YÑGÔGˆŒ Ø �=Š=˜Ñ $Ô $ð $Ø!#ˆDÔ Ð Ð ð $ð $r'có—|jduSr:)rœrrs r(Ú is_historicz_HookCaller.is_historicqs€ØÔ!¨Ð-Ð-r'ÚpluginÚ_Plugincóˆ—t|j¦«D]\}}|j|kr |j|=dSŒtd|›d�¦«‚)Nzplugin z not found)Ú enumerater›r®rL)r<r®ÚiÚmethods r(Ú_remove_pluginz_HookCaller._remove_plugints^€Ý" 4¤?Ñ3Ô3ð ð ‰IˆAˆvØŒ} Ò&Ð&Ø”O AÐ&Ø��ð'õÐ7 6Ð7Ð7Ð7Ñ8Ô8Ð8r'úlist[HookImpl]có4—|j ¦«Sr:)r›Úcopyrrs r(Ú get_hookimplsz_HookCaller.get_hookimpls{s€ØŒ×#Ò#Ñ%Ô%Ð%r'Úhookimplrcó—t|j¦«D]\}}|js|jr|}nŒt |j¦«}|js|jr|t |j¦«}}nd|}}|jr|j ||¦«dS|jr|j ||¦«dS|dz }||kr/|j|jr|dz}||kr|j|j°|j |dz|¦«dS)z,Add an implementation to the callback chain.rrN)r±r›r,r+r‡r/Úinsertr.)r<r¹r²r³Ú splitpointÚstartÚends r(Ú _add_hookimplz_HookCaller._add_hookimpl~s>€å" 4¤?Ñ3Ô3ð .ð .‰IˆAˆvØÔ!ð  V¤^ð Ø� Ø�ð õ˜Tœ_Ñ-Ô-ˆJØ Ô ð ' 8Ô#3ð 'Ø#¥S¨¬Ñ%9Ô%9�3ˆEˆEà˜J�3ˆEà Ô ð 4Ø ŒO× "Ò " 5¨(Ñ 3Ô 3Ð 3Ð 3Ð 3Ø Ô ð 4Ø ŒO× "Ò " 3¨Ñ 1Ô 1Ð 1Ð 1Ð 1ð�a‘ˆAØ�u’*�* ¤°Ô!3Ô!<�*Ø�Q‘�ð�u’*�* ¤°Ô!3Ô!<�*à ŒO× "Ò " 1 q¡5¨(Ñ 3Ô 3Ð 3Ð 3Ð 3r'có—d|j›d�S)Nz <_HookCaller ú>©rjrrs r(Ú__repr__z_HookCaller.__repr__–s€Ø-˜tœyÐ-Ð-Ð-Ð-r'rŽúMapping[str, object]có|jrj|jjD]_}|‰vrWd ˆfd„|jjD¦«¦«}tjd |¦«d¬¦«dSŒ^dSdS)Nz, c3ób•K—|])}|‰ ¦«v¯t|¦«V—Œ*dSr:)ÚkeysÚrepr)riÚargnamerŽs €r(rqz<_HookCaller._verify_all_args_are_provided..žsJøèè€ð*ð*à#à"¨&¯+ª+©-¬-Ð7Ð7õ˜W™ œ ð8Ð7Ð7Ð7ð *ð*r'zSArgument(s) {} which are declared in the hookspec cannot be found in this hook callé)Ú stacklevel)r™ÚargnamesÚjoinÚwarningsÚwarnÚformat)r<rŽrÉÚ notincalls ` r(Ú_verify_all_args_are_providedz)_HookCaller._verify_all_args_are_provided™s¼ø€à Œ9ð Øœ9Ô-ð ð �Ø &Ð(Ð(Ø $§ ¢ ð*ð*ð*ð*à'+¤yÔ'9ð*ñ*ô*ñ!ô!�Iõ ”Mð<ßÔ>Ð>ÐQVˆ Ø�~Š~˜dœi¨¬¸&À+ÑNÔNÐNr'Úresult_callbackúCallable[[Any], None] | NoneúMapping[str, object] | Nonecó—|j€J‚|pi}| |¦«|j ||f¦«| |j|j|d¦«}|€dSt |t¦«r|D]}||¦«ŒdSdS)aCall the hook with given ``kwargs`` for all registered plugins and for all plugins which will be registered afterwards. If ``result_callback`` is provided, it will be called for each non-``None`` result obtained from a hook implementation. NF)rœrÒÚappendršrjr›Ú isinstanceÚlist)r<rÕrŽÚresÚxs r(Ú call_historicz_HookCaller.call_historic³s¼€ðÔ!Ð-Ð-Ð-Ø�˜2ˆØ ×*Ò*¨6Ñ2Ô2Ð2Ø Ô×!Ò! 6¨?Ð";Ñ<Ô<Ð<ð�nŠn˜TœY¨¬¸ÀÑGÔGˆØ Ð "Ø ˆFÝ �c�4Ñ Ô ð #Øð #ð #�Ø� Ñ"Ô"Ð"Ð"ð #ð #ð #ð #r'ÚmethodsúSequence[Callable[..., object]]cóz—| ¦«r Jd¦«‚| |¦«dddddddœ}|j ¦«}|D]ž}t dd||¦«}t |¦«dz }|dkrY||jrL||js?||js2|dz}|dkr'||jr||js ||j¯2|  |dz|¦«ŒŸ|j r |j j   dd¦«nd}|  |j|||¦«S) zCall the hook with some additional temporarily participating methods using the specified ``kwargs`` as call parameters.rÔFN)r+r,r-r/r.r1zrrr)r­rÒr›r·rr‡r.r,r+r»r™rNr«ršrj) r<rßrŽrNÚ hookimplsr³r¹r²rs r(Ú call_extraz_HookCaller.call_extraËs‚€ð × Ò Ñ"Ô"ð Oð Oà Nñ Oô OØ "à ×*Ò*¨6Ñ2Ô2Ð2àØ Ø!ØØØð  ð ˆð”O×(Ò(Ñ*Ô*ˆ Øð .ð .ˆFÝ  h°¸Ñ=Ô=ˆHå�I‘” Ñ"ˆAà�Q’�ؘa”LÔ)ðà" 1œÔ1ðà5>¸q´\Ô5Iðð�Q‘�ð �Q’�ؘa”LÔ)ðà" 1œÔ1ðà5>¸q´\Ô5Iðð × Ò ˜Q ™U HÑ -Ô -Ð -Ð -ØBFÄ)ÐV�d”i”n×(Ò(¨¸Ñ>Ô>Ð>ÐQVˆ Ø�~Š~˜dœi¨°F¸KÑHÔHÐHr'r³cóò—| ¦«r`|j€J‚|jD]Q\}}| |j|g|d¦«}|r*|�(t |t ¦«sJ‚||d¦«ŒPdSdS)zAApply call history to a new hookimpl if it is marked as historic.NFr)r­rœršrjrÚrÛ)r<r³rŽrÕrÜs r(Ú_maybe_apply_historyz _HookCaller._maybe_apply_historyës£€à × Ò Ñ Ô ð ,ØÔ%Ð1Ð1Ð1Ø+/Ô+=ð ,ð ,Ñ'�˜Ø—n’n T¤Y°°¸&À%ÑHÔH�Øð,˜?Ð6å% c­4Ñ0Ô0Ð0Ð0Ð0Ø#�O C¨¤FÑ+Ô+Ð+øð ,ð ,ð ,ð ,r')NN) rjr6r�ržrŸr r¡r¢r7r8)r7r)rŸr§r¡rr7r8)r®r¯r7r8©r7rµ)r¹rr7r8©r7r6)rŽrÄr7r8)rŽrdr7r)rÕrÖrŽr×r7r8)rßràrŽrÄr7r)r³rr7r8)r"r#r$rTr=r¦r¤r­r´r¸r¿rÃrÒrBrÞrãrår&r'r(r•r•GsG€€€€€ð€Ið26Ø*.ð CðCðCðCðCð %ð%ð%ð%ð $ð $ð $ð $ð.ð.ð.ð.ð9ð9ð9ð9ð&ð&ð&ð&ð4ð4ð4ð4ð0.ð.ð.ð.ððððð$OðOðOðOð9=Ø.2ð#ð#ð#ð#ð#ð0IðIðIðIð@ ,ð ,ð ,ð ,ð ,ð ,r'r•cón—eZdZdZdZdd „Zedd „¦«Zedd „¦«Zedd„¦«Z dd„Z dS)Ú_SubsetHookCallerztA proxy to another HookCaller which manages calls to all registered plugins except the ones from remove_plugins.)Ú_origÚ_remove_pluginsÚorigr•Úremove_pluginsúAbstractSet[_Plugin]r7r8cóR—||_||_|j|_|j|_dSr:)rêrërjrš)r<rìrís r(r=z_SubsetHookCaller.__init__ s'€ØˆŒ Ø-ˆÔØ”IˆŒ ØœˆŒˆˆr'rµcó4‡—ˆfd„‰jjD¦«S)Ncó0•—g|]}|j‰jv¯|‘ŒSr&)r®rë)riÚimplr<s €r(ú z0_SubsetHookCaller._hookimpls..s3ø€ð ð ð àØŒ{ $Ô"6Ð6Ð6ð à6Ð6Ð6r')rêr›rrs`r(r›z_SubsetHookCaller._hookimplss3ø€ð ð ð ð àœ Ô-ð ñ ô ð r'úHookSpec | Nonecó—|jjSr:)rêr™rrs r(r™z_SubsetHookCaller.specs €àŒzŒÐr'ú_CallHistory | Nonecó—|jjSr:)rêrœrrs r(rœz_SubsetHookCaller._call_historys €àŒzÔ'Ð'r'r6có—d|j›d�S)Nz<_SubsetHookCaller rÁrÂrrs r(rÃz_SubsetHookCaller.__repr__ s€Ø3 T¤YÐ3Ð3Ð3Ð3r'N)rìr•rírîr7r8ræ)r7rô)r7rörç) r"r#r$rSrTr=Úpropertyr›r™rœrÃr&r'r(réré÷s­€€€€€ð4ð4ð€Ið (ð(ð(ð(ð ð ð ð ñ„Xð ððððñ„Xððð(ð(ð(ñ„Xð(ð4ð4ð4ð4ð4ð4r'récó"—eZdZdZdd „Zdd „ZdS)r) r?rÌÚ kwargnamesr®rNÚ plugin_namer+r,r-r.r/r®r¯rür6r?ú_HookImplFunction[object]Úhook_impl_optsr*r7r8có—||_t|j¦«\|_|_||_||_||_|d|_|d|_|d|_ |d|_ |d|_ dS)Nr+r,r-r.r/) r?r‘rÌrûr®rNrür+r,r-r.r/)r<r®rür?rþs r(r=zHookImpl.__init__3s{€ð (ˆŒ Ý)1°$´-Ñ)@Ô)@Ñ&ˆŒ �t”؈Œ Ø"ˆŒ Ø&ˆÔØ% iÔ0ˆŒ Ø)¨-Ô8ˆÔØ*¨>Ô:ˆÔØ& zÔ2ˆŒ Ø% iÔ0ˆŒ ˆ ˆ r'có(—d|j›d|j›d�S)Nzr s/ðððð#Ð"Ð"Ð"Ð"Ð"à€€€Ø € € € Ø€€€ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐØÐÐÐÐÐàÐÐÐÐÐàð(Ø+Ð+Ð+Ð+Ð+Ð+Ø'Ð'Ð'Ð'Ð'Ð'ð €WˆT�]„]€Ø €WˆT˜ # v +Ô.Ð/Ñ/Ô/€Ø �:˜tÐ#Ô $€ Ø €Ø ؈(�:Ô  ¨¨V¨ Ô 4°dÐ;Ø ˆ&�$�v”,Ð Ôð!ô € ð˜S %¨¨I°d¸GÀB¼KÈÐ6MÔ,NÐ(NÔ"OÐOÔPÐØð ð%ð%ð%ð%ð%˜ ñ%ô%ð%ð ðððð˜ ñôððD)ðD)ðD)ðD)ðD)ñD)ôD)ðD)ðNi3ði3ði3ði3ði3ñi3ôi3ði3ðX&ð&ð&ð&ð ˆ�Ð(Ñ)Ô)€ð>ð>ð>ð>ðB ð ð ð ð ñ ô ð ð�E˜' # v +Ô.°¸À3À%ÈÀ+Ô9NÔ0OÐOÔPÔQ€ ðm,ðm,ðm,ðm,ðm,ñm,ôm,ðm,ð`*4ð*4ð*4ð*4ð*4˜ ñ*4ô*4ð*4ðZ"Vð"Vð"Vð"Vð"Vñ"Vô"Vð"VðJ5ð5ð5ð5ð5ñ5ô5ð5ð5ð5r'