a „oeƒã@s*ddlZGdd„dƒZGdd„deƒZdS)éNc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) ÚObjectNcCs ||jd<|dur| |¡dS©NÚ_obj_)Ú__dict__Ú AttachObject©ÚselfZinitObj©r ú;C:\Program Files\Certbot\pkgs\pythonwin\pywin\mfc\object.pyÚ__init__s zObject.__init__cCs | ¡dS©N)Úclose©rr r r Ú__del__ szObject.__del__cCsn| d¡sbzD|jd}|dur*t||ƒWS|ddkrL|ddkrLt d¡‚Wnty`Yn0t|ƒ‚dS)NÚ__rrÚ_éÿÿÿÿzThe MFC object has died.)Ú startswithrÚgetattrÚwin32uiÚerrorÚKeyErrorÚAttributeError)rÚattrÚor r r Ú __getattr__s    zObject.__getattr__cCs d|_dSr )rrr r r ÚOnAttachedObjectDeath#szObject.OnAttachedObjectDeathcCs*d|jvr&|jdur&|j d¡d|_dSr)rrrrr r r r 's   z Object.close)N)Ú__name__Ú __module__Ú __qualname__r rrrr r r r r rs  rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú CmdTargetcCst ||¡dSr )rr rr r r r /szCmdTarget.__init__cCs.g}t||dƒD]}| | ||¡¡q|S©Né)ÚrangeÚappendZ HookNotify©rZhandlerZfirstIDZlastIDZ oldhandlersÚir r r ÚHookNotifyRange2szCmdTarget.HookNotifyRangecCs.g}t||dƒD]}| | ||¡¡q|Sr!)r#r$Z HookCommandr%r r r ÚHookCommandRange8szCmdTarget.HookCommandRangecCs.g}t||dƒD]}| | ||¡¡q|Sr!)r#r$ZHookCommandUpdater%r r r ÚHookCommandUpdateRange>sz CmdTarget.HookCommandUpdateRangeN)rrrr r'r(r)r r r r r .sr )rrr r r r r Ús(