Ë
    Æ[;jôE ã                   ó  — d dl Z  e j                  dŒi de“de“de“de“de“de“de“d	e“d
e“de“de“de“de“de“de“de“de“de“de“de“Ž d dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZmZ d dlmZmZ d dlmZ ddlmZ ddlmZ ddlmZ ddlmZ d d!lmZ dd"lmZ d d#lmZ d d$lmZ  	 d d$l!mZ"  ee"d%¬&«      Z"	 d d'l$mZ%m&Z'm(Z)  ee%e'jT                  e)jV                  e'jX                  e'jX                  j[                  «       d   i¬(«      Z%['[)dd) ee d%¬*«      fd d+e"fd,d-e%fgZ.d.d.d/d0d1œZ/d2d2d3d4d5œZ0d6d7iZ1d8Z2 e3g d9¢«      Z4g d:¢Z5 e j                  e3 e3d;«      «      Z6d<d=ijn                  Z8 e j                  edd d d>œjn                  «      Z9 G d?„ d@«      Z:dA„ Z;dZ<	 dB„ Z=e=Z< G dC„ dD«      Z> G dE„ dFe>«      Z?e
 G dG„ dH«      «       Z@ G dI„ dJe?«      ZAddKdgdLœdM„ZB eBdNdO¬P«      dQ„ «       ZC eB«       dReAfdS„«       ZD eBdTdUdV¬W«      dX„ «       ZE eBdYdZdUd[¬W«      d\„ «       ZF eBd]d^¬P«      d_„ «       ZG eBd`dKda¬W«      db„ «       ZH eB«       dc„ «       ZIddi fdd„ZJ G de„ dfeA«      ZK G dg„ dhe?«      ZL G di„ dj«      ZM G dk„ dl«      ZN G dm„ dn«      ZO e j                  eeee¬o«        ej                   dpej¢                  «      j¤                  ZS ej                   dq«      j¤                  ZT ej                   dr«      jª                  ZV ej                   ds«      j®                  ZX G dt„ du«      ZY G dv„ dw«      ZZ G dx„ dy«      Z[dz„ Z\ G d{„ d|«      Z] G d}„ d~«      Z^ G d„ d€«      Z_ G d�„ d‚«      Z`e jÂ                  e jÄ                  dƒecd„e jÈ                  d…ecfd†„«       «       Ze e jÌ                  d‡«      e jÎ                  dˆecd…e jÈ                  fd‰„«       «       Zh G dŠ„ d‹«      Ziy# e#$ r dZ"Y �Œ$w xY w# e#$ r dZ%Y �ŒÞw xY w)�é    NÚosÚreÚoperatorÚtextwrapÚTemplateÚNamingÚOptionsÚStringEncodingÚUtilsÚSourceDescriptorÚStringIOTreeÚ
DebugFlagsÚdefaultdictÚclosingÚpartialÚwrapsÚzlib_compressÚbz2_compressÚlzma_compressÚzstd_compress)Ú	dataclass©r   )r   r   )r   Úcontextmanager)r   é   )r   )r	   )r   )r
   é   )r   )r   )r   )Úcompressé	   )Úcompresslevel)r   ÚCompressionParameterÚStrategy)ÚoptionsÚzlib©ÚlevelÚbz2é   ÚzstdÚstrÚrangeÚinput)ÚunicodeÚ
basestringÚxrangeÚ	raw_inputz&PyLong_Typez&PyFloat_Typez&PyWrapperDescr_Type)Úpy_intÚpy_longÚpy_floatÚwrapper_descriptorÚPyTypeObjectÚPyHeapTypeObject)r&   é   r   Úbetar   )ŸÚArithmeticErrorÚAssertionErrorÚAttributeErrorÚBaseExceptionÚBaseExceptionGroupÚBlockingIOErrorÚBrokenPipeErrorÚBufferErrorÚBytesWarningÚChildProcessErrorÚConnectionAbortedErrorÚConnectionErrorÚConnectionRefusedErrorÚConnectionResetErrorÚDeprecationWarningÚEOFErrorÚEllipsisÚEncodingWarningÚEnvironmentErrorÚ	ExceptionÚExceptionGroupÚFalseÚFileExistsErrorÚFileNotFoundErrorÚFloatingPointErrorÚFutureWarningÚGeneratorExitÚIOErrorÚImportCycleErrorÚImportErrorÚImportWarningÚIndentationErrorÚ
IndexErrorÚInterruptedErrorÚIsADirectoryErrorÚKeyErrorÚKeyboardInterruptÚLookupErrorÚMemoryErrorÚModuleNotFoundErrorÚ	NameErrorÚNoneÚNotADirectoryErrorÚNotImplementedÚNotImplementedErrorÚOSErrorÚOverflowErrorÚPendingDeprecationWarningÚPermissionErrorÚProcessLookupErrorÚPythonFinalizationErrorÚRecursionErrorÚReferenceErrorÚResourceWarningÚRuntimeErrorÚRuntimeWarningÚStopAsyncIterationÚStopIterationÚSyntaxErrorÚSyntaxWarningÚSystemErrorÚ
SystemExitÚTabErrorÚTimeoutErrorÚTrueÚ	TypeErrorÚUnboundLocalErrorÚUnicodeDecodeErrorÚUnicodeEncodeErrorÚUnicodeErrorÚUnicodeTranslateErrorÚUnicodeWarningÚUserWarningÚ
ValueErrorÚWarningÚWindowsErrorÚZeroDivisionErrorÚ_IncompleteInputErrorÚ__build_class__Ú	__debug__Ú__lazy_import__Ú
__import__ÚabsÚaiterÚallÚanextÚanyÚasciiÚbinÚboolÚ
breakpointÚ	bytearrayÚbytesÚcallableÚchrÚclassmethodÚcompileÚcomplexÚ	copyrightÚcreditsÚdelattrÚdictÚdirÚdivmodÚ	enumerateÚevalÚexecÚexitÚfilterÚfloatÚformatÚ
frozendictÚ	frozensetÚgetattrÚglobalsÚhasattrÚhashÚhelpÚhexÚidr*   ÚintÚ
isinstanceÚ
issubclassÚiterÚlenÚlicenseÚlistÚlocalsÚmapÚmaxÚ
memoryviewÚminÚnextÚobjectÚoctÚopenÚordÚpowÚprintÚpropertyÚquitr)   ÚreprÚreversedÚroundÚsentinelÚsetÚsetattrÚsliceÚsortedÚstaticmethodr(   ÚsumÚsuperÚtupleÚtypeÚvarsÚzip)r¦   rÇ   rS   r‡   r„   ri   r;   rK   rŠ   rŒ   rH   r‚   r‘   Ú_)	Ú	__cinit__Ú__dealloc__Ú__richcmp__Ú__next__Ú	__await__Ú	__aiter__Ú	__anext__Ú__getbuffer__Ú__releasebuffer__ÚinlineÚCYTHON_INLINE)ÚustringrÏ   rÊ   c                   ó@   — e Zd ZdZdZdZdZdZdd„Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚIncludeCodez]
    An include file and/or verbatim C code to be included in the
    generated sources.
    r   r   r   Nc                 óº  — | j                   | _        t        | «      xj                   dz  c_         i | _        |rO|d   dk(  r)|d   dk(  r!dj	                  |«      | j                  d<   d}ndj	                  |«      | j                  d<   |r|| j                  | j                  <   |r| j
                  | _        y |r| j                  | _        y | j                  | _        y )	Nr   r   Ú<éÿÿÿÿÚ>z#include {}Fz#include "{}")	ÚcounterÚorderrÐ   Úpiecesr¥   ÚINITIALÚlocationÚLATEÚEARLY)ÚselfÚincludeÚverbatimÚlateÚinitials        ú]G:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/Code.pyÚ__init__zIncludeCode.__init__I  s´   € Ø—\‘\ˆŒ
ÜˆT‹
×Ò˜aÑÕØˆŒáØ�q‰z˜SÒ  W¨R¡[°CÒ%7Ø!.×!5Ñ!5°gÓ!>�—‘˜A‘Ø‘à!0×!7Ñ!7¸Ó!@�—‘˜A‘áØ&.ˆD�K‰K˜Ÿ
™
Ñ#áØ ŸL™LˆD�MÙØ ŸI™IˆD�Mà ŸJ™JˆD�Mó    c                 ó¶   — ||v rP||   }t        | j                  |j                  «      |_        |j                  j                  | j                  «       y| ||<   y)z˜
        Insert `self` in dict `d` with key `key`. If that key already
        exists, update the attributes of the existing value with `self`.
        N)rº   rê   rè   Úupdate)rí   ÚdÚkeyÚothers       rò   Údict_updatezIncludeCode.dict_update_  sI   € ð
 �!‰8Ø�c‘FˆEÜ  §¡°·±Ó?ˆEŒNØ�L‰L×Ñ §¡Õ,àˆAˆcŠFrô   c                 ó   — | j                   S ©N)rç   ©rí   s    rò   ÚsortkeyzIncludeCode.sortkeyk  s   € Ø�z‰zÐrô   c                 ó8   — | j                   j                  d«      S )zˆ
        Return the main piece of C code, corresponding to the include
        file. If there was no include file, return None.
        r   )rè   Úgetrý   s    rò   Ú	mainpiecezIncludeCode.mainpiecen  s   € ð
 �{‰{�‰˜qÓ!Ð!rô   c                 ót   — t        | j                  «      D ]   }|j                  | j                  |   «       Œ" y rü   )rË   rè   Úputln)rí   ÚcodeÚks      rò   ÚwritezIncludeCode.writeu  s)   € ä˜Ÿ™Ö$ˆAØ�J‰J�t—{‘{ 1‘~Õ&ñ %rô   )NNTF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ré   rì   rë   ræ   ró   rú   rþ   r  r  © rô   rò   rá   rá   /  s6   „ ñð& €GØ€EØ€Dà€Gó'ò,
òò"ó'rô   rá   c                  óü   — t         j                  j                  t         j                  j                  t         j                  j                  t        «      «      «      } t         j                  j                  | d«      S )NÚUtility)r   ÚpathÚdirnameÚabspathÚ__file__Újoin)Ú
Cython_dirs    rò   Úget_utility_dirr  {  sE   € ô —‘—‘¤§¡§¡´·±·±ÄÓ1JÓ!KÓL€JÜ�7‰7�<‰<˜
 IÓ.Ð.rô   c                 óÞ   — t         j                  j                  t        «       | «      }t	        t        j                  |d¬«      «      5 }|j                  «       cddd«       S # 1 sw Y   yxY w)zh
    Read all lines of the file at the provided path from a path relative
    to get_utility_dir().
    úUTF-8)ÚencodingN)r   r  r  r  r   r   Úopen_source_fileÚ	readlines)r  ÚfilenameÚfs      rò   Úread_utilities_from_utility_dirr  Œ  sH   € ô
 �w‰w�|‰|œOÓ-¨tÓ4€HÜ	”×'Ñ'¨¸7ÔCÔ	DÈØ�{‰{‹}÷ 
E×	DÒ	Dús   Á	A#Á#A,c                   ó&   — e Zd ZdZddd„Zd„ Zd„ Zy)ÚAbstractUtilityCodeNc                  ó   — y rü   r  )rí   ÚglobalstateÚused_bys      rò   Úput_codezAbstractUtilityCode.put_code�  s   € Ørô   c                  ó   — y rü   r  ©rí   Úkwargss     rò   Úget_treezAbstractUtilityCode.get_tree   ó   € Ørô   c                  ó   — y rü   r  r$  s     rò   Úget_shared_library_scopez,AbstractUtilityCode.get_shared_library_scope£  r'  rô   rü   ©r   ÚGlobalStateÚreturnN)r  r  r	  Úrequiresr"  r&  r)  r  rô   rò   r  r  ™  s   „ à€Hôòórô   r  c                   ó  — e Zd ZdZdZi Z ej                  d«      j                  Z	e
d„ «       Zedd„«       Zed„ «       Zed„ «       Zei fd	„«       Zedd
„«       Z ej                  d«      j$                  fd„Zd„ Zd„ Zd„ Zdd„Zy)ÚUtilityCodeBasea(  
    Support for loading utility code from a file.

    Code sections in the file can be specified as follows:

        ##### MyUtility.proto #####

        [proto declarations]

        ##### MyUtility.init #####

        [code run at module initialization]

        ##### MyUtility #####
        #@requires: MyOtherUtility
        #@substitute: naming

        [definitions]

        ##### MyUtility #####
        #@substitute: tempita

        [requires tempita substitution
         - context can't be specified here though so only
           tempita utility that requires no external context
           will benefit from this tag
         - only necessary when @required from non-tempita code]

    for prototypes and implementation respectively.  For non-python or
    -cython files backslashes should be used instead.  5 to 30 comment
    characters may be used on either side.

    If the @cname decorator is not used and this is a CythonUtilityCode,
    one should pass in the 'name' keyword argument to be used for name
    mangling of such entries.
    Fzo(.+)[.](proto(?:[.]\S+)?|impl|init|cleanup|module_state_decls|module_state_traverse|module_state_clear|export)$c                 óŽ   — t        j                  ddt        j                  | «      iz  t         j                  «      j                  S )NzS^%(C)s{5,30}  \s*  (?P<name> (?:\w|\.)+ )  \s*  %(C)s{5,30} |^%(C)s+  @(?P<tag> .+)ÚC)r   r—   ÚescapeÚVERBOSEÚmatch)Úline_comment_chars    rò   Úget_special_comment_matcherz+UtilityCodeBase.get_special_comment_matcherÔ  sC   € ä�z‰zð&ð ”"—)‘)Ð-Ó.Ð/ñ0ô
 24·±ó=÷
 >C¹Uð	Crô   Nc                 ó  — |€y dj                  |«      }|rPd|v rLd|d   v rE	 t        |«      j                  t        t        «      «      }||k(  rt        d	|› d|› d
|d›d�«      ‚|}d|z  |z   }|dk(  r||d<   n|dk(  r||d<   n
|d   }
||
|<   |rG|d   }
|j                  «       D ].  \  }}|
j                  |t        «       «      j                  |«       Œ0 y y # t
        t        f$ r}	t        d|› d|› d|d›d|	› �«      ‚d }	~	ww xY w)NÚ
Ú
substituteÚnamingz&Error parsing templated utility code 'Ú.z
' at line r÷   z: zFFound useless 'substitute: naming' declaration without replacements. (Ú:Ú)Úprotor   Úimplr   r   )r  r   r9  rÑ   r   rZ   r€   rm   ÚitemsÚ
setdefaultrÈ   rö   )ÚclsÚutilityÚnamerÐ   ÚlinesÚbegin_linenoÚtagsr  Únew_codeÚeÚall_tagsÚtag_nameÚ
tag_valuess                rò   Ú_add_utilityzUtilityCodeBase._add_utilityÝ  s`  € àˆ?Øà�y‰y˜ÓˆÙ�L DÑ(¨X¸¸lÑ9KÑ-KðkÜ# D›>×4Ñ4´T¼&³\ÓB�ð ˜4ÒÜ"Ø\Ð]aÐ\bÐbcÐdhÐciÐijÐkwÐxyÐjzÐz{Ð|ó~ð ~àˆDð �lÑ" TÑ)ˆà�7Š?ØˆG�AŠJØ�VŠ^ØˆG�AŠJà˜q‘zˆHØ!ˆH�T‰NáØ˜q‘zˆHØ(,¯
©
®Ñ$�˜*Ø×#Ñ# H¬c«eÓ4×;Ñ;¸JÕGñ )5ð øô' œjÐ)ò kÜ"Ø<¸T¸FÀ!ÀDÀ6ÈÐT`ÐabÐScÐceÐfgÐehÐiókð kûðkús   £'C ÃDÃ(D Ä Dc           	      ó¸  — | j                   j                  |«      }|r|S t        j                  j	                  |«      \  }}|dv r<d}t        t        j                  d«      j                  d«      }t        j                  }nTd}t        t        j                  d«      j                  d«      }t        t        j                  d«      j                  d«      }| j                  |«      }| j                  }	t        |«      }
t        d	„ «      }g }t        t        «      }d x}x}}d
}t!        |
«      D �]k  \  }} ||«      }|€|j#                   | ||«      «      «       Œ/|j%                  d«      rg| j'                  ||||||«       |dz   }|d d …= |j)                  «        |j%                  d«      } |	|«      }|r|j+                  «       \  }}nd}||   }Œ§|j%                  d«      }d|vrt-        d|› d|› d|› �«      ‚|j/                  d«      \  }}}|j                  «       }|j1                  «       }|dvrt-        d|› d|› d|› �«      ‚t        j2                  d|«      st-        d|› d|› d|› �«      ‚||   j5                  |«       |j#                  d«       �Œn |€t7        d«      ‚| j'                  ||||||«       t9        |«      }|| j                   |<   |S )N)z.pyxz.pyz.pxdz.pxiÚ#z^\s*#(?!\s*cython\s*:).*Ú Ú/z^\s*//.*|/\*[^*]*\*/z	\s+(\\?)$z\1c                  ó   — d d i gS rü   r  r  rô   rò   Ú<lambda>z:UtilityCodeBase.load_utilities_from_file.<locals>.<lambda>  s   € ¨¨t°RÑ(8rô   r   rD  r   r?  Útagr<  zFound invalid tag 'z' in utility section r;  )r-  r9  Úproto_blockzFound unknown tag name 'z\S+$zFound invalid tag value 'zEmpty utility code file)Ú_utility_cacher   r   r  Úsplitextr   r   r—   Úsubr(   Úrstripr6  Úmatch_section_titleÚread_utilities_hookr   rÈ   rŸ   ÚappendÚgrouprM  ÚclearÚgroupsrm   Ú	partitionÚstripr4  Úaddr€   rœ   )rB  r  Ú	utilitiesrÓ   ÚextÚcommentÚstrip_commentsrY  Úmatch_specialÚ
match_typeÚ	all_linesrE  rG  rC  rD  rÐ   rF  ÚlinenoÚlineÚmÚmtypeÚ	tag_valuerK  s                          rò   Úload_utilities_from_filez(UtilityCodeBase.load_utilities_from_fileþ  sÝ  € à×&Ñ&×*Ñ*¨4Ó0ˆ	ÙØÐä—‘×!Ñ! $Ó'‰ˆˆ3ØÐ1Ñ1ØˆGÜ$¤R§Z¡ZÐ0KÓ%L×%PÑ%PÐRTÓUˆNÜ—Z‘Z‰FàˆGÜ$¤R§Z¡ZÐ0GÓ%H×%LÑ%LÈbÓQˆNÜœRŸZ™Z¨Ó5×9Ñ9¸5ÓAˆFà×7Ñ7¸Ó@ˆØ×,Ñ,ˆ
ä'¨Ó-ˆ	äÑ 8Ó9ˆ	ØˆÜœ3ÓˆØ $Ð$ˆÐ$�$˜Øˆä% i×0‰LˆF�DÙ˜dÓ#ˆAØˆyØ—‘™V¡N°4Ó$8Ó9Õ:Ø—‘˜”Ø× Ñ  ¨$°°e¸\È4ÔPà%¨™z�Øš!�HØ—
‘
”à—w‘w˜v“�Ù" 4Ó(�ÙØ!&§¡£‘J�D™$à!�DØ# D™/‘àŸG™G E›N�	Ø˜iÑ'Ü&Ð)<¸Y¸KÐG\Ð]aÐ\bÐbcÐdhÐciÐ'jÓkÐkà)2×)<Ñ)<¸SÓ)AÑ&�˜!˜YØ#Ÿ?™?Ó,�Ø%ŸO™OÓ-�	àÐ#LÑLÜ&Ð)AÀ(ÀÐK`ÐaeÐ`fÐfgÐhlÐgmÐ'nÓoÐoÜ—x‘x ¨Ô3Ü&Ð)BÀ9À+ÐMbÐcgÐbhÐhiÐjnÐioÐ'pÓqÐqà�X‘×"Ñ" 9Ô-Ø—‘˜RÖ ðC 1ðF ˆ?ÜÐ6Ó7Ð7ð 	×Ñ˜ $¨¨e°\À4ÔHä˜“Oˆ	Ø#,ˆ×Ñ˜4Ñ ØÐrô   c           	      óº  — d|v r|j                  dd«      \  }}|sJ ‚| j                  |«      }||   \  }}}|rïd|v r.d|d   v r't        | t        «      st        j                  ||fi |¤ŽS |j                  «       }|j                  «       D ]š  \  }	}
|	|v rŒ|	dk(  rV|r+t        |
«      D �cg c]  } | j                  ||fi |¤Ž‘Œ }
}nYt        |
«      D �cg c]  }| j                  ||«      ‘Œ }
}n0|	dk(  r
|
ddhz
  }
|
s"Œu|
sd}
nt        |
«      dk(  rt        |
«      d   }
|
||	<   Œœ |�||d	<   |�||d
<   d|vr||d<   d|vr|r||d<    | di |¤ŽS c c}w c c}w )z„
        Load utility code from a file specified by from_file (relative to
        Cython/Utility) and name util_code_name.
        z::r   r9  Útempitar-  r:  Nr   r>  r?  rD  Úfiler  )Úrsplitro  r±   ÚTempitaUtilityCodeÚloadÚcopyr@  rË   Úload_cachedr³   rµ   )rB  Úutil_code_nameÚ	from_filer%  rc  r>  r?  rG  Úorig_kwargsrD  ÚvaluesÚdeps               rò   ru  zUtilityCodeBase.loadF  sÅ  € ð �>Ñ!Ø(6×(=Ñ(=¸dÀAÓ(FÑ%ˆI�~ÙÐˆyØ×0Ñ0°Ó;ˆ	Ø% nÑ5Ñˆˆt�TáØ˜tÑ#¨	°T¸,Ñ5GÑ(GÜ! #Ô'9Ô:Ü-×2Ñ2°>À9ÑWÐPVÑWÐWØ Ÿ+™+›-ˆKØ $§
¡
¦‘��fØ˜6‘>Øà˜:Ò%Ù"ä-3°F¬^ó"=Ù-; cð #+ #§(¡(¨3°	Ñ"I¸[Ó"IØ-;ð ñ "=ô
 .4°F¬^ó"=Ù-; cð #&§/¡/°#°yÕ"AØ-;ð ñ "=à˜\Ò)ð $ x°Ð&;Ñ;�FÙ!Ø ÙØ!‘FÜ˜“[ AÒ%Ü! &›\¨!™_�FØ%��t’ð- !-ð0 ÐØ#ˆF�7‰OØÐØ!ˆF�6‰Nà˜ÑØ+ˆF�6‰Nà˜Ñ¡IØ&ˆF�6‰NÙ‰}�V‰}Ðùò9"=ùò"=s   Â+EÃEc                 óh   — ||| f}	 ||   S # t         $ r Y nw xY w| j                  ||«      x}||<   |S )z`
        Calls .load(), but using a per-type cache based on utility name and file name.
        )rZ   ru  )rB  Úutility_code_namery  Ú_UtilityCodeBase__cacherø   r  s         rò   rw  zUtilityCodeBase.load_cached|  sP   € ð
 ! )¨SÐ1ˆð	Ø˜3‘<ÐøÜò 	Ùð	úà!Ÿh™hÐ'8¸)ÓDÐDˆˆw�s‰|Øˆs   ‡ Œ	—c                 ó  ‡‡‡—  | j                   ||fi |¤Ž}|s6|j                  |j                  «      |j                  |j                  «      fS g g cŠŠˆˆˆfd„Š ‰|«       dj	                  ‰«      dj	                  ‰«      fS )až  
        Load a utility code as a string. Returns (proto, implementation).

        If 'include_requires=True', concatenates all requirements before the actually
        requested utility code, separately for proto and impl part.

        In a lot of cases it may be better to use regular "load" and "CCodeWriter.put_code_here"
        since that is able to apply the code transformations to the code too.
        c                 ó*  •— | j                   r| j                   D ]
  } ‰|«       Œ | j                  r*‰j                  | j                  | j                  «      «       | j                  r+‰j                  | j                  | j                  «      «       y y rü   )r-  r>  r\  Úformat_coder?  )Ú	util_coder|  ÚimplsÚprependÚprotoss     €€€rò   r…  z/UtilityCodeBase.load_as_string.<locals>.prepend›  sl   ø€ Ø×!Ò!Ø$×-Ô-�CÙ˜C•Lð .à�ŠØ—‘˜i×3Ñ3°I·O±OÓDÔEØ�~Š~Ø—‘˜Y×2Ñ2°9·>±>ÓBÕCð rô   rP  )ru  r‚  r>  r?  r  )	rB  rx  ry  Úinclude_requiresr%  Úutilr„  r…  r†  s	         @@@rò   Úload_as_stringzUtilityCodeBase.load_as_string‰  s„   ú€ ð ˆs�x‰x˜¨	Ñ<°VÑ<ˆáØ×$Ñ$ T§Z¡ZÓ0Ø×$Ñ$ T§Y¡YÓ/ð1ð 1ð ˜Bˆˆ�ö	Dñ 	�ŒØ�w‰w�v‹ §¡¨£Ð.Ð.rô   z\n\n+c                 ó>   — |r |d|j                  «       «      dz   }|S )z3
        Format a code section for output.
        r8  z

)ra  )rí   Úcode_stringÚreplace_empty_liness      rò   r‚  zUtilityCodeBase.format_code§  s'   € ñ Ù-¨d°K×4EÑ4EÓ4GÓHÈ6ÑQˆKØÐrô   c                 óN   — dt        | «      j                  ›d| j                  ›d�S )Nrã   Ú(z)>)rÐ   r  rD  rý   s    rò   Ú__repr__zUtilityCodeBase.__repr__¯  s   � Ü! $›Z×0Ó0°$·)³)Ð<Ð<rô   c                  ó   — y rü   r  r$  s     rò   r&  zUtilityCodeBase.get_tree²  r'  rô   c                  ó   — y rü   r  r$  s     rò   r)  z(UtilityCodeBase.get_shared_library_scopeµ  r'  rô   c                 ó   — | S rü   r  )rí   Úmemodicts     rò   Ú__deepcopy__zUtilityCodeBase.__deepcopy__¸  s   € àˆrô   rü   ©F)r  r  r	  r
  Úis_cython_utilityrV  r   r—   r4  rZ  rÌ   r6  r–   rM  ro  ru  rw  r‰  rX  r‚  r�  r&  r)  r”  r  rô   rò   r/  r/  §  sä   „ ñ#ðJ ÐØ€Nà$˜"Ÿ*™*Øzóç�eð ð ñCó ðCð òHó ðHð@ ñEó ðEðN ñ3ó ð3ðj Ø?Aò 
ó ð
ð ò/ó ð/ð: <F¸2¿:¹:ÀhÓ;O×;SÑ;Só ò=òòôrô   r/  c                   ó0   — e Zd ZU dZeed<   eed<   eed<   y)ÚSharedFunctionDeclz6Contains parsed declaration of shared utility functionrD  ÚretÚparamsN)r  r  r	  r
  r(   Ú__annotations__r  rô   rò   r˜  r˜  ¼  s   … á@Ø
ƒIØ	ƒHØ„Krô   r˜  c                   ó¤   — e Zd ZdZg d¢Z	 	 	 	 dd„Zdedefd„Zd„ Z	d	„ Z
d
„ Zdd„Zd„ Zej                  ddddddefd„«       Zd„ Zdd„Zddd„Zy)ÚUtilityCodea÷  
    Stores utility code to add during code generation.

    See GlobalState.put_utility_code.

    hashes/equals by instance

    proto           C prototypes
    export          C prototypes exported from the shared utility code module
    impl            implementation code
    init            code to call on module initialization
    requires        utility code dependencies
    proto_block     the place in the resulting file where the prototype should
                    end up
    name            name of the utility code (or None)
    file            filename of the utility code file this utility was loaded
                    from (or None)
    shared_utility_functions        List of parsed declaration line of the shared utility function
    )r>  Úexportr?  ÚinitÚcleanupÚmodule_state_declsÚmodule_state_traverseÚmodule_state_clearNc                 óh  ‡ — |‰ _         |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        |‰ _        i ‰ _        g ‰ _	        |	‰ _
        |
‰ _        |‰ _        |‰ _        |r‰ j                  |«      ng ‰ _        |r‰ j!                  «        t#        ˆ fd„‰ j$                  D «       «      ‰ _        y )Nc              3   ó8   •K  — | ]  }t        ‰|d «      –— Œ y ­wrü   ©r¨   )Ú.0Úpartrí   s     €rò   Ú	<genexpr>z'UtilityCode.__init__.<locals>.<genexpr>ñ  s   øè ø€ Ð!XÉÀ¤'¨$°°d×";Éùs   ƒ)r>  r?  rŸ  r   r¡  r¢  r£  r-  Ú_cacheÚspecialize_listrU  rD  rr  rž  Úparse_export_functionsÚshared_utility_functionsÚ_validate_suitable_for_sharingrÏ   Ú
code_partsÚ_parts_tuple)rí   r>  r?  rŸ  r   r¡  r¢  r£  r-  rU  rD  rr  rž  s   `            rò   ró   zUtilityCode.__init__Ù  s¬   ø€ ð
 ˆŒ
ØˆŒ	ØˆŒ	ØˆŒØ"4ˆÔØ%:ˆÔ"Ø"4ˆÔØ ˆŒØˆŒØ!ˆÔØ&ˆÔØˆŒ	ØˆŒ	ØˆŒÙOU¨×(CÑ(CÀFÔ(KÐ[]ˆÔ%ÙØ×/Ñ/Ô1ô "Ó!XÈÏÊÓ!XÓXˆÕrô   Úexport_protor,  c           	      óZ  — d|vrd|vrd|vs%J d|j                  «       › d| j                  › �«       ‚g }d}|j                  d«      D ]á  }|j                  «       j                  dd	«      }t	        j
                  d
d|«      }t        |«      dk(  rŒIt	        j                  ||t        j                  «      }|€J d|›d| j                  › �«       ‚|j                  «       \  }}}|j                  t        |j                  «       |j                  «       |j                  «       ¬«      «       Œã |S )Nz//ú/*ú*/z(Export block must not contain comments:
z

 in file a_  
            ^static\s                                         # `static` keyword
            (?P<ret_type>[^;()]+[\s*])                        # return type + modifier with optional * - e.g.: int *, float, const str *, ...
            (?P<func_name>\w+)\((?P<func_params>[^)]*)\)$     # function with params - e.g. foo(int, float, *PyObject)
        z;
r8  rP  z\s+Ú r   z5Wrong format of function definition in export block 
z
 in )rD  r™  rš  )ra  rr  ÚsplitÚreplacer   rX  r³   r4  r3  r_  r\  r˜  )	rí   r±  Úparsed_protosÚproto_regexr>  ÚmatchedÚret_typeÚ	func_nameÚfunc_paramss	            rò   r¬  z"UtilityCode.parse_export_functionsó  s:  € à˜<Ñ'¨D¸Ñ,DÈÐUaÑIað 	eØ7¸×8JÑ8JÓ8LÐ7MÈ[ÐY]×YbÑYbÐXcÐdó	eÐað ˆðˆð "×'Ñ'¨Ö.ˆEØ—K‘K“M×)Ñ)¨$°Ó3ˆEÜ—F‘F˜6 3¨Ó.ˆEä�5‹z˜QŠØÜ—h‘h˜{¨E´2·:±:Ó>ˆGØÐ&ð dØHÈÈ	ÐQWÐX\×XaÑXaÐWbÐcódÐ&ð 07¯~©~Ó/?Ñ,ˆH�i Ø× Ñ Ü"¨	¯©Ó(9¸x¿~¹~Ó?OÐXc×XiÑXiÓXkÔlõð /ð Ðrô   c                 ó,   — t        | j                  «      S rü   )r«   r°  rý   s    rò   Ú__hash__zUtilityCode.__hash__  s   € Ü�D×%Ñ%Ó&Ð&rô   c                 ó¤   — | |u ryt        | «      t        |«      }}||urt        ||«      st        | |«      sy| j                  |j                  k(  S )NTF)rÐ   r°   r°  )rí   rù   Ú	self_typeÚ
other_types       rò   Ú__eq__zUtilityCode.__eq__  sT   € Ø�5‰=ØÜ $ T£
¬D°«K�:ˆ	Ø˜JÑ&´
¸5À)Ô0LÔPZÐ[_ÐakÔPlØà× Ñ  E×$6Ñ$6Ñ6Ð6rô   c                 ó   — |€y||z  S ©zY
        Format a string in this utility code with context. If None, do nothing.
        Nr  ©rí   ÚsÚcontexts      rò   Únone_or_subzUtilityCode.none_or_sub  s   € ð ˆ9ØØ�7‰{Ðrô   c                 ó~  — | j                   }|�1|j                  «       |d<   |j                  «       |d<   |›d|d   ›d�}t        t	        |j                  «       «      «      }	 | j                  |   S # t        $ �r@ | j                  €d }n.| j                  D �cg c]  }|j                  |«      ‘Œ nc c}w }}t        | j                  | j                  |«      | j                  | j                  |«      | j                  | j                  |«      | j                  | j                  |«      | j                  | j                   |«      | j                  | j"                  |«      | j                  | j$                  |«      || j&                  |«
      x}| j                  |<   | j(                  j+                  |«       |cY S w xY w)NrÐ   Ú	type_nameÚ[Ú])rD  Úempty_declaration_codeÚspecialization_namerÏ   rË   r@  rª  rZ   r-  Ú
specializer�  rÉ  r>  r?  rŸ  r   r¡  r¢  r£  rU  r«  r\  )rí   Ú
pyrex_typeÚdatarD  rø   r-  ÚrrÇ  s           rò   rÐ  zUtilityCode.specialize%  s†  € Ø�y‰yˆØÐ!Ø%×<Ñ<Ó>ˆD�‰LØ *× >Ñ >Ó @ˆD�ÑÚ# T¨+Ó%6Ð7ˆDä”F˜4Ÿ:™:›<Ó(Ó)ˆð	Ø—;‘;˜sÑ#Ð#øÜó 	Ø�}‰}Ð$Ø‘à8<¿ºÓF¹°1˜AŸL™L¨Õ.¹ùÒF�ÐFä#.Ø× Ñ  §¡¨TÓ2Ø× Ñ  §¡¨DÓ1Ø× Ñ  §¡¨DÓ1Ø× Ñ  §¡¨tÓ4Ø× Ñ  ×!8Ñ!8¸$Ó?Ø× Ñ  ×!;Ñ!;¸TÓBØ× Ñ  ×!8Ñ!8¸$Ó?ØØ× Ñ Øó$ð ˆA�—‘˜CÑ ð × Ñ ×'Ñ'¨Ô*ØŠHð)	ús   Á#A2 Á2'F<ÂB2Â1DF<Æ;F<c                 ó>   — t        | d«      }|sy d|vs
J d| › �«       ‚y )Nr?  zNAMED_CGLOBAL(moddict_cname)z$moddict_cname should not be shared: r¦  )rí   r‹  s     rò   r®  z*UtilityCode._validate_suitable_for_sharingE  s2   € Ü˜d FÓ+ˆÙ˜FØ-°[Ñ@ð 	:Ø2°4°&Ð9ó	:Ñ@rô   ÚwriterÚCCodeWriterÚoutputr+  Ú	code_typec                 ó>  — t        | |«      }|sy |dv }t        | ||«      \  }}|rd|› d�nd}|dk7  r| j                  › d|› �n| j                  }|j                  d|› |› d�«       |r$|s"|j	                  || j                  › d	|› �«       y |j                  |«       y )
N)r>  r?  z
 (used by r=  rP  r?  r;  ú/* ú */rÓ   )r¨   Úprocess_utility_ccoderD  r  Úput_or_includeÚput_multilines)	rí   rÕ  r×  rØ  r!  r‹  Úcan_be_reusedÚresult_is_module_specificrD  s	            rò   Ú_put_code_sectionzUtilityCode._put_code_sectionK  s³   € ä˜d IÓ.ˆÙØà!Ð%6Ð6ˆä1FÀtÈVÐU`Ó1aÑ.ˆÐ.á-4�J˜w˜i qÑ)¸"ˆØ-6¸&Ò-@�$—)‘)�˜A˜i˜[Ñ)ÀdÇiÁiˆà�‰�s˜4˜&  	¨Ð-Ô.áÑ!:à×!Ñ! +°$·)±)°¸A¸i¸[Ð/IÕJà×!Ñ! +Õ.rô   c                 óÈ   — | j                   sy |d   }| j                  ||d«       |j                  d|j                  |j                  «      z   «       |j                  «        y )NÚinit_globalsrŸ  ú  )rŸ  rá  r  Úerror_goto_if_PyErrÚ
module_pos)rí   r×  rÕ  s      rò   Ú_put_init_code_sectionz"UtilityCode._put_init_code_section`  sU   € Ø�yŠyØØ˜Ñ'ˆØ×Ñ˜v v¨vÔ6ð 	�‰�T˜F×6Ñ6°v×7HÑ7HÓIÑIÔJØ�‰�rô   c           
      óö   — |j                  d| j                  › d�«       | j                  D ];  }|j                  d|j                  › d|j                  › d|j                  › d�«       Œ= |j                  «        y )NrÚ  rÛ  ústatic z(*z)(z); /*proto*/)r  rD  r­  r™  rš  )rí   r  Úshareds      rò   Ú!_put_shared_function_declarationsz-UtilityCode._put_shared_function_declarationsj  sc   € Ø�
‰
�S˜Ÿ™˜ 3Ð'Ô(Ø×3Ô3ˆFà�J‰J˜ §¡ ¨B¨v¯{©{¨m¸2¸f¿m¹m¸_ÈLÐYÕZð 4ð 	�
‰
�rô   c                 óà  — t        | j                  xr* |j                  j                  j                  j
                  «      }| j                  r0|s.| j                  D ]  }|j                  || j                  ¬«       Œ! |r| j                  || j                     «       |j                  j                  | j                  «       | j                  r"| j                  || j                     |d|¬«       |s | j                  || j                     |d«       | j                  r|s| j                  |d   |d|¬«       | j                  r&t         j"                  r| j                  |d   |d«       | j$                  r| j                  |d   |d	«       | j&                  r| j                  |d
   |d«       | j(                  r| j                  |d   |d«       | j*                  r| j-                  |«       y y )N©r!  r>  rž  Úutility_code_defr?  Úcleanup_globalsr   Úmodule_state_contentsr¡  Úmodule_state_traverse_contentsr¢  Úmodule_state_clear_contentsr£  )r�   r­  Úmodule_nodeÚscoperÈ  Úshared_utility_qualified_namer-  Úuse_utility_coderD  rë  rU  Úextendr>  rá  r?  r   r	   Úgenerate_cleanup_coder¡  r¢  r£  rŸ  rç  )rí   r   r!  Úhas_shared_utility_codeÚ
dependencys        rò   r"  zUtilityCode.put_codeq  s¸  € Ü"&Ø×)Ñ)Òq¨k×.EÑ.E×.KÑ.K×.SÑ.S×.qÑ.qó#
Ðð �=Š=Ñ!8Ø"Ÿmœm�
Ø×,Ñ,¨ZÀÇÁÐ,ÕKð ,ñ #Ø×2Ñ2°;¸t×?OÑ?OÑ3PÔQØ×,Ñ,×3Ñ3°D×4QÑ4QÔRà�:Š:Ø×"Ñ" ;¨t×/?Ñ/?Ñ#@À+ÈwÐ`gÐ"ÔhÙ&Ø×"Ñ" ;¨t×/?Ñ/?Ñ#@À+ÈxÔXØ�9Š9Ñ4Ø×"Ñ" ;Ð/AÑ#BÀKÐQWÐahÐ"ÔiØ�<Š<œG×9Ò9Ø×"Ñ" ;Ð/@Ñ#AÀ;ÐPYÔZØ×"Ò"Ø×"Ñ" ;Ð/FÑ#GÈÐVjÔkØ×%Ò%Ø×"Ñ" ;Ð/OÑ#PÐR]Ð_vÔwØ×"Ò"Ø×"Ñ" ;Ð/LÑ#MÈ{Ð\pÔqà�9Š9Ø×'Ñ'¨Õ4ð rô   )NNNNNNNNÚutility_code_protoNNNrü   )r  rÖ  r,  Nr*  )r  r  r	  r
  r¯  ró   r(   rµ   r¬  r¿  rÃ  rÉ  rÐ  r®  ÚcythonÚfinalrá  rç  rë  r"  r  rô   rò   r�  r�  Ã  s‹   „ ñò& E€JàAEØ@DØ37ØPTóYð4°3ð ¸4ó ò<'ò7òóò@:ð ‡\�\ñ/¨ð /¸}ð /ÐY\ò /ó ð/ò(óõ5rô   r�  F)ÚregexÚis_module_specificÚ_last_macro_processorc                 ó,   ‡ ‡‡‡‡— ‰d   Šˆˆˆˆˆ fd„}|S )z8Decorator to chain the code macro processors below.
    r   c                 ó\   •‡ — t        ‰ «      dt        dt        fˆ ˆˆˆˆfd„«       }|‰d<   |S )NÚutility_coder‹  c                 ó  •— d}‰� ‰| ||«      \  }}‰r‰D ]  }||v sŒ n ||fS ‰	€ ‰| ||«      }n!t        j                  ‰	t        ‰|«      |«      }‰D ]"  }||v sŒt        d|› d| j                  › d�«      ‚ |‰z  }||fS )NFzLeft-over utility code macro 'z()' found in 'Ú')r   rX  r   rm   rD  )
r  r×  r‹  rà  ÚmacroÚfuncrÿ  Úlast_processorÚmacro_namesrþ  s
        €€€€€rò   Úprocessz=add_macro_processor.<locals>.build_processor.<locals>.process—  sÏ   ø€ ð ).Ð%ØÐ)Ù9GÈÐV\Ð^iÓ9jÑ6�Ð6ñ Û(�EØ Ò+Ùð )ð 'Ð(AÐAÐAð ˆ}Ù" <°¸ÓE‘ä Ÿf™f U¬G°D¸&Ó,AÀ;ÓO�ó %�Ø˜KÒ'Ü&Ð)GÈÀwÈnÐ]i×]nÑ]nÐ\oÐopÐ'qÓrÐrð %ð &Ð);Ñ;Ð%ØÐ 9Ð9Ð9rô   r   )r   r�  r(   )r  r
  r   rÿ  r  r	  rþ  s   ` €€€€€rò   Úbuild_processorz,add_macro_processor.<locals>.build_processor–  s>   ù€ Ü	ˆt‹ð	:¤+ð 	:ÄC÷ 	:ð 	:ó 
ð	:ð8 $+Ð˜aÑ Øˆrô   r  )rþ  rÿ  r   r	  r  r  s   ```` @rò   Úadd_macro_processorr  ‘  s"   ü€ ð +¨1Ñ-€N÷ð ðB Ðrô   ÚCSTRINGz)CSTRING\(\s*"""([^"]*(?:"[^"]+)*)"""\s*\))rþ  c                 ó�   — |j                  d«      j                  dd«      }dj                  d„ |j                  «       D «       «      S )zUReplace CSTRING('''xyz''') by a C compatible string, taking care of line breaks.
    r   Ú"z\042rP  c              3   ó~   K  — | ]5  }|j                  d «      r|j                  d«      rd|› d�nd|dd › d�–— Œ7 y­w)Ú\z\\r  z\n"
Nrä   ú"
)Úendswith)r§  rk  s     rò   r©  z!_wrap_c_string.<locals>.<genexpr>Â  sR   è ø€ ð *á(ˆDð !%§¡¨dÔ 3°t·}±}ÀVÔ7Lˆ!ˆDˆ6�ÑÐTUÐVZÐ[^Ð\^ÐV_ÐU`Ð`cÐRdÓdÙ(ùs   ‚;=)r]  r·  r  Ú
splitlines)rÓ   ÚmatchobjÚcontents      rò   Ú_wrap_c_stringr  º  sF   € ð �n‰n˜QÓ×'Ñ'¨¨WÓ5€GØ�7‰7ñ *à×&Ñ&Ô(ó*ó *ð *rô   r  c                 ó$   — | j                  |«      S rü   )r‚  )r  rÓ   r?  s      rò   Ú_format_impl_coder  Ç  s   € à×#Ñ# DÓ)Ð)rô   ÚCALL_UNBOUND_METHODTzLCALL_UNBOUND_METHOD\(([a-zA-Z_]+),\s*"([^"]+)",\s*([^),\s]+)((?:,[^),]+)*)\))rÿ  rþ  c                 ó:  — |j                  «       \  }}}}d|z  }|r0|dd j                  d«      D �cg c]  }|j                  «       ‘Œ c}ng }t        |«      dk  sJ dt        |«      d›d�«       ‚| j	                  t
        j                  › d	�||||«      S c c}w )
zRReplace 'UNBOUND_METHOD(type, "name")' by a constant Python identifier cname.
    z&%sr   NÚ,r&   z'CALL_UNBOUND_METHOD() does not support r÷   z call argumentsú->)r_  r¶  ra  r³   Úcached_unbound_method_call_coder   Úmodulestateglobal_cname)r×  r  Ú
type_cnameÚmethod_nameÚ	obj_cnameÚargsÚargs          rò   Ú_inject_unbound_methodr%  Ì  sª   € ð 08¯©Ó/@Ñ,€J�˜Y¨Ø˜Ñ#€JÙ;? 4¨¨ 8§>¡>°#Ô#6Ó7Ñ#6˜CˆC�I‰I�KÐ#6Ò7ÀR€DÜˆt‹9�qŠ=Ð`ÐCÄCÈÃIÈaÀ=ÐP_Ð`Ó`ˆ=Ø×1Ñ1Ü×)Ñ)Ð
*¨"Ð-Ø�:˜{¨Dó2ð 2ùò 8s   ³BÚPYIDENTÚ	PYUNICODEzPY(IDENT|UNICODE)\("([^"]+)"\)c                 ó´   — |j                  «       \  }}t        j                  ›d| j                  t	        j
                  |«      |dk(  ¬«      j                  ›�S )zDReplace 'PYIDENT("xyz")' by a constant Python identifier cname.
    r  ÚIDENT©Ú
identifier)r_  r   r  Úget_py_string_constr
   ÚEncodedStringÚcname)r×  r  Ústr_typerD  s       rò   Ú_inject_string_constantr0  ä  s^   € ð —_‘_Ó&�N€Hˆdä×&Ó&Ø×"Ñ"Ü×(Ñ(¨Ó.¸8ÀwÑ;Nð 	#ó 	PßPUÑPUð	VðWð Wrô   ÚEMPTYzEMPTY\((bytes|unicode|tuple)\)c                 óp   — |j                  d«      }t        j                  ›dt        t        d|› �«      ›�S )zLReplace 'EMPTY(bytes|tuple|...)' by a constant Python identifier cname.
    r   r  Úempty_)r]  r   r  r¨   )r×  r  rË  s      rò   Ú!_inject_empty_collection_constantr4  ó  s6   € ð —‘˜qÓ!€Iä×&Ó&Ü”˜&  Ð,Ô-ð/ð /rô   ÚCGLOBALz(NAMED_)?CGLOBAL\(([^)]+)\)c                 óv   — |j                  «       \  }}|rt        t        |«      }t        j                  › d|› �S ©Nr  )r_  r¨   r   r  )r×  r  Úis_namedrD  s       rò   Ú_inject_cglobalr9    s;   € ð —_‘_Ó&�N€HˆdÙÜ”v˜tÓ$ˆÜ×,Ñ,Ð-¨R°¨vÐ6Ð6rô   c                 ó   — |S )z;Entry point for code processors, must be defined last.
    r  )r  rÓ   r‹  s      rò   rÜ  rÜ    s
   € ð Ðrô   c                 óž   — | sy|r|› d|› �}|r||d<   	 ||    }|j                  |«      S # t         $ r ddlm}  || |¬«      x}|| <   Y Œ1w xY w)z+Run tempita on string s with given context.Nr<  Ú__namer   r   )rD  )rZ   ÚTempitar   r9  )rÇ  rÈ  rr  rD  Ú__cacheÚtemplater   s          rò   Úsub_tempitar@    sr   € áØáØ��q˜˜ÐˆÙØ ˆ�Ñð7Ø˜1‘:ˆð
 ×Ñ˜wÓ'Ð'øô	 ò 7Ý&Ù (¨°Ô 6Ð6ˆ�7˜1“:ð7ús   •+ «AÁAc                   ó>   ‡ — e Zd Zdˆ fd„	Zeddi fd„«       Zd„ Zˆ xZS )rt  Nc                 ó®   •— |€i }n|j                  «       }t        ||||«      }t        ||||«      }t        ||||«      }t        ‰| �  ||f|||dœ|¤Ž y )N)rŸ  rD  rr  )rv  r@  rÎ   ró   )	rí   rD  r>  r?  rŸ  rr  rÈ  r%  Ú	__class__s	           €rò   ró   zTempitaUtilityCode.__init__)  ss   ø€ Øˆ?Ø‰Gð —l‘l“nˆGÜ˜E 7¨D°$Ó7ˆÜ˜4 ¨$°Ó5ˆÜ˜4 ¨$°Ó5ˆÜ‰ÑØ�4ð	DØ"¨°Dñ	DØ<Bó	Drô   c                 óÔ   — |r"t        t        |j                  «       «      «      nd }t        |«      €J ‚| |||f}	 ||   S # t        $ r Y nw xY w| j                  |||¬«      x}||<   |S )N)rÈ  )rÏ   rË   r@  r«   rZ   ru  )rB  r~  ry  rÈ  Ú_TempitaUtilityCode__cacheÚcontext_keyrø   r  s           rò   rw  zTempitaUtilityCode.load_cached5  s   € á8?”eœF 7§=¡=£?Ó3Ô4ÀTˆÜ�KÓ Ð,Ð,Ð,Ø�IÐ0°+Ð>ˆð	Ø˜3‘<ÐøÜò 	Ùð	úà!Ÿh™hÐ'8¸)ÈW˜hÓUÐUˆˆw�s‰|Øˆs   »A  Á 	AÁAc                 óL   — |€yt        ||| j                  | j                  «      S rÅ  )r@  rr  rD  rÆ  s      rò   rÉ  zTempitaUtilityCode.none_or_subA  s%   € ð ˆ9ØÜ˜1˜g t§y¡y°$·)±)Ó<Ð<rô   )NNNNNN)r  r  r	  ró   r–   rw  rÉ  Ú__classcell__)rC  s   @rò   rt  rt  (  s*   ø„ õ
Dð Ø6:ÀDÐRTò 	ó ð	ö=rô   rt  c                   ó(   — e Zd ZdZdZ dZd„ Zddd„Zy)ÚLazyUtilityCodezŠ
    Utility code that calls a callback with the root code writer when
    available. Useful when you only have 'env' but not 'code'.
    z<lazy>Nc                 ó   — || _         y rü   )Úcallback)rí   rL  s     rò   ró   zLazyUtilityCode.__init__R  s	   € Ø ˆ�rô   c                 ó`   — | j                  |j                  «      }|j                  ||¬«       y )Nrí  )rL  Ú
rootwriterrö  )rí   r   r!  rC  s       rò   r"  zLazyUtilityCode.put_codeU  s)   € Ø—-‘- × 6Ñ 6Ó7ˆØ×$Ñ$ W°gÐ$Õ>rô   rü   r*  )r  r  r	  r
  r-  ró   r"  r  rô   rò   rJ  rJ  J  s   „ ñð €HØ€Hò!õ?rô   rJ  c                   óª   — e Zd Z e«       dfd„Zd„ Zdd„Zdd„Zdd„Zd„ Z	d„ Z
dd	„Zd
„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚFunctionStateNc                 ó¾  — || _         || _        || _        d | _        d| _        t        «       | _        | j                  «       | _        | j                  «        d | _
        d | _        g | _        d | _        d | _        d| _        d| _        g | _        i | _        i | _        t        «       | _        d| _        d | _        g | _        d| _        d| _        d| _        d| _        y )Nr   FT)Únames_takenÚownerrô  Úerror_labelÚlabel_counterrÈ   Úlabels_usedÚ	new_labelÚreturn_labelÚnew_error_labelÚcontinue_labelÚbreak_labelÚyield_labelsÚexc_varsÚcurrent_exceptÚ	can_traceÚ	gil_ownedÚtemps_allocatedÚ
temps_freeÚtemps_used_typeÚzombie_tempsÚtemp_counterÚclosure_tempsÚcollect_temps_stackÚshould_declare_error_indicatorÚuses_error_indicatorÚerror_without_exceptionÚneeds_refnanny)rí   rS  rR  rô  s       rò   ró   zFunctionState.__init__g  sß   € Ø&ˆÔØˆŒ
ØˆŒ
àˆÔØˆÔÜ›5ˆÔØ ŸN™NÓ,ˆÔØ×ÑÔØ"ˆÔØˆÔØˆÔàˆŒØ"ˆÔØˆŒØˆŒà!ˆÔØˆŒØ!ˆÔÜ›EˆÔØˆÔØ!ˆÔð $&ˆÔ ð /4ˆÔ+Ø$)ˆÔ!à',ˆÔ$à#ˆÕrô   c                 ó  — | j                   rn| j                  «       }|r[d| j                  j                  ›ddj	                  t        |«      D ���cg c]  \  }}}|›d|›d�‘Œ c}}}«      ›�}t        |«      ‚y y c c}}}w )Nz&TEMPGUARD: Temps left over at end of 'z': ú, z [rÍ  )ra  Útemps_in_userô  rD  r  rË   rm   )rí   Ú	leftoversrD  ÚctypeÚ	is_pytempÚmsgs         rò   Úvalidate_exitzFunctionState.validate_exit’  sŒ   € à×ÒØ×)Ñ)Ó+ˆIÚØIMÏÉÏËÐZ^×ZcÑZcä28¸Ô2CõeEá2CÑ.˜˜e Yò "&¢uÒ-Ø2CóeEô [Fð �ô
 # 3Ó'Ð'ð ð  ùôeEs   ÁA<c                 óp   — | j                   }|dz   | _         dt        j                  |fz  }|�|d|z   z  }|S )Nr   ú%s%drÓ   )rU  r   Úlabel_prefix)rí   rD  ÚnÚlabels       rò   rW  zFunctionState.new_label   sG   € Ø×-Ñ-ˆØ ™UˆÔØœ&×-Ñ-¨qÐ1Ñ1ˆØÐØ�S˜4‘ZÑˆEØˆrô   c                 ó˜   — | j                  d|z  «      }t        | j                  «      dz   |f}| j                  j                  |«       |S )Nzresume_from_%sr   )rW  r³   r\  r\  )rí   Ú	expr_typerx  Únum_and_labels       rò   Únew_yield_labelzFunctionState.new_yield_label¨  sJ   € Ø—‘Ð/°)Ñ;Ó<ˆÜ˜T×.Ñ.Ó/°!Ñ3°UÐ;ˆØ×Ñ× Ñ  Ô/ØÐrô   c                 óP   — | j                   }| j                  |dz   «      | _         |S )NÚerror)rT  rW  )rí   ÚprefixÚold_err_lbls      rò   rY  zFunctionState.new_error_label®  s)   € Ø×&Ñ&ˆØŸ>™>¨&°7Ñ*:Ó;ˆÔØÐrô   c                 ó2   — | j                   | j                  fS rü   ©rZ  r[  rý   s    rò   Úget_loop_labelszFunctionState.get_loop_labels³  s   € à×ÑØ×Ñðð 	rô   c                 ó"   — |\  | _         | _        y rü   r‚  ©rí   Úlabelss     rò   Úset_loop_labelszFunctionState.set_loop_labels¸  s   € à#ñ	ˆÔ	Ø	Õ	rô   c                 ó”   — | j                  «       }| j                  | j                  |dz   «      | j                  |dz   «      f«       |S )NÚcontinueÚbreak)rƒ  r‡  rW  )rí   r  Ú
old_labelss      rò   Únew_loop_labelszFunctionState.new_loop_labels¼  sM   € Ø×)Ñ)Ó+ˆ
Ø×ÑØ�^‰^˜F ZÑ/Ó0Ø�^‰^˜F WÑ,Ó-ð/ô	0ð Ðrô   c                 ó^   — | j                   | j                  | j                  | j                  fS rü   ©rZ  r[  rX  rT  rý   s    rò   Úget_all_labelszFunctionState.get_all_labelsÃ  s0   € à×ÑØ×ÑØ×ÑØ×Ñð	ð 	rô   c                 ó:   — |\  | _         | _        | _        | _        y rü   rŽ  r…  s     rò   Úset_all_labelszFunctionState.set_all_labelsÊ  s#   € ð $ñ	ˆÔ	Ø	Ô	Ø	Ô	Ø	Õ	rô   c                 óà   — | j                  «       }g }t        |g d¢«      D ]9  \  }}|r!|j                  | j                  |«      «       Œ)|j                  |«       Œ; | j	                  |«       |S )N)r‰  rŠ  r,  r~  )r�  rÒ   r\  rW  r‘  )rí   r‹  Ú
new_labelsÚ	old_labelrD  s        rò   Úall_new_labelszFunctionState.all_new_labelsÐ  sj   € Ø×(Ñ(Ó*ˆ
Øˆ
Ü" :Ò/WÖX‰OˆI�tÙØ×!Ñ! $§.¡.°Ó"6Õ7à×!Ñ! )Õ,ð	  Yð
 	×Ñ˜JÔ'ØÐrô   c                 ó:   — | j                   j                  |«       y rü   )rV  rb  ©rí   Úlbls     rò   Ú	use_labelzFunctionState.use_labelÛ  s   € Ø×Ñ×Ñ˜SÕ!rô   c                 ó   — || j                   v S rü   )rV  r—  s     rò   Ú
label_usedzFunctionState.label_usedÞ  s   € Ø�d×&Ñ&Ð&Ð&rô   c           	      óH  — |j                   r|j                  s|j                  }n©|j                  r|j                  s|j                  }n„|j
                  rddlm} |j                  |«      }n`|j                  rT|j                  sH| j                  j                  d   r/| j                  j                  t        j                  dd«      «       |j                  sd}| j                   j#                  ||f«      }|r/|�-|d   r(|d   j%                  «       }|d   j'                  |«       n�	 | xj(                  dz  c_        dt*        j,                  | j(                  fz  }|| j.                  vrnŒD| j0                  j3                  ||||f«       |s| j4                  j7                  |«       ||f| j8                  |<   t:        j<                  r)| j>                  jA                  d	|›d
|›d|rdnd›d�«       | jB                  r | jB                  d   j7                  ||f«       |S )a
  
        Allocates a temporary (which may create a new one or get a previously
        allocated and released one of the same type). Type is simply registered
        and handed back, but will usually be a PyrexType.

        If type.needs_refcounting, manage_ref comes into play. If manage_ref is set to
        True, the temp will be decref-ed on return statements and in exception
        handling clauses. Otherwise the caller has to deal with any reference
        counting of the variable.

        If not type.needs_refcounting, then manage_ref will be ignored, but it
        still has to be passed. It is recommended to pass False by convention
        if it is known that type will never be a reference counted type.

        static=True marks the temporary declaration with "static".
        This is only used when allocating backing store for a module-level
        C array literals.

        if reusable=False, the temp will not be reused after release.

        A C string referring to the variable is returned.
        r   ©Ú
PyrexTypesÚ
cpp_localsÚOptionalLocalsúCppSupport.cppFr   ru  rÚ  z allocated (r=  rP  ú	 - zombierÛ  rä   )"Úis_cv_qualifiedÚis_referenceÚcv_base_typeÚis_fake_referenceÚref_base_typeÚis_cfunctionrP  rž  Ú
c_ptr_typeÚis_cpp_classrô  Ú
directivesrö  r�  rw  Úneeds_refcountingrb  r   ÚpopÚremovere  r   Úcodewriter_temp_prefixrR  ra  r\  rd  rb  rc  r   Údebug_temp_code_commentsrS  r  rg  )rí   rÐ   Ú
manage_refÚstaticÚreusablerž  ÚfreelistÚresults           rò   Úallocate_tempzFunctionState.allocate_tempã  sÚ  € ð. ×Ò¨×(9Ò(9Ø×$Ñ$‰DØ×Ò t×'=Ò'=Ø×%Ñ%‰DØ×ÒÝ$Ø×(Ñ(¨Ó.‰DØ×Ò t×'=Ò'=À$Ç*Á*×BWÑBWÐXdÒBeØ�J‰J×'Ñ'¬×(?Ñ(?Ð@PÐRbÓ(cÔdØ×%Ò%ð ˆJà—?‘?×&Ñ&¨¨jÐ'9Ó:ˆÙ˜Ð,°¸!²Ø˜a‘[—_‘_Ó&ˆFØ�Q‰K×Ñ˜vÕ&àØ×!Ò! QÑ&Õ!Ø¤6×#@Ñ#@À$×BSÑBSÐ"TÑT�Ø ×!1Ñ!1Ñ1°5ð ð × Ñ ×'Ñ'¨°°zÀ6Ð(JÔKÙØ×!Ñ!×%Ñ% fÔ-Ø(,¨jÐ'9ˆ×Ñ˜VÑ$Ü×.Ò.Ø�J‰J×ÒºFÂDÑPXÉ"Ð^iÑJiÐjÔkà×#Ò#Ø×$Ñ$ RÑ(×,Ñ,¨f°d¨^Ô<àˆrô   c                 ó¼  — | j                   |   \  }}| j                  j                  ||f«      }|€g t        «       f}|| j                  ||f<   ||d   v rt	        d|z  «      ‚|| j
                  vr|d   j                  |«       |d   j                  |«       t        j                  r3| j                  j                  d|›d|| j
                  v rdnd›d	�«       yy)
zv
        Releases a temporary so that it can be reused by other code needing
        a temp of the same type.
        Nr   zTemp %s freed twice!r   rÚ  z
 released r¢  rP  r´  )rc  rb  r   rÈ   rm   rd  r\  rb  r   r°  rS  r  )rí   rD  rÐ   r±  r´  s        rò   Úrelease_tempzFunctionState.release_temp  sá   € ð
  ×/Ñ/°Ñ5ÑˆˆjØ—?‘?×&Ñ&¨¨jÐ'9Ó:ˆØÐØœC›E�{ˆHØ2:ˆD�O‰O˜T :Ð.Ñ/Ø�8˜A‘;ÑÜÐ5¸Ñ<Ó=Ð=Ø�t×(Ñ(Ñ(Ø�Q‰K×Ñ˜tÔ$Ø�‰�‰˜ÔÜ×.Ò.Ø�J‰J×ÒÚ T¨T×->Ñ->Ñ%>‘kÀBÑFðHõ Ið /rô   c                 óÈ   — g }| j                   D ]P  \  }}}}| j                  j                  ||f«      }|�||d   vsŒ/|j                  |||xr |j                  f«       ŒR |S )zxReturn a list of (cname,type,manage_ref) tuples of temp names and their type
        that are currently in use.
        r   )ra  rb  r   r\  r¬  )rí   ÚusedrD  rÐ   r±  r²  r´  s          rò   rn  zFunctionState.temps_in_use0  sr   € ð ˆØ.2×.BÔ.BÑ*ˆD�$˜
 FØ—‘×*Ñ*¨D°*Ð+=Ó>ˆHØÐ 4¨x¸©{Ò#:Ø—‘˜T 4¨Ò)N¸×8NÑ8NÐOÕPð /Cð ˆrô   c                 ó|   — | j                  «       D ���cg c]  \  }}}|r|j                  r||f‘Œ c}}}S c c}}}w )zÆReturn a list of (cname,type) tuples of temp names and their type
        that are currently in use. This includes only temps
        with a reference counted type which owns its reference.
        )rn  r¬  )rí   rD  rÐ   r±  s       rò   Útemps_holding_referencez%FunctionState.temps_holding_reference;  sH   € ð /3×.?Ñ.?Ô.Aõ:Ù.AÑ*�D˜$ 
Ù $×"8Ò"8ð �t’Ø.Aó:ð 	:ùô :s   •7c           
      ód   — | j                   D ����cg c]  \  }}}}|r||f‘Œ c}}}}S c c}}}}w )zRReturn a list of (cname, type) tuples of refcount-managed Python objects.
        )ra  )rí   r.  rÐ   r±  r²  s        rò   Úall_managed_tempszFunctionState.all_managed_tempsD  s?   € ð 8<×7KÒ7KöÙ7KÑ3�E˜4 ¨VÙð ˜’Ø7Kôð 	ùõ s   ’*
c                 ó¨   — t        | j                  j                  «       D ����cg c]  \  \  }}}|r|d   D ]  }||f‘Œ Œ c}}}}«      S c c}}}}w )zàReturn a list of (cname, type) tuples of refcount-managed Python
        objects that are not currently in use.  This is used by
        try-except and try-finally blocks to clean up temps in the
        error case.
        r   )rË   rb  r@  )rí   rÐ   r±  r´  r.  s        rò   Úall_free_managed_tempsz$FunctionState.all_free_managed_tempsK  s_   € ô à04·±×0EÑ0EÔ0Gö
á0GÑ,Ñ"��z HÉ:Ø! !œ�ð �DŠMà$ð Ø0Gô
ó ð 	ùõ 
s   ¥Ac                 óJ   — | j                   j                  t        «       «       y)zJ
        Useful to find out which temps were used in a code block
        N)rg  r\  rÈ   rý   s    rò   Ústart_collecting_tempsz$FunctionState.start_collecting_tempsW  s   € ð 	× Ñ ×'Ñ'¬«Õ.rô   c                 ó6   — | j                   j                  «       S rü   )rg  r­  rý   s    rò   Ústop_collecting_tempsz#FunctionState.stop_collecting_temps]  s   € Ø×'Ñ'×+Ñ+Ó-Ð-rô   c                 ó$   — t        |«      | _        y rü   )ÚClosureTempAllocatorrf  ©rí   rô  s     rò   Úinit_closure_tempsz FunctionState.init_closure_temps`  s   € Ü1°%Ó8ˆÕrô   rü   )Úyield)rP  )FT)r  r  r	  rÈ   ró   rs  rW  r|  rY  rƒ  r‡  rŒ  r�  r‘  r•  r™  r›  r¶  r¸  rn  r¼  r¾  rÀ  rÂ  rÄ  rÈ  r  rô   rò   rP  rP  Z  s|   „ ñ +.«%°tó '$òV
(óóóò
ò
$óòò$ò	ò"ò'ó
8òtIò&	ò:òò
ò/ò.ó9rô   rP  c                   ó   — e Zd ZdZdd„Zy)ÚNumConstzâGlobal info about a Python number constant held by GlobalState.

    cname       string
    value       string
    py_type     string     int, long, float
    value_code  string     evaluation code if different from value
    Nc                 óD   — || _         || _        || _        |xs || _        y rü   )r.  ÚvalueÚpy_typeÚ
value_code)rí   r.  rÍ  rÎ  rÏ  s        rò   ró   zNumConst.__init__m  s#   € ØˆŒ
ØˆŒ
ØˆŒØ$Ò-¨ˆ�rô   rü   ©r  r  r	  r
  ró   r  rô   rò   rË  rË  d  s   „ ñô.rô   rË  c                   ó   — e Zd ZdZd„ Zy)ÚPyObjectConstz>Global info about a generic constant held by GlobalState.
    c                 ó    — || _         || _        y rü   )r.  rÐ   ©rí   r.  rÐ   s      rò   ró   zPyObjectConst.__init__z  s   € ØˆŒ
Øˆ�	rô   NrÐ  r  rô   rò   rÒ  rÒ  t  s   „ ñó
rô   rÒ  )Úpossible_unicode_identifierÚpossible_bytes_identifierÚreplace_identifierÚfind_alphanumsz(?![0-9])\w+$s   (?![0-9])\w+$z[^a-zA-Z0-9_]+z([a-zA-Z0-9]+)c                   ó   — e Zd ZdZd„ Zdd„Zy)ÚStringConstz?Global info about a C string constant held by GlobalState.
    c                 óp   — || _         || _        t        j                  |«      | _        d | _        d| _        y ©NF)r.  Útextr
   Úescape_byte_stringÚescaped_valueÚ
py_stringsÚc_used)rí   r.  rÝ  Úbyte_strings       rò   ró   zStringConst.__init__�  s1   € ØˆŒ
ØˆŒ	Ü+×>Ñ>¸{ÓKˆÔØˆŒØˆ�rô   Nc                 óˆ  — | j                   }|s|€d x}}d}n5d}|j                  «       }|dv rd }d }ndj                  t        |«      «      }|rd}n>|€:t	        |t
        «      rt        t        |«      «      }nt        t        |«      «      }nd}|||f}| j                  €i | _	        n	 | j                  |   S |rt        j                  d   nt        j                  › |rdnd› |rd|z   nd› d| j                  t        t        j                   «      d  › �}t#        ||||«      }	|	| j                  |<   |	S # t        $ r Y Œ‡w xY w)	NTF)Úutf8úutf-8rŽ   Úusasciizus-asciirP  r(   ÚuÚbrÓ   )rÝ  Úlowerr  rØ  r°   r“   r�   rÖ  rÕ  rà  rZ   r   Úinterned_prefixesÚpy_const_prefixr.  r³   Úconst_prefixÚPyStringConst)
rí   r  r+  rÝ  Úencoding_keyÚ
is_unicodeÚinternrø   Úpystring_cnameÚ	py_strings
             rò   r,  zStringConst.get_py_string_const–  sd  € Ø�y‰yˆñ ˜Ð)à&*Ð*ˆH�|Ø‰Jð ˆJØ—~‘~Ó'ˆHØÐLÑLØ�Ø#‘à!Ÿw™w¤~°hÓ'?Ó@�áØ‰FØÐÜ˜$¤Ô&ÜÔ7¸Ó=Ó>‘äÔ9¸$Ó?Ó@‘àˆFà�z <Ð0ˆØ�?‰?Ð"Ø ˆD�OðØ—‘ sÑ+Ð+ñ
 39Œv×'Ñ'¨Ò.¼f×>TÑ>TÐUÙ ‰s cÐ*Ù%1ˆs�\Ò!°rÐ:Ø�—
‘
œ3œv×2Ñ2Ó3Ð4Ð5Ð6ð8ð 	ô " .°(¸FÀJÓOˆ	Ø(ˆ�‰˜ÑØÐøô ò Ùðús   Â*D5 Ä5	EÅ Erü   )r  r  r	  r
  ró   r,  r  rô   rò   rÚ  rÚ  †  s   „ ñòô/rô   rÚ  c                   ó   — e Zd ZdZdd„Zd„ Zy)rí  zDGlobal info about a Python string constant held by GlobalState.
    c                 ó<   — || _         || _        || _        || _        y rü   )r.  r  rï  rð  )rí   r.  r  rð  rï  s        rò   ró   zPyStringConst.__init__Ð  s   € ØˆŒ
Ø ˆŒØ$ˆŒØˆ�rô   c                 ó4   — | j                   |j                   k  S rü   ©r.  ©rí   rù   s     rò   Ú__lt__zPyStringConst.__lt__Ö  s   € Ø�z‰z˜EŸK™KÑ'Ð'rô   N©FF)r  r  r	  r
  ró   rø  r  rô   rò   rí  rí  È  s   „ ñóó(rô   rí  c                   óJ  — e Zd Zi Zg d¢Zg d¢Zd1d„Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd1d„Zd2d„Zd„ Zd1d„Zd„ Zd3d„Zd„ Zd1d„Zd„ Zd„ Zd„ Zd1d„Zd„ Zd„ Zd„ Zd4d„Zdefd„Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d3d"„Z$d#„ Z%d$„ Z&d%„ Z'd&e(d'e(fd(„Z)d)„ Z*d*„ Z+e,d+„ «       Z-d,„ Z.d-„ Z/d.„ Z0d1d/„Z1d0„ Z2y)5r+  ))Úh_codeÚfilename_tableÚutility_code_proto_before_typesÚnumeric_typedefsÚcomplex_type_declarationsÚtype_declarationsrû  Úmodule_declarationsÚtypeinfoÚbefore_global_varÚ
global_varÚstring_declsÚdeclsÚlate_includesÚmodule_staterð  Úmodule_state_endÚconstant_name_definesr£  rò  Úmodule_state_clear_endr¢  rñ  Úmodule_state_traverse_endÚmodule_codeÚmodule_exttypesÚinitfunc_declarationsÚinit_moduleÚpystring_tableÚcached_builtinsÚcached_constantsÚinit_constantsÚinit_codeobjectsrã  rï  Úcleanup_moduleÚmain_methodÚutility_code_pragmasrî  Úutility_code_pragmas_endÚend)rû  rý  r   rû  r  Nc                 óz  — i | _         g | _        i | _        t        «       | _        i | _        d| _        || _        || _        i | _	        || _
        i | _        i | _        i | _        i | _        g | _        i | _        g | _        i | _        i | _        t        «       | _        g | _        |j-                  | «       || _        y rÜ  )rü  Úfilename_listÚinput_file_contentsrÈ   Úutility_codesÚdeclared_cnamesÚin_utility_code_generationÚcode_configÚcommon_utility_include_dirÚpartsró  Úconst_cnames_usedÚstring_const_indexÚdedup_const_indexÚpyunicode_ptr_const_indexÚcodeobject_constantsÚnum_const_indexÚarg_default_constantsÚconst_array_countersÚcached_cmethodsÚinitialised_constantsr­  Úset_global_staterN  )rí   rÕ  ró  r!  r"  s        rò   ró   zGlobalState.__init__.  sÄ   € Ø ˆÔØˆÔØ#%ˆÔ Ü ›UˆÔØ!ˆÔØ*/ˆÔ'Ø&ˆÔØ*DˆÔ'ØˆŒ
Ø&ˆÔð "$ˆÔØ"$ˆÔØ!#ˆÔØ)+ˆÔ&Ø$&ˆÔ!Ø!ˆÔØ%'ˆÔ"Ø$&ˆÔ!Ø!ˆÔÜ%(£UˆÔ"Ø(*ˆÔ%à×Ñ Ô%Ø ˆ�rô   c                 óÒ  — | j                   }t        | j                  «      D ]>  \  }}|j                  «       x}| j                  |<   |dkD  sŒ+|j                  d|z  «       Œ@ | j                  d   }|j                  dt        j                  › dt        j                  › d�«       |j                  dt        j                  › d�«       | j                  d	   }|j                  d
t        j                  › dt        j                  › d�d¬«       |j                  dt        j                  › d�«       |j                  t        j                  d«      «       | j                  d   }|j                  d«       | j                  d   }|j                  dt        j                  › dt        j                  › d�«       |j                  dt        j                  › d�«       t        j                  s| j                  d= nf| j                  d   }|j                  dt        j                  › dt        j                  › d�«       |j                  dt        j                  › d�«       | j                  d   }|j                  d«       |j                  d«       | j                  d   }| j                  j                   r|j#                  d«       |j                  d«       |j                  d«       y )Nr   z/* #### Code section: %s ### */r  zint __Pyx_InitCachedBuiltins(ú *r=  úCYTHON_UNUSED_VAR(ú);r  zint __Pyx_InitCachedConstants(T)ÚrefnannyÚ__Pyx_InitCachedConstantsrã  zint __Pyx_InitGlobals(void)r  zint __Pyx_InitConstants(rï  zvoid __Pyx_CleanupGlobals(rû  rP  z)/* --- Runtime support code (head) --- */rî  z
#line 1 "cython_utility"
z"/* --- Runtime support code --- */)rN  rŸ   Úcode_layoutÚinsertion_pointr#  r  Ústart_initcfuncr   Úmodulestatetype_cnameÚmodulestatevalue_cnameÚput_setup_refcount_contextr
   r-  r	   rø  r!  Úemit_linenumsr  )rí   rN  Úir¨  Úwr  s         rò   Úinitialize_main_c_codez"GlobalState.initialize_main_c_codeJ  sž  € Ø—_‘_ˆ
Ü  ×!1Ñ!1Ö2‰GˆAˆtØ#-×#=Ñ#=Ó#?Ð?ˆA�—
‘
˜4Ñ Ø�1‹uØ—‘Ð9¸DÑ@ÕAð 3ð
 �J‰JÐ(Ñ)ˆØ	×ÑØ+Ü×+Ñ+Ð,¨B¬v×/LÑ/LÐ.MÈQðPô	Qð 	
�‰Ð$¤V×%BÑ%BÐ$CÀ2ÐFÔGà�J‰JÐ)Ñ*ˆØ	×ÑØ,Ü×+Ñ+Ð,¨B¬v×/LÑ/LÐ.MÈQðPàð 	ô 	ð 	
�‰Ð$¤V×%BÑ%BÐ$CÀ2ÐFÔGØ	×$Ñ$¤^×%AÑ%AÐB]Ó%^Ô_à�J‰J�~Ñ&ˆØ	×ÑÐ7Ô8à�J‰JÐ'Ñ(ˆØ	×ÑØ&Ü×+Ñ+Ð,¨B¬v×/LÑ/LÐ.MÈQðPô	Qð 	
�‰Ð$¤V×%BÑ%BÐ$CÀ2ÐFÔGä×,Ò,Ø—
‘
Ð,Ñ-à—
‘
Ð,Ñ-ˆAØ×ÑØ,Ü×/Ñ/Ð0°´6×3PÑ3PÐ2QÐQRðTôUð �G‰GÐ(¬×)FÑ)FÐ(GÀrÐJÔKà�z‰zÐ.Ñ/ˆØ�
‰
�2ŒØ�
‰
Ð>Ô?à�z‰zÐ,Ñ-ˆØ×Ñ×)Ò)Ø�J‰JÐ5Ô6Ø�
‰
�2ŒØ�
‰
Ð7Õ8rô   c                 óx   — | j                   }| j                  D ]  }|j                  «       | j                  |<   Œ! y rü   )rN  Úh_code_layoutr6  r#  )rí   rN  r¨  s      rò   Úinitialize_main_h_codez"GlobalState.initialize_main_h_code{  s2   € Ø—_‘_ˆ
Ø×&Ô&ˆDØ)×9Ñ9Ó;ˆD�J‰J�tÒñ 'rô   c                 ód  — | j                  «        | j                  d   }t        j                  dd«      }|j	                  |j                  |j                  «      «       |j                  d«       | j                  d   }t        j                  dd«      }|j                  |j                  |j                  «      «       |j                  d«       | j                  d   }t        j                  d	d«      }|j                  |j                  |j                  «      «       |j                  d«       y )
Nrî  ÚTypeConversionszTypeConversion.crP  r  ÚUtilityCodePragmasúModuleSetupCode.cr  ÚUtilityCodePragmasEnd)	Úclose_global_declsr#  rt  rw  Úputr‚  r?  r  r�  )rí   r  rˆ  s      rò   Úfinalize_main_c_codez GlobalState.finalize_main_c_code€  sí   € Ø×ÑÔ!ð
 �z‰zÐ,Ñ-ˆÜ!×-Ñ-Ð.?ÐASÓTˆØ�‰�×!Ñ! $§)¡)Ó,Ô-Ø�
‰
�2Œð
 �z‰zÐ0Ñ1ˆÜ×&Ñ&Ð';Ð=PÓQˆØ�
‰
�4×#Ñ# D§I¡IÓ.Ô/Ø�
‰
�2ŒØ�z‰zÐ4Ñ5ˆÜ×&Ñ&Ð'>Ð@SÓTˆØ�
‰
�4×#Ñ# D§I¡IÓ.Ô/Ø�
‰
�2�rô   c                 ó    — | j                   |   S rü   )r#  )rí   rø   s     rò   Ú__getitem__zGlobalState.__getitem__—  s   € Ø�z‰z˜#‰Ðrô   c                 óP  — | j                  «        | j                  d   }|j                  d«       |j                  |j                  «      r,|j                  |j                  «       |j                  d«       |j                  d«       |j                  «        | j                  d   }dD ]Q  }|| j                  v sŒ| j                  |j                  t        j                  |z   «      | j                  |   |«       ŒS |j                  «        |j                  d«       |j                  |j                  «      r<|j                  |j                  «       |j                  «        |j                  d«       |j                  d«       |j                  «        dD ]Š  }| j                  |   }|j                  d«       |j                  |j                  «      r,|j                  |j                  «       |j                  d«       |j                  d«       |j                  «        ŒŒ t        j                  r0| j                  d   }|j                  d«       |j                  «        t        j                  r1| j                  d	   }|j                  d«       |j                  «        y y )
Nr  ú	return 0;ú
return -1;Ú}r  )rÏ   rÊ   )rã  r  rï  r  )Úgenerate_const_declarationsr#  r  r›  rT  Ú	put_labelÚexit_cfunc_scoper+  Úimmortalize_constantsÚname_in_module_stater   Úpyrex_prefixÚput_finish_refcount_contextr	   rø  )rí   r=  Ú
const_typer¨  s       rò   rG  zGlobalState.close_global_decls�  s  € ð 	×(Ñ(Ô*à�J‰JÐ(Ñ)ˆØ	�‰�ÔØ�<‰<˜Ÿ™Ô&Ø�K‰K˜Ÿ™Ô&Ø�G‰G�LÔ!Ø	�‰�ŒØ	×ÑÔà�J‰JÐ)Ñ*ˆÛ,ˆJØ˜T×6Ñ6Ò6Ø×*Ñ*Ø×*Ñ*¬6×+>Ñ+>ÀÑ+KÓLØ×-Ñ-¨jÑ9Øõð -ð 	
×%Ñ%Ô'Ø	�‰�ÔØ�<‰<˜Ÿ™Ô&Ø�K‰K˜Ÿ™Ô&Ø×)Ñ)Ô+Ø�G‰G�LÔ!Ø	�‰�ŒØ	×ÑÔã6ˆDØ—
‘
˜4Ñ ˆAØ�G‰G�KÔ Ø�|‰|˜AŸM™MÔ*Ø—‘˜AŸM™MÔ*Ø—‘˜Ô%Ø�G‰G�CŒLØ×ÑÕ ð 7ô ×(Ò(Ø—
‘
Ð,Ñ-ˆAØ�G‰G�CŒLØ×ÑÔ ä×(Ò(Ø—
‘
Ð+Ñ,ˆAØ�G‰G�CŒLØ×ÑÕ ð )rô   c                 óF   — | d   j                  d|j                  z  «       y )Nr  zstatic PyObject *%s;)r  r.  ©rí   Úentrys     rò   Úput_pyobject_declzGlobalState.put_pyobject_declÍ  s   € Øˆ\Ñ× Ñ Ð!7¸%¿+¹+Ñ!EÕFrô   c                 óx   — |�*|| j                   v ry | j                   j                  |«       | j                  d   S )Nr  )r-  rb  r#  ©rí   Útargets     rò   Úget_cached_constants_writerz'GlobalState.get_cached_constants_writerÒ  s=   € ØÐØ˜×3Ñ3Ñ3àØ×&Ñ&×*Ñ*¨6Ô2Ø�z‰zÐ,Ñ-Ð-rô   c                 ó‚   — |xr dxs d}	 | j                   ||f   }|S # t        $ r | j                  ||«      }Y |S w xY w)NÚlongr¯   ©r)  rZ   Únew_num_const)rí   Ú	str_valueÚlongnessrÎ  Úcs        rò   Úget_int_constzGlobalState.get_int_constÚ  sZ   € ØÒ%˜vÒ.¨ˆð	7Ø×$Ñ$ i°Ð%9Ñ:ˆAð ˆøô ò 	7Ø×"Ñ" 9¨gÓ6‰AØˆð	7ús   Œ Ÿ>½>c                 óp   — 	 | j                   |df   }|S # t        $ r | j                  |d|«      }Y |S w xY w)Nr¤   rb  )rí   rd  rÏ  rf  s       rò   Úget_float_constzGlobalState.get_float_constâ  sP   € ð	CØ×$Ñ$ i°Ð%9Ñ:ˆAð ˆøô ò 	CØ×"Ñ" 9¨g°zÓB‰AØˆð	Cús   ‚ •5´5c                 óŒ   — |�| j                   j                  |«      }|�|S | j                  |«      }|�|| j                   |<   |S rü   )r&  r   Únew_array_const_cname)rí   r  Ú	dedup_keyÚconsts       rò   Úget_py_constzGlobalState.get_py_consté  sT   € ØÐ Ø×*Ñ*×.Ñ.¨yÓ9ˆEØÐ Ø�Ø×*Ñ*¨6Ó2ˆØÐ Ø05ˆD×"Ñ" 9Ñ-Øˆrô   c                 óv   — | j                  d«      }t        ||«      }| j                  j                  |«       |S ©NrP  )Únew_const_cnamerÒ  r*  r\  )rí   rÐ   r.  rf  s       rò   Úget_argument_default_constz&GlobalState.get_argument_default_constó  s9   € Ø×$Ñ$ RÓ(ˆÜ˜% Ó&ˆØ×"Ñ"×)Ñ)¨!Ô,ð ˆrô   c                 óÔ   — |j                   r|j                  «       }n|j                  «       }	 | j                  |   }|rd|_        |S # t        $ r | j                  ||«      }Y Œ(w xY w©NT)rï  Ú
utf8encodeÚ
byteencoder%  rZ   Únew_string_constrá  )rí   rÝ  rá  râ  rf  s        rò   Úget_string_constzGlobalState.get_string_constü  sj   € à�?Š?ØŸ/™/Ó+‰KàŸ/™/Ó+ˆKð	9Ø×'Ñ'¨Ñ4ˆAñ ØˆAŒHØˆøô	 ò 	9Ø×%Ñ% d¨KÓ8ŠAð	9ús   ¯A	 Á	A'Á&A'c                 ó    — |j                   sJ ‚	 | j                  |   }|S # t        $ r# | j                  «       x}| j                  |<   Y |S w xY wrü   )rï  r'  rZ   rq  )rí   rÝ  rf  s      rò   Úget_pyunicode_ptr_constz#GlobalState.get_pyunicode_ptr_const
  sa   € à�ŠÐˆð	NØ×.Ñ.¨tÑ4ˆAð ˆøô ò 	NØ7;×7KÑ7KÓ7MÐMˆA�×.Ñ.¨tÒ4Øˆð	Nús   �! ¡(AÁAc                 ód   — | j                  |d¬«      }|j                  |j                  |«      }|S )NF)rá  )rx  r,  r  )rí   rÝ  r+  Úc_stringrò  s        rò   r,  zGlobalState.get_py_string_const  s3   € à $× 5Ñ 5°dÀ5Ð 5Ó IˆØ×0Ñ0°·±À
ÓKˆ	ØÐrô   c                 ó’   — t        | j                  «      }t        j                  › d|› d�}| j                  j	                  |«       |S )NrÌ  rÍ  )r³   r(  r   Úcodeobjtab_cnamer\  )rí   ÚnodeÚidxrD  s       rò   Úget_py_codeobj_constz GlobalState.get_py_codeobj_const  sD   € Ü�$×+Ñ+Ó,ˆÜ×)Ñ)Ð*¨!¨C¨5°Ð2ˆØ×!Ñ!×(Ñ(¨Ô.Øˆrô   c                 ó(   — | j                  |d¬«      S ©NTr*  ©r,  ©rí   rÝ  s     rò   Úget_interned_identifierz#GlobalState.get_interned_identifier  ó   € Ø×'Ñ'¨¸Ð'Ó>Ð>rô   c                 ó`   — | j                  |«      }t        |||«      }|| j                  |<   |S rü   )Únew_string_const_cnamerÚ  r%  )rí   rÝ  râ  r.  rf  s        rò   rw  zGlobalState.new_string_const"  s5   € Ø×+Ñ+¨KÓ8ˆÜ˜˜t [Ó1ˆØ/0ˆ×Ñ Ñ,Øˆrô   c                 óh   — | j                  ||«      }t        ||||«      }|| j                  ||f<   |S rü   )Únew_num_const_cnamerË  r)  )rí   rÍ  rÎ  rÏ  r.  rf  s         rò   rc  zGlobalState.new_num_const(  s>   € Ø×(Ñ(¨°Ó8ˆÜ�U˜E 7¨JÓ7ˆØ12ˆ×Ñ˜e WÐ-Ñ.Øˆrô   c                 óJ   — |j                  dd«      }| j                  |¬«      S )NÚASCIIÚignore)rÍ  )Údecoderq  )rí   Úbytes_valuerÍ  s      rò   r‰  z"GlobalState.new_string_const_cname.  s(   € à×"Ñ" 7¨HÓ5ˆØ×#Ñ#¨%Ð#Ó0Ð0rô   c                 ó¤   — | j                   }|j                  dd¬«      x}}||v r%||   dz   x}||<   |j                  d|¬«      }||v rŒ%d||<   |S )NrP  )Úsepræ   r   rÓ   )r$  r¥   )rí   Ú
format_strrº  r.  rÍ  ræ   s         rò   Úunique_const_cnamezGlobalState.unique_const_cname3  sr   € Ø×%Ñ%ˆØ"×)Ñ)¨b¸"Ð)Ó=Ð=ˆ�Ø�t‰mØ$(¨¡K°!¡OÐ3ˆG�d˜5‘kØ×%Ñ%¨#°wÐ%Ó?ˆEð �tŠmð ˆˆU‰Øˆrô   c                 ó  — |dk(  r|dz  }d}t         j                  |   }|j                  dd«      j                  dd«      j                  dd«      }t        |«      d	kD  r%| j	                  |d
z   |d d z   dz   |dd  z   «      }|S |›|›�}|S )Nra  ÚLr¯   r;  rÓ   Ú+Ú-Úneg_é*   zlarge{counter}_é   Ú_xxx_iîÿÿÿ)r   rê  r·  r³   r”  )rí   rÍ  rÎ  r  r.  s        rò   r‹  zGlobalState.new_num_const_cname<  sª   € Ø�fÒØ�S‰LˆEØˆGÜ×)Ñ)¨'Ñ2ˆà—‘˜c 3Ó'×/Ñ/°°SÓ9×AÑAÀ#ÀvÓNˆÜˆu‹:˜Š?à×+Ñ+ØÐ*Ñ*¨U°3°B¨ZÑ7¸'ÑAÀEÈ#È$ÀKÑOóQˆEð ˆñ %¡eÐ,ˆEØˆrô   c                 ó¾   — t        d|«      d d j                  d«      }| j                  |dz   «      }|rt        j                  |   }nt        j
                  }|›|›�S )NrÓ   é    z{sep}{counter})r×  ra  r”  r   rê  rì  )rí   r  rÍ  Úname_suffixs       rò   rq  zGlobalState.new_const_cnameK  s_   € Ü" 3¨Ó.¨s°Ð3×9Ñ9¸#Ó>ˆØ×-Ñ-¨eÐ6FÑ.FÓGˆÙÜ×-Ñ-¨fÑ5‰Fä×(Ñ(ˆFÙ¡Ð-Ð-rô   r  c                 óŽ   — | j                   j                  |d«      }|dz   | j                   |<   t        j                  › |› d|› d�S )Nr   r   rÌ  rÍ  )r+  r   r   rU  )rí   r  Úcounts      rò   rk  z!GlobalState.new_array_const_cnameT  sL   € Ø×)Ñ)×-Ñ-¨f°aÓ8ˆØ,1°!©Gˆ×!Ñ! &Ñ)Ü×%Ñ%Ð& v h¨a°¨w°aÐ8Ð8rô   c                 óš   — ||f}	 | j                   |   }|S # t        $ r* | j                  d|›d|›�«      x}| j                   |<   Y |S w xY w)NÚumethodrÓ   )r,  rZ   rq  )rí   r   r!  rø   r.  s        rò   Úget_cached_unbound_methodz%GlobalState.get_cached_unbound_methodY  so   € Ø˜;Ð'ˆð	@Ø×(Ñ(¨Ñ-ˆEð ˆøô ò 	@Ø04×0DÑ0DØ¢j±+Ð>ó1@ð @ˆE�D×(Ñ(¨Ò-àˆð	@ús   † —/A
Á	A
c           	      óÒ   — dt        |«      z  }| j                  t        j                  |d«      «       | j	                  ||«      }|g|z   }d|›d|›|›ddj                  |«      ›d�S )NzCallUnboundCMethod%dúObjectHandling.cÚ__Pyx_z(&rm  r=  )r³   rö  r�  rw  r¤  r  )	rí   Úmodulestate_cnamer"  r   r!  Ú
arg_cnamesr~  Úcache_cnamer#  s	            rò   r  z+GlobalState.cached_unbound_method_call_codeb  sj   € à2´S¸³_ÑDÐØ×Ñœk×5Ñ5Ð6GÐI[Ó\Ô]Ø×4Ñ4°ZÀÓMˆØˆ{˜ZÑ'‰âÙÚØ�I‰I�d�Oð	
ð 	
rô   c                 óB  — |j                   r“|j                  r†| j                  |j                  |«      ri| j	                  |«       |j
                  }|t        v r	t        |   }| j                  |j                  t        j                  |«      |j                  «       y y y y rü   )Ú
is_builtinÚis_constÚshould_declarer.  r[  rD  Úrenamed_py2_builtins_mapÚput_cached_builtin_initÚposr
   r-  )rí   rZ  rD  s      rò   Úadd_cached_builtin_declz#GlobalState.add_cached_builtin_declo  s…   € Ø×Ò §¢Ø×"Ñ" 5§;¡;°Ô6Ø×&Ñ& uÔ-Ø—z‘z�ØÔ3Ñ3Ü3°DÑ9�DØ×,Ñ,Ø—I‘Iœ~×;Ñ;¸DÓAØ—K‘Kõ!ð 7ð !/Ðrô   c                 ó  — | j                   d   }|j                  | j                  |«      j                  «      }| j	                  t
        j                  dd«      «       |j                  |›d|›d|›d|j                  |«      ›�«       y )Nr  ÚGetBuiltinNamer¦  z = __Pyx_GetBuiltinName(z); if (!ú) )	r#  Ú name_in_main_c_code_module_stater†  r.  rö  r�  rw  r  Ú
error_goto)rí   r±  rD  r.  r=  Úcname_in_modulestates         rò   r°  z#GlobalState.put_cached_builtin_initz  s}   € Ø�J‰JÐ(Ñ)ˆØ ×AÑAØ×(Ñ(¨Ó.×4Ñ4ó 6Ðà×ÑÜ×#Ñ#Ð$4Ð6HÓIô	Kà	�‰ÚÚ ÚØ�L‰L˜Ôð	õ 	 rô   c                 ó¤   — | j                  «        | j                  «        | j                  «        | j                  «        | j	                  «        y rü   )Úgenerate_cached_methods_declsÚgenerate_object_constant_declsÚgenerate_codeobject_constantsÚgenerate_string_constantsÚgenerate_num_constantsrý   s    rò   rP  z'GlobalState.generate_const_declarations†  s@   € Ø×*Ñ*Ô,Ø×+Ñ+Ô-Ø×*Ñ*Ô,ð 	×&Ñ&Ô(Ø×#Ñ#Õ%rô   c                 óÐ   — |dk  rdnd}|rdnd}| j                   d   }|j                  d|› d|› d	|› d
|› d�	«       | j                   d   }|j                  d|› d|› d|› d�«       y )Né €  r¯   Ú
Py_ssize_tÚPy_VISITÚ__Pyx_VISIT_CONSTr¢  úfor (z i=0; i<z	; ++i) { z(traverse_module_state->z[i]); }r£  z&; ++i) { Py_CLEAR(clear_module_state->)r#  r  )rí   Ústruct_attr_cnamer¡  Úmay_have_refcyclesÚcounter_typeÚ
visit_callrÕ  s          rò   Ú)_generate_module_array_traverse_and_clearz5GlobalState._generate_module_array_traverse_and_clear�  s‘   € Ø %¨¢‘u°<ˆÙ#5‘ZÐ;Nˆ
à—‘Ð3Ñ4ˆØ�‰�u˜\˜N¨(°5°'¸ÀJÀ<ÐOgÐhyÐgzð  {Cð  Dô  	Eà—‘Ð0Ñ1ˆØ�‰�u˜\˜N¨(°5°'Ð9`ÐarÐ`sÐs{Ð|Õ}rô   c                 óø  — | j                   D �cg c]$  }t        |j                  «      |j                  |f‘Œ& }}|j                  «        |D ]Ã  \  }}}| j                  d   j                  d|j                  j                  |«      z  «       |j                  j                  sŒX| j                  d   j                  d|› �|j                  dd¬«       |j                  j                  r|dz  }| j                  d	   j                  d
|› d�«       ŒÅ t        | j                  j                  «       «      D ]¾  \  }}t        j                  › |› �}| j                  d   j                  d|› d|› d�«       | j!                  ||d¬«       t#        |«      }|€Œa|t$        j&                  k  sŒu| j                  d   }	|	j)                  d|› d�«       |	j                  d|	j+                  |› d�«      z  «       ŒÀ y c c}w )Nr  z%s;r£  zclear_module_state->TF)Úclear_before_decrefÚnannyz	->memviewr¢  z Py_VISIT(traverse_module_state->r2  ú
PyObject *rÌ  ú];©rÆ  rï  zfor (size_t i=0; i<z; ++i) z{ Py_CLEAR(%s); }z[i])r*  r³   r.  Úsortr#  r  rÐ   Údeclaration_coder¬  Úput_xdecref_clearÚis_memoryviewslicerË   r+  r@  r   rU  rÉ  Úcleanup_level_for_type_prefixr	   rø  rH  r¶  )
rí   rf  ÚconstsrÓ   r.  r  r¡  rÅ  Úcleanup_levelÚpart_writers
             rò   r»  z*GlobalState.generate_object_constant_declsš  sõ  € à×5Ò5ó7Ù5�aô �q—w‘w“< §¡¨!Ò,Ø5ð 	ð 7à�‰ŒÛ!‰KˆAˆu�aØ�J‰J�~Ñ&×,Ñ,¨U°Q·V±V×5LÑ5LÈUÓ5SÑ-SÔTØ—6‘6×+Ò+ð à�J‰JÐ+Ñ,×>Ñ>Ø& u gÐ.Ø—‘Ø$(Øð	 ?ô ð �v‰v×(Ò(à˜Ñ$�à�J‰JÐ.Ñ/×5Ñ5Ø2°5°'¸Ð<õ>ð' "ô, $ D×$=Ñ$=×$CÑ$CÓ$EÖF‰MˆF�EÜ#)×#6Ñ#6Ð"7¸°xÐ @ÐØ�J‰J�~Ñ&×,Ñ,¨zÐ:KÐ9LÈAÈeÈWÐTVÐ-WÔXð ×:Ñ:Ð;LÈeÐhmÐ:Ônä9¸&ÓAˆMØÑ(¨]¼g×>[Ñ>[Ó-[Ø"Ÿj™jÐ):Ñ;�Ø—‘Ð"5°e°W¸GÐ DÔEØ×!Ñ!Ø'Ø#×DÑDÐHYÐGZÐZ]ÐE^Ó_ñ`õñ Gùò37s   �)G7c                 óð  — | j                   sy | j                  d   }| j                  d   }|j                  d«       |j                  d«       g }t        | j                   j	                  «       «      D ]¶  \  \  }}}|j                  |«       | j                  t        j                  |«      «      j                  }|j                  d|z  «       |j                  |j                  |«      ›d|›d�«       |j                  |j                  |«      › d|j                  |«      › d�«       Œ¸ t        j                  r;| j                  d	   }|D ]&  }|j                  d
|j                  |«      › d�«       Œ( y y )Nr  r  rP  z/* Cached unbound methods */z__Pyx_CachedCFunction %s;z.type = (PyObject*)Ú;z.method_name = &rï  z	Py_CLEAR(z	.method);)r,  r#  r  rË   r@  r\  r†  r
   r-  r.  r¶  r	   rø  )	rí   ÚdeclrŸ  Úcnamesr   r!  r.  Úmethod_name_cnamer   s	            rò   rº  z)GlobalState.generate_cached_methods_declsÄ  sh  € Ø×#Ò#Øà�z‰z˜.Ñ)ˆØ�z‰zÐ+Ñ,ˆà�
‰
�2ŒØ�
‰
Ð1Ô2àˆÜ06°t×7KÑ7K×7QÑ7QÓ7SÖ0TÑ,Ñ%ˆZ˜ uØ�M‰M˜%Ô Ø $× <Ñ <¼^×=YÑ=YÐZeÓ=fÓ g× mÑ mÐØ�J‰JÐ2Øñô ð �J‰JØ×5Ñ5°eÕ<ºjðJô Kð �J‰JØ×8Ñ8¸Ó?Ð@ð AØ×9Ñ9Ð:KÓLÐMÈQðPõQð 1Uô ×(Ò(Ø—j‘jÐ!2Ñ3ˆGÛ�Ø—‘ 	¨$×*OÑ*OÐPUÓ*VÐ)WÐW`ÐaÕbñ  ð )rô   c                 ó8  — g }g }g }t        | j                  j                  «       D �cg c]$  }t        |j                  «      |j                  |f‘Œ& c}«      D �]  \  }}}|j
                  r;|j                  t        |j                  «      |j                  |j                  f«       |j                  sŒ\|j                  j                  «       D ]   }|j                  }|j                  rBt        |t        «      s2t        j                  |j                  |j                   xs d«      «      }|j                  r|n|j                  |j"                  xr |j                  |j                  |f«       Œ¢ �Œ |j%                  «        |j%                  «        |j%                  «        | j&                  d   }|D ]5  \  }}	}
t        j(                  |
«      }|j+                  d|	› d|› d�d¬«       Œ7 t        | j,                  j/                  «       «      D ]…  \  }}	t        j0                  |«      \  }}|r|j+                  d«       |j+                  d	|	›d
|›d�«       |sŒL|j+                  d«       |j+                  d	|	›d
|›d�«       |j+                  d«       Œ‡ t        |«      t        |«      z   }| j&                  d   j+                  dt2        j4                  › d|› d�«       | j7                  t2        j4                  |d¬«       | j9                  ||«       y c c}w )Nr  r  zstatic const char z[] = "ú";T©Úsafez#ifdef Py_UNICODE_WIDEzstatic Py_UNICODE z[] = { z };ú#elseú#endifr  rÍ  rÌ  rÎ  FrÏ  )rË   r%  r{  r³   r.  rá  r\  rß  rà  rÝ  rï  r°   r(   r
   r-  r�  r  rð  rÐ  r#  Úsplit_string_literalr  r'  r@  Úencode_pyunicode_stringr   Ústringtab_cnamerÉ  Úgenerate_pystring_constants)rí   Úc_constsÚpy_bytes_constsÚpy_unicode_constsrf  rÓ   rò  rÝ  Údecls_writerr.  rß  ÚcliteralÚutf16_arrayÚutf32_arrayÚpy_string_counts                  rò   r½  z%GlobalState.generate_string_constantsá  sª  € ØˆØˆØÐô À4×CZÑCZ×CaÑCaÔCcÓdÑCc¸a¤ A§G¡G£¨a¯g©g°qÒ9ÐCcÑd×e‰GˆAˆq�!Ø�xŠxØ—‘¤ Q§W¡W£¨q¯w©w¸¿¹Ð HÔIØ�|‹|Ø!"§¡×!4Ñ!4Ö!6�IØŸ6™6�DØ ×+Ò+´J¸tÄSÔ4IÜ-×;Ñ;¸D¿K¹KÈ	×HZÑHZÒHeÐ^eÓ<fÓg˜à*3×*>Ò*>Ñ&ÀO×[Ñ[Ø!×(Ñ(ÒA¨Y×-AÑ-AØ!Ÿ™Øð]õ ò "7ð	 fð 	�‰ŒØ×ÑÔØ×ÑÔ ð —z‘z .Ñ1ˆÛ'/Ñ#ˆAˆu�mÜ%×:Ñ:¸=ÓIˆHØ×ÑØ$ U G¨6°(°¸2Ð>Øð õ ð (0ô ˜t×=Ñ=×CÑCÓEÖF‰HˆAˆuÜ'5×'MÑ'MÈaÓ'PÑ$ˆK˜Ùà×"Ñ"Ð#;Ô<Ø×ÒÂUÊKÐXÔYÚØ×"Ñ" 7Ô+Ø×"Ò"ÊÒP[Ð#\Ô]Ø×"Ñ" 8Õ,ð Gô ˜oÓ.´Ð5FÓ1GÑGˆØ�
‰
�>Ñ"×(Ñ(¨:´f×6LÑ6LÐ5MÈQÈÐN_Ð_aÐ)bÔcØ×6Ñ6´v×7MÑ7MÈÐsxÐ6Ôyà×(Ñ(Ð):¸OÕLùò[ es   ¨)LÚtext_stringsÚbyte_stringsc                 óž  — | j                   d   }g }d}d}t        |«      D ]`  \  }\  }}	}
|j                  |
j                  d«      «       |dk(  r|r|}|j	                  d|	› dt
        j                  › d|› d�«       |d	z  }Œb t        |«      }|D ]o  \  }}	}
|j                  |
j                  r|
j                  «       n|
j                  «       «       |j	                  d|	› dt
        j                  › d|› d�«       |d	z  }Œq t        t        t        |«      «      }d
j                  |«      }| j                   d   }|j	                  d«       |j	                  dt        |«      j                  «       › ddj                  |D �cg c]  }d|z  ‘Œ	 c}«      › d�«       | j!                  t"        j%                  dd«      «       d}t'        t(        «      D �]k  \  }}}|€Œ ||«      }t        |«      t        |«      dz
  k\  rŒ.|dk(  r|d	k(  sJ d«       ‚d}n|dk(  rd|› d�}nd|› �}|j	                  d|sdnd› d|› d|› d t        |«      › d!�	«       d"}t+        j,                  t+        j.                  |«      «      }|j	                  d#|› d$�d"¬%«       |j	                  d&t        |«      › d'|› d(�«       |j	                  |j1                  d)| j2                  «      «       |j	                  d*«       |j	                  d+«       |j	                  d,|j5                  | j2                  «      › d-�«       |j	                  d.«       �Œn |r|j	                  d/t        |«      › d!�«       t+        j,                  t+        j.                  |«      «      }|j	                  d0|› d$�d"¬%«       |j	                  d1«       |j	                  d2«       |r|j	                  d.«       |j	                  d3|j7                  t
        j                  «      › d4�«       |j	                  d5«       |dkD  rë|j	                  d6|d7k  rd8nd9› d:|› d;�«       |j	                  d<«       |j	                  d=«       |dk\  r|j	                  d>|› d?�«       |j	                  d@«       |j	                  dA«       |j	                  |j5                  | j2                  «      «       |j	                  dB«       |j	                  dC«       |j	                  dD«       |j	                  dB«       |t        |«      k  ræ|j	                  d6t        |«      d7k  rd8nd9› dE|› dFt        |«      › d;�«       |j	                  d<«       |j	                  dG«       |j	                  dC«       |j	                  dD«       |j	                  d@«       |j	                  dA«       |j	                  |j5                  | j2                  «      «       |j	                  dB«       |j	                  dB«       |j	                  dA«       |j	                  dHt        |«      › d;�«       |j	                  dI«       |j	                  |j5                  | j2                  «      «       |j	                  dB«       |j	                  dB«       |t        |«      k  r"| j9                  dJ|› �t        |«      |z
  |«       |j	                  dB«       y c c}w )KNr
  rä   r   rå  ú#define rµ  rÌ  rÍ  r   rô   r  Ú{z*const struct { const unsigned int length: z; } index[] = {r  z{%d}ú};ÚDecompressStringzStringTools.cFé
   r"   zBCompression algorithm no. 1 must be 'zlib' to be used as fallback.z(CYTHON_COMPRESS_STRINGS) != 0r'   z(CYTHON_COMPRESS_STRINGS) == z+ && __PYX_LIMITED_VERSION_HEX >= 0x030e0000rO  ÚifÚelifz /* compression: z (z
 bytes) */Tzconst char* const cstring = "rÞ  rß  z1PyObject *data = __Pyx_DecompressString(cstring, rm  r2  rÒ  z7const char* const bytes = __Pyx_PyBytes_AsString(data);z#if !CYTHON_ASSUME_SAFE_MACROSz,if (likely(bytes)); else { Py_DECREF(data); ú }râ  z#else /* compression: none (zconst char* const bytes = "zPyObject *data = NULL;z*CYTHON_UNUSED_VAR(__Pyx_DecompressString);zPyObject **stringtab = rÙ  zPy_ssize_t pos = 0;rÄ  rÀ  r¯   rÁ  ú i = 0; i < ú; i++) {z*Py_ssize_t bytes_length = index[i].length;zIPyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);zif (likely(string) && i >= z#) PyUnicode_InternInPlace(&string);zif (unlikely(!string)) {zPy_XDECREF(data);rO  zstringtab[i] = string;zpos += bytes_length;z i = z; i < zHPyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);zfor (Py_ssize_t i = 0; i < z2if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {zstringtab + )r#  rŸ   r\  Úencoder  r   rå  r³   r  rv  ru  rµ   r·   r  r¸   Ú
bit_lengthrö  r�  rw  rÅ   Úcompression_algorithmsr
   rã  rÞ  Úerror_goto_if_nullræ  r·  r¶  rS  )rí   rï  rð  ÚdefinesÚbytes_valuesÚfirst_internedÚstringtab_posr<  Úis_internedr.  rÝ  Ústringtab_bytes_startrÓ   ÚindexÚconcat_bytesr=  ÚlengthÚhas_ifÚalgo_numberÚ	algo_namer   Úcompressed_bytesÚguardÚescaped_bytess                           rò   ræ  z'GlobalState.generate_pystring_constants  sl  € à—*‘*Ð4Ñ5ˆàˆØ,.ˆØ+,ˆô .7°|Ö-DÑ)ˆAÑ)�˜U DØ×Ñ §¡¨GÓ 4Ô5Ø Ò#©Ø!"�Ø�M‰M˜H U G¨1¬V×-CÑ-CÐ,DÀAÀmÀ_ÐTUÐVÔWØ˜QÑ‰Mð .Eô 47°|Ó3DÐó +‰NˆAˆu�dØ×Ñ°T·]²] §¡Ô 1ÈÏÉÓHYÔZØ�M‰M˜H U G¨1¬V×-CÑ-CÐ,DÀAÀmÀ_ÐTUÐVÔWØ˜QÑ‰Mð +ô
 ”Sœ˜lÓ+Ó,ˆØ—x‘x Ó-ˆà�J‰JÐ'Ñ(ˆØ	�‰�Œð 	
�‰ð*Ü*-¨e«*×*?Ñ*?Ó*AÐ)Bð CàŸ8™8Á5Ó$IÁ5¸ V¨f£_À5Ñ$IÓJÐKÈ3ðPô	
ð 	×Ñœk×5Ñ5Ð6HÈ/ÓZÔ[àˆÜ08Ô9O×0PÑ,ˆK˜ HØÐØÙ'¨Ó5ÐÜÐ#Ó$¬¨LÓ(9¸BÑ(>Ò>Øà˜FÒ"à" aÒ'ÐnÐ+mÓnÐ'Ø8‘Ø˜fÒ$à7¸°}ÐDoÐp‘à7¸°}ÐE�à�G‰G�a¡F™°Ð7°q¸¸Ð?PÐQZÐP[Ð[]Ô^aÐbrÓ^sÐ]tÐt~Ðô  AØˆFÜ*×?Ñ?Ü×1Ñ1Ð2BÓCóEˆMà�G‰GÐ3°M°?À"ÐEÈDˆGÔQØ�G‰GÐGÌÐL\ÓH]ÐG^Ð^`ÐalÐ`mÐmoÐpÔqØ�G‰G�A×(Ñ(¨°·±ÓAÔBà�G‰GÐMÔNØ�G‰GÐ4Ô5Ø�G‰GÐCÀAÇLÁLÐQU×Q`ÑQ`ÓDaÐCbÐbeÐfÔgØ�G‰G�HÖð9 1Qñ< Ø�G‰GÐ2´3°|Ó3DÐ2EÀZÐPÔQÜ&×;Ñ;Ü×-Ñ-¨lÓ;ó=ˆà	�‰Ð-¨m¨_¸BÐ?ÀdˆÔKØ	�‰Ð(Ô)Ø	�‰Ð<Ô=ÙØ�G‰G�HÔð 	
�‰Ð)¨!×*LÑ*LÌV×McÑMcÓ*dÐ)eÐefÐgÔhØ	�‰Ð%Ô&ð ! 1Ò$ð �G‰G�eÐ%:¸UÒ%B™EÈÐUÐUaÐbwÐaxð  yBð  Cô  DØ�G‰GÐ@ÔAà�G‰GÐ_Ô`Ø Ò"Ø—‘Ð5°nÐ5EÐEhÐiÔjØ�G‰GÐ.Ô/Ø�G‰GÐ'Ô(Ø�G‰G�A—L‘L §¡Ó1Ô2Ø�G‰G�CŒLà�G‰GÐ,Ô-Ø�G‰GÐ*Ô+Ø�G‰G�CŒLð !¤3 u£:Ò-Ø�G‰G�e¤S¨£Z°%Ò%7™E¸\ÐJÈ%ÐPeÐOfÐflÔmpÐqvÓmwÐlxð  yBð  Cô  DØ�G‰GÐ@ÔAà�G‰GÐ^Ô_Ø�G‰GÐ,Ô-Ø�G‰GÐ*Ô+à�G‰GÐ.Ô/Ø�G‰GÐ'Ô(Ø�G‰G�A—L‘L §¡Ó1Ô2Ø�G‰G�CŒLà�G‰G�CŒLà	�‰Ð#Ô$ð 	
�‰Ð-¬c°%«j¨\¸ÐCÔDØ	�‰ÐDÔEØ	�‰�—‘˜TŸ_™_Ó-Ô.Ø	�‰�ŒØ	�‰�Œð
 !¤3 u£:Ò-Ø×&Ñ&¨Ð6KÐ5LÐ'MÌsÐSXËzÐ\qÑOqÐstÔuà	�‰��ùòS %Js   Æ[
c                 ó¨  — | j                   d   }dt        j                  › dt        j                  › d�}| j                  sg|j                  |«       |j                  dt        j                  › d�«       |j                  d«       |j                  «        |j                  d«       y d	}d
}d
}d
}d
}d
}| j                  D ]ª  }	|	j                  }
|
j                  sXt        |t        |
j                  «      |
j                  z
  «      }t        ||
j                  «      }t        ||
j                  «      }t        |t        |	j                  «      «      }t        ||
j                   d
   «      }Œ¬ |j#                  t%        j&                  d|j)                  «       › d|j)                  «       › d|j)                  «       › d|j)                  «       › d|j)                  «       › d|j)                  «       › d�«      «       | j+                  t,        j/                  dd«      «       |j                  |«       |j                  d«       |j                  d«       | j                  D ]  }	|	j1                  |d«       Œ |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  «        |j                  d«       t        | j                  «      }| j                   d   j                  dt        j2                  › d|› d�«       | j5                  t        j2                  |d¬«       y ) Nr  zint __Pyx_CreateCodeObjects(r0  r=  r1  r2  rM  rO  iÿ  r   z=        typedef struct {
            unsigned int argcount : z.;
            unsigned int num_posonly_args : z-;
            unsigned int num_kwonly_args : z%;
            unsigned int nlocals : z#;
            unsigned int flags : z(;
            unsigned int first_line : z;;
        } __Pyx_PyCode_New_function_description;
        Ú
NewCodeObjrE  z)PyObject* tuple_dedup_map = PyDict_New();z*if (unlikely(!tuple_dedup_map)) return -1;ÚbadzPy_DECREF(tuple_dedup_map);zbad:rN  r  rÍ  rÌ  rÎ  FrÏ  )r#  r   r8  r9  r(  r7  r  rR  Údef_nodeÚis_generator_expressionr¸   r³   r#  Únum_kwonly_argsÚnum_posonly_argsÚvarnamesr±  rH  r   Údedentrý  rö  r�  rw  Úgenerate_codeobjr~  rÉ  )rí   r=  Úinit_functionÚ	max_flagsÚmax_func_argsÚmax_kwonly_argsÚmax_posonly_argsÚmax_varsÚmax_liner  r  Úcode_object_counts               rò   r¼  z)GlobalState.generate_codeobject_constants¤  sý  € Ø�J‰JÐ)Ñ*ˆà*¬6×+GÑ+GÐ*HÈÌ6×KhÑKhÐJiÐijÐkð 	ð ×(Ò(Ø×Ñ˜mÔ,Ø�G‰GÐ(¬×)FÑ)FÐ(GÀrÐJÔKØ�G‰G�KÔ Ø×ÑÔ Ø�G‰G�CŒLØð ˆ	ØˆØˆØÐØˆØˆØ×-Ô-ˆDØ—}‘}ˆHØ×3Ò3Ü # M´3°x·}±}Ó3EÈ×H`ÑH`Ñ3`Ó a�Ü"% o°x×7OÑ7OÓ"P�Ü#&Ð'7¸×9RÑ9RÓ#SÐ Ü˜8¤S¨¯©Ó%7Ó8ˆHÜ˜8 X§\¡\°!¡_Ó5‰Hð .ð 	
�‰Œh�o‰oð #%à%2×%=Ñ%=Ó%?Ð$@ð A-Ø-=×-HÑ-HÓ-JÐ,Kð L,Ø,;×,FÑ,FÓ,HÐ+Ið J$Ø$,×$7Ñ$7Ó$9Ð#:ð ;"Ø"+×"6Ñ"6Ó"8Ð!9ð :'Ø'/×':Ñ':Ó'<Ð&=ð >	ð	ó 	ô 		ð 	×Ñœk×5Ñ5°lÐDWÓXÔYà	×Ñ˜-Ô(à	�‰Ð;Ô<Ø	�‰Ð<Ô=à×-Ô-ˆDØ×!Ñ! ! UÕ+ð .ð 	
�‰Ð-Ô.Ø	�‰�Ôà	�‰�ŒØ	�‰Ð-Ô.Ø	�‰�ÔØ	×ÑÔØ	�‰�Œä × 9Ñ 9Ó:ÐØ�
‰
�>Ñ"×(Ñ(¨:´f×6MÑ6MÐ5NÈaÐPaÐObÐbdÐ)eÔfà×6Ñ6´v×7NÑ7NÐPaÐv{Ð6Õ|rô   c           	      ó  — | j                   j                  «       D �cg c]c  }|j                  t        |j                  j                  d«      «      |j                  j                  d«      |j                  |j                  |f‘Œe }}|j                  «        |sy t        |«      }| j                  d   j                  dt        j                  › d|› d�«       | j                  t        j                  |d¬«       g }g g}g }d}d	}|D ]â  \  }	}
}
}}}|j                  }|	d
k(  r|j                  ||f«       Œ/t        j                   |«      }|j#                  «       }|dk  rw|dz   dz  dt        |«      dz
  z  kD  r=|j                  g «       dd t        |«      dz
   }|dz   dz  dt        |«      dz
  z  kD  rŒ=|dz  }|d   j                  ||› |› �f«       ŒÐ|j                  ||f«       Œä | j                  d   }| j                  d   }dt$        dt$        dt&        fd„}dt(        j*                  fd„}dt$        fd„}d:dt&        dt(        j*                  fd„}d}|r®|j                  d«       |j                  d|j-                  t        j                  «      › d�«        ||d d!|«        ||||«        ||t        |«      «        ||| j.                  d"«       |j                  d#«       |j                  d#«       |t        |«      z  }|dkD  �r|j                  d«       |j                  d|j-                  t        j                  «      › d$|› d�«       g d%¢}d&}d}t1        |d«      D ]`  \  }}|sŒ	d'd|dz
  z  › �} |||||   |«        |||||z   «       |› d(|› d)�}|t        |«      z  }||t        |«      k(  r|nd*|› d+|› d,�z  }Œb  |||«       t        |«      d-k  rd.nd/} ||| j.                  |› d0|› d1�«       |j                  d#«       |j                  d#«       ||z  }|�rd2„ }|j                  d«       |j                  d|j-                  t        j                  «      › d$|› d�«       d3j3                  |D �cg c]  } ||d   «      ‘Œ c}«      j5                  d4«      } |j                  d5t7        j8                  | «      › d6�«        ||||«        ||t        |«      «       |j                  d7«        ||| j.                  d8«       |j                  d9«       |j                  d#«       |j                  d#«       | j;                  |j-                  t        j                  «      ||«       y c c}w c c}w );Nr˜  r  rÍ  rÌ  rÎ  FrÏ  r   rP  r¤   é?   é   r   ÚLLr   rä   r  r
  rD  rp  Ú	constantsc                 ó†   — dj                  |D �cg c]  }|d   ‘Œ	 c}«      }| j                  |› d|› d|› d�«       y c c}w )Nr  r   z const z[] = {rô  )r  r  )r=  rD  rp  r%  rf  r{  s         rò   Ústore_arrayz7GlobalState.generate_num_constants.<locals>.store_array	  sG   € à—X‘X©YÓ7©Y¨˜q ›t¨YÑ7Ó8ˆFØ�G‰G�u�g˜W T F¨'°&°¸Ð=Õ>ùò 8s   �>r  c                 óF   — |dk  rdnd}| j                  d|› d|› d�«       y )NrÀ  r¯   rÁ  rÄ  rú  rû  ©r  )r=  r  rÇ  s      rò   Úgenerate_forloop_startzBGlobalState.generate_num_constants.<locals>.generate_forloop_start	  s*   € Ø$'¨%¢K™5°\ˆLØ�G‰G�e˜L˜>¨°c°U¸)ÐDÕErô   Úrhs_codec                 óp   — | j                  d|› d�«       | j                  | j                  d|«      «       y )Nznumbertab[i] = rÙ  znumbertab[i])r  rÿ  )r=  Ú	error_posr+  s      rò   Úassign_constantz;GlobalState.generate_num_constants.<locals>.assign_constant	  s0   € Ø�G‰G�o h Z¨qÐ1Ô2Ø�G‰G�A×(Ñ(¨¸ÓCÕDrô   Ústart_offsetc           
      ó�   — t         j                  }t        |«      D ](  \  }}|d   }| j                  d|› d|› d||z   › d�«       Œ* y )Nr   rò  rµ  rÌ  rÍ  )r   Únumbertab_cnamerŸ   r  )r   r%  r/  r1  r<  rf  r.  s          rò   Údefine_constantsz<GlobalState.generate_num_constants.<locals>.define_constants	  sU   € ô $*×#9Ñ#9ˆOÜ! )Ö,‘��1Ø˜q™T�Ø—‘ ¨¨¨q°Ð0AÀÀ<ÐRSÑCSÐBTÐTUÐVÕWñ -rô   ró  zPyObject **numbertab = rÙ  Úc_constantsÚdoublez"PyFloat_FromDouble(c_constants[i])rO  z + )rP  Úint8_tÚint16_tÚint32_tÚint64_tú%sÚcint_constants_z[i - rÍ  z(i < z ? z : %s)r&   ÚPyLong_FromLongÚPyLong_FromLongLongrŽ  r=  c                 óÖ   — | dk  }|r|  } t        «       }| r#| dz  }d|   }|j                  |«       | dz  } | rŒ#|sy|r|j                  t        d«      «       |j                  «        |S )Nr   é   s    0123456789abcdefghijklmnopqrstuvé   ó   0ó   -)r’   r\  r¿   Úreverse)ÚnumberÚis_negÚdigitsÚdigitÚ
digit_chars        rò   Ú	to_base32z5GlobalState.generate_num_constants.<locals>.to_base32T	  sw   € Ø%¨™z�ÙØ$˜W�Fä"›�ÙØ)/°"©�EØ.QÐRWÑ.X�JØ—M‘M *Ô-Ø˜q‘L�Fò	 ñ
 ØáØ—M‘M¤# d£)Ô,Ø—‘Ô Ø�rô   s   \000rŽ   zconst char* c_constant = "rÞ  zchar *end_pos;z+PyLong_FromString(c_constant, &end_pos, 32)zc_constant = end_pos + 1;©r   )r)  r{  rÎ  r³   rÍ  ÚlstriprÏ  rÐ  r#  r  r   r1  rÉ  r.  r\  r   Ústr_to_numberrý  r(   rµ   rü  rÁ  r¶  ræ  rŸ   r  r�  r
   rã  rS  )!rí   rf  rÕ  Úconstant_countÚfloat_constantsÚint_constants_by_bytesizeÚlarge_constantsÚint_constant_countÚ
int_suffixrÎ  rÓ   rÍ  rÏ  r.  Únumber_valuerý  r=  r   r'  r*  r.  r2  Úconstant_offsetÚ	int_typesÚarray_accessÚint_constants_seenÚ	byte_sizer%  Ú
array_nameÚ	read_itemÚ	capi_funcrH  r|  s!                                    rò   r¾  z"GlobalState.generate_num_constantså  sª  € à×/Ñ/×6Ñ6Ô8ó:Ù8�að —9‘9œc !§'¡'§.¡.°Ó"5Ó6¸¿¹¿¹ÀsÓ8KÈQÏWÉWÐVW×VbÑVbÐdeÒfØ8ð 	ð :à�‰ŒÙØä˜V›ˆØ�
‰
�>Ñ"×(Ñ(¨:´f×6LÑ6LÐ5MÈQÈ~ÐN^Ð^`Ð)aÔbà×6Ñ6´v×7MÑ7MÈ~ÐrwÐ6ÔxàˆØ%' DÐ!ØˆØÐØˆ
ã39Ñ/ˆG�Q˜˜5 *¨aØ—G‘GˆEØ˜'Ò!Ø×&Ñ&¨¨zÐ':Õ;ä$×2Ñ2°5Ó9�Ø)×4Ñ4Ó6�
Ø Ò#Ø%¨™>¨aÑ/°!¼Ð<UÓ8VÐYZÑ8ZÑ2[Ò[Ø1×8Ñ8¸Ô<ð
 &*Ð*M¬3Ð/HÓ+IÈAÑ+MÐ%N˜
ð &¨™>¨aÑ/°!¼Ð<UÓ8VÐYZÑ8ZÑ2[Ó[ð '¨!Ñ+Ð&Ø-¨bÑ1×8Ñ8¸%ÀLÀ>ÐR\ÐQ]ÐA^Ð9_Õ`à#×*Ñ*¨E°<Ð+@ÕAð% 4:ð( �J‰JÐ'Ñ(ˆØ—*‘*Ð4Ñ5ˆð	?¤ð 	?¬Sð 	?¼Tó 	?ð
	F¬6×+<Ñ+<ó 	Fð	E´Có 	Eñ	X´ð 	XÄV×EVÑEVó 	Xð ./ˆáØ�G‰G�CŒLØ�G‰GÐ-¨a×.PÑ.PÔQW×QgÑQgÓ.hÐ-iÐijÐkÔlá˜˜=¨(°OÔDÙ˜W o°ÔGá" 1¤c¨/Ó&:Ô;Ù˜A˜tŸ™Ð0TÔUØ�G‰G�CŒLà�G‰G�CŒLØœs ?Ó3Ñ3ˆOà Ó!Ø�G‰G�CŒLØ�G‰GÐ-¨a×.PÑ.PÔQW×QgÑQgÓ.hÐ-iÐilÐm|Ðl}Ð}~Ðô  AâGˆIØˆLØ45Ðä(1Ð2KÈQÖ(OÑ$�	˜9Ù Øà.¨q°YÀ±]Ñ/CÐ.DÐE�
Ù˜A˜z¨9°YÑ+?ÀÔKÙ  ¨)°_ÐGYÑ5YÔZà)˜l¨%Ð0BÐ/CÀ1ÐE�	Ø"¤c¨)£nÑ4Ð"ØØ!*¬cÐ2KÓ.LÒ!L‘IØ Ð!3Ð 4°C¸	°{À&ÐIñ‘ð )Pñ # 1Ð&8Ô9Ü-0Ð1JÓ-KÈqÒ-PÑ)ÐVkˆIÙ˜A˜tŸ™°9°+¸Q¸|¸nÈAÐ0NÔOØ�G‰G�CŒLà�G‰G�CŒLØÐ1Ñ1ˆOâòð& �G‰G�CŒLØ�G‰GÐ-¨a×.PÑ.PÔQW×QgÑQgÓ.hÐ-iÐilÐm|Ðl}Ð}~Ðô  AØ—}‘}¹Ó%O¹¸!¡i°°!±¥o¸Ñ%OÓP×WÑWÐX_Ó`ˆHØ�G‰GÐ0´×1TÑ1TÐU]Ó1^Ð0_Ð_aÐbÔcÙ˜W o°ÔGá" 1¤c¨/Ó&:Ô;Ø�G‰GÐ$Ô%Ù˜A˜tŸ™Ð0]Ô^Ø�G‰GÐ/Ô0Ø�G‰G�CŒLà�G‰G�CŒLà×"Ñ"Ø×.Ñ.¬v×/EÑ/EÓFØØõ	ùò_:ùòF &Ps   �A(U:ÒU?c                 óš  — |j                  d«       |j                  d«       |j                  d| › d�«       |j                  d|› d�«       |j                  d«       |j                  d«       |j                  d	«       |j                  d
«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d
«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       y )Nz#if CYTHON_IMMORTAL_CONSTANTSró  zPyObject **table = rÙ  zfor (Py_ssize_t i=0; i<z; ++i) {ú-#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADINGz#if PY_VERSION_HEX < 0x030E0000zEif (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)rá  z5if (PyUnstable_Object_IsUniquelyReferenced(table[i]))râ  z3Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);rO  z5Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);r)  )Úarray_cnamerL  rÕ  s      rò   rS  z!GlobalState.immortalize_constantsz	  s  € à�‰Ð4Ô5Ø�‰�SÔØ�‰Ð*¨;¨-°qÐ9Ô:Ø�‰Ð.¨~Ð.>¸iÐHÔIØ�‰ÐDÔEð 	�‰Ð6Ô7Ø�‰Ð\Ô]Ø�‰�WÔØ�‰ÐLÔMØ�‰�XÔØ�‰�SÔØ�‰ÐJÔKØ�‰�SÔØ�‰�WÔØ�‰ÐLÔMØ�‰�XÔØ�‰�SÔØ�‰�SÔØ�‰�XÕrô   c                 óî   — || j                   v rX| j                   |   }t        |j                  «      t        |j                  «      k(  sJ ‚|j                  |j                  k(  sJ ‚y|| j                   |<   y)NFT)r  r(   rÐ   rŸ  )rí   r.  rZ  rù   s       rò   r®  zGlobalState.should_declare˜	  sj   € Ø�D×(Ñ(Ñ(Ø×(Ñ(¨Ñ/ˆEÜ�u—z‘z“?¤c¨%¯*©*£oÒ5Ð5Ð5Ø—:‘: §¡Ò+Ð+Ð+Øà*/ˆD× Ñ  Ñ'Ørô   c                 óä   — |j                  «       }	 | j                  |   }|S # t        $ rC t        | j                  «      }| j                  j                  |«       || j                  |<   Y |S w xY wrü   )Úget_filenametable_entryrü  rZ   r³   r  r\  )rí   Úsource_descrZ  r  s       rò   Úlookup_filenamezGlobalState.lookup_filename¦	  sv   € Ø×3Ñ3Ó5ˆð	/Ø×'Ñ'¨Ñ.ˆEð
 ˆøô	 ò 	/Ü˜×*Ñ*Ó+ˆEØ×Ñ×%Ñ% kÔ2Ø).ˆD×Ñ Ò&Øˆð		/ús   ’# £AA/Á.A/c                 ó*  — 	 | j                   |   S # t        $ r Y nw xY w|j                  dd¬«      }|D �cg c]-  }dd|v r"|j                  dd«      j                  dd	«      n|z   ‘Œ/ nc c}w }}|s|j	                  d
«       || j                   |<   |S )Nr�  rŽ  )r  Úerror_handlingz * rQ  r´  z.*[inserted by cython to avoid comment closer]/r³  z-/[inserted by cython to avoid comment start]*rP  )r  rZ   Ú	get_linesr·  r\  )rí   ra  Úsource_filerk  ÚFs        rò   Úcommented_file_contentsz#GlobalState.commented_file_contents°	  sÀ   € ð	Ø×+Ñ+¨KÑ8Ð8øÜò 	Ùð	úà!×+Ñ+°WÈXÐ+ÓVˆñ $ó
ñ $�ð ð
 ˜D‘[ð	 —‘ØÐJóç‘'ØÐIôà&*ó,ñ $ùò
ˆð 
ñ �!—(‘(˜2”,Ø01ˆ× Ñ  Ñ-Øˆs   ‚ ‘	œ·2A*c                 ó„   — |r>|| j                   vr/| j                   j                  |«       |j                  | |¬«       yyy)a  
        Adds code to the C file. utility_code should
        a) implement __eq__/__hash__ for the purpose of knowing whether the same
           code has already been included
        b) implement put_code, which takes a globalstate instance

        See UtilityCode.
        rí  N)r  rb  r"  )rí   r  r!  s      rò   rö  zGlobalState.use_utility_codeÆ	  sC   € ñ ˜L°×0BÑ0BÑBØ×Ñ×"Ñ" <Ô0Ø×!Ñ! $°Ð!Õ8ð Cˆ<rô   c                 ó`  — |€y |j                   r| j                  |j                   «       |j                  r| j                  |j                  «       ddlm} |j                  |j                  «      D ]9  }t        |d«      sŒ|j                  |usŒ| j                  |j                  «       Œ; y )Nr   r�  rZ  )
r  rö  Úutility_code_definitionrP  rž  Úget_all_subtypesrÐ   rª   rZ  Úuse_entry_utility_code)rí   rZ  rž  Útps       rò   rm  z"GlobalState.use_entry_utility_codeÓ	  s‡   € Øˆ=ØØ×ÒØ×!Ñ! %×"4Ñ"4Ô5Ø×(Ò(Ø×!Ñ! %×"?Ñ"?Ô@Ý Ø×-Ñ-¨e¯j©jÖ9ˆBÜ�r˜7Õ#¨¯©¸Ò(=Ø×+Ñ+¨B¯H©HÕ5ñ :rô   rü   r•  ©T)rP  rP  )3r  r  r	  r«  r5  r@  ró   r>  rA  rI  rK  rG  r[  r_  rg  ri  rn  rr  rx  rz  r,  r�  r†  rw  rc  r‰  r”  r‹  rq  r(   rk  r¤  r  r²  r°  rP  rÉ  r»  rº  r½  rµ   ræ  r¼  r¾  rÌ   rS  r®  rb  rh  rö  rm  r  rô   rò   r+  r+  Ú  s  „ ð: €Jò*€KòZ€Mó!ò8/9òb<ò
ò.ò.!ò`Gó
.óòóòóòóòò?òóò1ò
òó.ð9¨Có 9ò
ò
ò	!ò
 ò&ó~ò(òTcò:3MðjL¸ð LÈDó Lò\?}òBSðj ñó ðò:òòó,9ó
6rô   r+  c                 ót   ‡‡— | j                   Št        j                  ‰«      Šˆfd„}ˆfd„}t        ||«      S )Nc                 ó(   •—  ‰| j                   «      S rü   )Ú	funcstate)rí   Úattribute_ofs    €rò   r   z!funccontext_property.<locals>.getã	  s   ø€ Ù˜DŸN™NÓ+Ð+rô   c                 ó4   •— t        | j                  ‰|«       y rü   )rÉ   rr  )rí   rÍ  rD  s     €rò   rÈ   z!funccontext_property.<locals>.setå	  s   ø€ Ü�—‘  eÕ,rô   )r  r   Ú
attrgetterrÂ   )r  r   rÈ   rs  rD  s      @@rò   Úfunccontext_propertyrv  à	  s3   ù€ Ø�=‰=€DÜ×&Ñ& tÓ,€Lô,ô-ä�C˜ÓÐrô   c                   ó   — e Zd Zdd„Zy)ÚCCodeConfigc                 ó.   — || _         || _        || _        y rü   )Úemit_code_commentsr;  Úc_line_in_traceback)rí   r;  rz  r{  s       rò   ró   zCCodeConfig.__init__ï	  s   € Ø"4ˆÔØ*ˆÔØ#6ˆÕ rô   N)TTT)r  r  r	  ró   r  rô   rò   rx  rx  ê	  s   „ ô
7rô   rx  c                   óü  — e Zd ZdZ ej
                  d ¬«      dŸd„«       Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                  d
„ «       Zd„ Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd d„Zd¡d„Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d¢d%„Z)d£d&„Z*d'„ Z+d(„ Z,d¡d)„Z-d*„ Z.d+„ Z/d¡d,„Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d¡d1„Z5d2„ Z6e7d3„ «       Z8e7d4„ «       Z9d5„ Z:d6„ Z;d¤d7„Z<d¥d8„Z=ej                  d9„ «       Z>ej                  d:„ «       Z?ej                  d;„ «       Z@d<„ ZAej                  d=„ «       ZBej                  d>„ «       ZCd?„ ZDd@eEfdA„ZFej                  dB„ «       ZGej                  dC„ «       ZHej                  dD„ «       ZIej                  dE„ «       ZJej                  dF„ «       ZKdG„ ZLdH„ ZMdI„ ZN	 	 d¦dJ„ZOdKePfdL„ZQdM„ ZRdN„ ZSdO„ ZTeUfdP„ZVdQ„ ZWdR„ ZXdS„ ZYdT„ ZZdU„ Z[dV„ Z\d¥dW„Z]d¥dX„Z^d§dY„Z_d§dZ„Z`d¨d[„Zad¨d\„Zbd]„ Zcd^„ Zdd_„ Zed`„ Zfda„ Zgdb„ Zhdc„ Zidd„ Zjde„ Zkdf„ Zldg„ Zmdh„ Zndi„ Zodj„ Zpdk„ Zqdl„ Zrd©dm„Zsdn„ Ztdo„ Zudp„ Zvd¥dq„Zwdªdr„Zxd«ds„Zydt„ Zzdu„ Z{d«dv„Z|d¡dw„Z}dx„ Z~dy„ Zd¬dz„Z€d¬d{„Z�d|„ Z‚d}„ Zƒd­d~„Z„d®d„Z…d¥d€„Z†d�„ Z‡d‚„ Zˆdƒ„ Z‰d„„ ZŠd…„ Z‹d†„ ZŒd®d‡„Z�d®dˆ„ZŽd¥d‰„Z�d®dŠ„Z�d‹„ Z‘dŒ„ Z’d®d�„Z“d¡dŽ„Z”d¯d�„Z•d®d�„Z–d‘„ Z—d’„ Z˜d°d“„Z™d”„ Zšd•„ Z›d®d–„Zœd—„ Z�d¢d˜„ZžeE�j?                  d™dš«      fd›„Z dœ„ Z¡d�„ Z¢dž„ Z£y)±rÖ  a¦  
    Utility class to output C code.

    When creating an insertion point one must care about the state that is
    kept:
    - formatting state (level, bol) is cloned and used in insertion points
      as well
    - labels, temps, exc_vars: One must construct a scope in which these can
      exist by calling enter_cfunc_scope/exit_cfunc_scope (these are for
      sanity checking and forward compatibility). Created insertion points
      looses this scope and cannot access it.
    - marker: Not copied to insertion point
    - filename_table, filename_list, input_file_contents: All codewriters
      coming from the same root share the same instances simultaneously.
    ©Úcreate_fromNc                 ó´  — |€
t        «       }|| _        d | _        d | _        g | _        d | _        d | _        d | _        d| _        d| _	        d| _
        |�„| j                  |j                  «       |j
                  | _        |r3|j                  | _        |j                  | _
        |j                  | _	        |j                  | _        |j                  | _        y y )Nr   r   )r   ÚbufferÚlast_posÚlast_marked_posÚpyclass_stackrr  r   r!  r$   Ú
call_levelÚbolr.  )rí   r~  r€  Úcopy_formattings       rò   ró   zCCodeWriter.__init__
  sÆ   € àˆ>¤L£N˜6ØˆŒØˆŒØ#ˆÔØˆÔàˆŒØˆÔØˆÔØˆŒ
ØˆŒØˆŒàÐ"à×!Ñ! +×"9Ñ"9Ô:Ø(×2Ñ2ˆDŒNáØ(×.Ñ.�”
Ø&Ÿ?™?�”Ø"-×"8Ñ"8�”Ø'×0Ñ0ˆDŒMØ#.×#>Ñ#>ˆDÕ ð #rô   c                 ó    — t        |||«      }|S rü   ©rÖ  )rí   r~  r€  r†  rµ  s        rò   Ú
create_newzCCodeWriter.create_new/
  s   € ô ˜[¨&°/ÓBˆØˆrô   c                 óP   — | j                   �J ‚|| _         |j                  | _        y rü   )r   r!  )rí   Úglobal_states     rò   r.  zCCodeWriter.set_global_state5
  s*   € Ø×ÑÐ'Ð'Ð'Ø'ˆÔØ'×3Ñ3ˆÕrô   c                 ó:   — | j                   j                  |«       y rü   )r€  Úcopyto)rí   r  s     rò   r�  zCCodeWriter.copyto:
  s   € Ø�‰×Ñ˜1Õrô   c                 ó6   — | j                   j                  «       S rü   )r€  Úgetvaluerý   s    rò   r�  zCCodeWriter.getvalue=
  s   € Ø�{‰{×#Ñ#Ó%Ð%rô   c                 óR   — d|v r| j                  |«       y | j                  |«       y ©Nr8  )Ú_write_linesÚ_write_to_buffer©rí   rÇ  s     rò   r  zCCodeWriter.write@
  s%   € Ø�1‰9Ø×Ñ˜aÕ à×!Ñ! !Õ$rô   c                 óÐ   — | j                   r| j                   d d nd}| j                  j                  j                  |g|j	                  d«      z  «       | j                  |«       y )Nr   ©Nr   r8  )r‚  r€  Úmarkersr÷  r¡  r“  )rí   rÇ  Úfilename_lines      rò   r’  zCCodeWriter._write_linesF
  sU   € ð
 59×4HÒ4H˜×,Ñ,¨R¨aÑ0ÈiˆØ�‰×Ñ×"Ñ" M ?°Q·W±W¸T³]Ñ#BÔCà×Ñ˜aÕ rô   c                 ó:   — | j                   j                  |«       y rü   )r€  r  r”  s     rò   r“  zCCodeWriter._write_to_bufferP
  s   € Ø�‰×Ñ˜!Õrô   c                 ó^   — | j                  | | j                  j                  «       d¬«      }|S )NT)r~  r€  r†  )r‰  r€  r6  r÷  s     rò   r6  zCCodeWriter.insertion_pointS
  s)   € Ø—‘¨D¸¿¹×9TÑ9TÓ9VÐhl�ÓmˆØˆrô   c                 ó   — t        | ¬«      S )z�
        Creates a new CCodeWriter connected to the same global state, which
        can later be inserted using insert.
        r}  rˆ  rý   s    rò   Ú
new_writerzCCodeWriter.new_writerW
  s   € ô
  tÔ,Ð,rô   c                 ó‚   — |j                   | j                   u sJ ‚| j                  j                  |j                  «       y)zË
        Inserts the contents of another code writer (created with
        the same global state) in the current location.

        It is ok to write to the inserted writer also after insertion.
        N)r   r€  Úinsert)rí   rÕ  s     rò   rž  zCCodeWriter.insert^
  s4   € ð ×!Ñ! T×%5Ñ%5Ñ5Ð5Ð5Ø�‰×Ñ˜6Ÿ=™=Õ)rô   c                  ó   — y rü   r  rý   s    rò   rU  zCCodeWriter.label_counteri
  s   € Ø!rô   c                  ó   — y rü   r  rý   s    rò   rX  zCCodeWriter.return_labelk
  ó   € Ø rô   c                  ó   — y rü   r  rý   s    rò   rT  zCCodeWriter.error_labelm
  ó   € Ørô   c                  ó   — y rü   r  rý   s    rò   rV  zCCodeWriter.labels_usedo
  r£  rô   c                  ó   — y rü   r  rý   s    rò   rZ  zCCodeWriter.continue_labelq
  s   € Ø"rô   c                  ó   — y rü   r  rý   s    rò   r[  zCCodeWriter.break_labels
  r£  rô   c                  ó   — y rü   r  rý   s    rò   Úreturn_from_error_cleanup_labelz+CCodeWriter.return_from_error_cleanup_labelu
  s   € Ø/3rô   c                  ó   — y rü   r  rý   s    rò   r\  zCCodeWriter.yield_labelsw
  r¡  rô   c              #   óü   K  — t        ||«      D ]i  \  }}| j                  |«      sŒ|r| j                  |«       d}|�| j                  ||¬«       | j	                  |«       ||f–— | j                  |«       Œk y­w)aÒ  
        Helper for generating multiple label interceptor code blocks.

        @param new_labels: the new labels that should be intercepted
        @param orig_labels: the original labels that we should dispatch to after the interception
        @param skip_to_label: a label to skip to before starting the code blocks
        @param pos: the node position to mark for each interceptor block
        @param trace: add a trace line for the pos marker or not
        N)Útrace)rÒ   r›  Úput_gotoÚmark_posrQ  )rí   r“  Úorig_labelsÚskip_to_labelr±  r«  rx  Ú
orig_labels           rò   Úlabel_interceptorzCCodeWriter.label_interceptorz
  sy   è ø€ ô "% Z°Ö!=ÑˆE�:Ø—?‘? 5Ô)ØÙà—‘˜mÔ,Ø $�àˆØ—‘˜c¨�Ô/Ø�N‰N˜5Ô!Ø˜*Ð%Ò%Ø�M‰M˜*Õ%ñ ">ùs   ‚A:A<c                 ó8   — | j                   j                  |«      S rü   )rr  rW  ©rí   rD  s     rò   rW  zCCodeWriter.new_label“
  s   € ¨d¯n©n×.FÑ.FÀtÓ.LÐ'Lrô   c                 ó4   —  | j                   j                  |Ž S rü   )rr  rY  ©rí   r#  s     rò   rY  zCCodeWriter.new_error_label”
  ó   € Ð.L¨d¯n©n×.LÑ.LÈdÐ.SÐ'Srô   c                 ó4   —  | j                   j                  |Ž S rü   )rr  r|  rµ  s     rò   r|  zCCodeWriter.new_yield_label•
  r¶  rô   c                 ó6   — | j                   j                  «       S rü   )rr  rƒ  rý   s    rò   rƒ  zCCodeWriter.get_loop_labels–
  s   € ¨d¯n©n×.LÑ.LÓ.NÐ'Nrô   c                 ó8   — | j                   j                  |«      S rü   )rr  r‡  r…  s     rò   r‡  zCCodeWriter.set_loop_labels—
  s   € ¨d¯n©n×.LÑ.LÈVÓ.TÐ'Trô   c                 ó4   —  | j                   j                  |Ž S rü   )rr  rŒ  rµ  s     rò   rŒ  zCCodeWriter.new_loop_labels˜
  r¶  rô   c                 ó6   — | j                   j                  «       S rü   )rr  r�  rý   s    rò   r�  zCCodeWriter.get_all_labels™
  ó   € ¨d¯n©n×.KÑ.KÓ.MÐ'Mrô   c                 ó8   — | j                   j                  |«      S rü   )rr  r‘  r…  s     rò   r‘  zCCodeWriter.set_all_labelsš
  s   € ¨d¯n©n×.KÑ.KÈFÓ.SÐ'Srô   c                 ó6   — | j                   j                  «       S rü   )rr  r•  rý   s    rò   r•  zCCodeWriter.all_new_labels›
  r¼  rô   c                 ó8   — | j                   j                  |«      S rü   )rr  r™  r—  s     rò   r™  zCCodeWriter.use_labelœ
  s   € ¨d¯n©n×.FÑ.FÀsÓ.KÐ'Krô   c                 ó8   — | j                   j                  |«      S rü   )rr  r›  r—  s     rò   r›  zCCodeWriter.label_used�
  s   € ¨d¯n©n×.GÑ.GÈÓ.LÐ'Lrô   c                 ó(   — t        | |¬«      | _        y )N)rô  )rP  rr  rÇ  s     rò   Úenter_cfunc_scopezCCodeWriter.enter_cfunc_scope 
  s   € Ü& t°5Ô9ˆ�rô   c                 ó`   — | j                   €y | j                   j                  «        d | _         y rü   )rr  rs  rý   s    rò   rR  zCCodeWriter.exit_cfunc_scope£
  s&   € Ø�>‰>Ð!ØØ�‰×$Ñ$Ô&Øˆ�rô   c                 óô   — | j                   j                  d   }|j                  d|› d�«       | j                  |«       | j                  d«       | j                  d|› d�«       |r| j	                  «        yy)z›
        Init code helper function to start a cfunc scope and generate
        the prototype and function header ("static SIG {") of the function.
        r  zstatic CYTHON_SMALL_CODE ú; /*proto*/rP  ré  ú {N)r   r#  r  rÂ  Úput_declare_refcount_context)rí   Ú	signaturerô  r3  r>  s        rò   r7  zCCodeWriter.start_initcfunc©
  ss   € ð
 × Ñ ×&Ñ&Ð'>Ñ?ˆØ�‰Ð/°	¨{¸+ÐFÔGØ×Ñ˜uÔ%Ø�
‰
�2ŒØ�
‰
�W˜Y˜K sÐ+Ô,ÙØ×-Ñ-Õ/ð rô   c                 ó,  — |j                  |«      }d|j                  |«      › d|› d�}|r1| j                  d   j                  |j	                  dd«      dz   «       |r| j                  |«       | j                  d«       | j                  |dz   «       y )	Nré  rŽ  r=  r  úCYTHON_UNUSED rP  rÅ  rÆ  )Úmangle_internalrÑ  r   r  r·  rÂ  )	rí   Úclass_scopeÚreturn_typeÚc_slot_nameÚargs_signatureÚneeds_funcstateÚneeds_prototypeÚslotfunc_cnameÚdeclarations	            rò   Ústart_slotfunczCCodeWriter.start_slotfunc¶
  s’   € à$×4Ñ4°[ÓAˆØ × <Ñ <¸^Ó LÐMÈQÈ~ÐN^Ð^_Ð`ˆáØ×Ñ˜WÑ%×+Ñ+¨K×,?Ñ,?Ð@PÐRTÓ,UÐXeÑ,eÔfÙØ×"Ñ" ;Ô/Ø�
‰
�2ŒØ�
‰
�; Ñ%Õ&rô   c                 ól   — | j                  | j                  j                  ||«      j                  «      S rü   )rT  r   rg  r.  )rí   rd  re  s      rò   Ú
get_py_intzCCodeWriter.get_py_intÄ
  s1   € Ø×(Ñ(Ø×Ñ×*Ñ*¨9°hÓ?×EÑEó
ð 	
rô   c                 ól   — | j                  | j                  j                  ||«      j                  «      S rü   )rT  r   ri  r.  )rí   rd  rÏ  s      rò   Úget_py_floatzCCodeWriter.get_py_floatÉ
  s1   € Ø×(Ñ(Ø×Ñ×,Ñ,¨Y¸
ÓC×IÑIó
ð 	
rô   c                 óX   — | j                  | j                  j                  ||«      «      S rü   )rT  r   rn  )rí   r  rl  s      rò   rn  zCCodeWriter.get_py_constÎ
  s+   € Ø×(Ñ(Ø×Ñ×)Ñ)¨&°)Ó<ó
ð 	
rô   c                 óL   — | j                   j                  |«      j                  S rü   )r   rx  r.  r…  s     rò   rx  zCCodeWriter.get_string_constÓ
  s   € Ø×Ñ×0Ñ0°Ó6×<Ñ<Ð<rô   c                 ó8   — | j                   j                  |«      S rü   )r   rz  r…  s     rò   rz  z#CCodeWriter.get_pyunicode_ptr_constÖ
  s   € Ø×Ñ×7Ñ7¸Ó=Ð=rô   c                 óp   — | j                   j                  ||«      j                  }| j                  |«      S rü   )r   r,  r.  rT  )rí   rÝ  r+  r.  s       rò   r,  zCCodeWriter.get_py_string_constÙ
  s6   € Ø× Ñ ×4Ñ4Ø�*óß#™eð 	à×(Ñ(¨Ó/Ð/rô   c                 óV   — | j                  | j                  j                  |«      «      S rü   )rT  r   r�  )rí   r  s     rò   r�  z CCodeWriter.get_py_codeobj_constÞ
  s$   € Ø×(Ñ(¨×)9Ñ)9×)NÑ)NÈtÓ)TÓUÐUrô   c                 ój   — | j                  | j                  j                  |«      j                  «      S rü   )rT  r   rr  r.  ©rí   rÐ   s     rò   rr  z&CCodeWriter.get_argument_default_constá
  s+   € Ø×(Ñ(¨×)9Ñ)9×)TÑ)TÐUYÓ)Z×)`Ñ)`ÓaÐarô   c                 ó$   — | j                  |«      S rü   r„  r…  s     rò   rð  zCCodeWriter.internä
  s   € Ø×'Ñ'¨Ó-Ð-rô   c                 ó(   — | j                  |d¬«      S rƒ  r„  r…  s     rò   Úintern_identifierzCCodeWriter.intern_identifierç
  r‡  rô   c                 ó8   — | j                   j                  |«      S rü   )r   r_  r]  s     rò   r_  z'CCodeWriter.get_cached_constants_writerê
  s   € Ø×Ñ×;Ñ;¸FÓCÐCrô   c                 óš   — | j                   j                  €| j                  |«      S | j                   j                  j                  |«      S rü   )rr  rô  r¶  rT  ©rí   r.  s     rò   rT  z CCodeWriter.name_in_module_stateí
  s@   € Ø�>‰>×ÑÐ'ð ×8Ñ8¸Ó?Ð?Ø�~‰~×#Ñ#×8Ñ8¸Ó?Ð?rô   c                 ó,   — t         j                  › d| › �S r7  )r   r9  rö  s    rò   r¶  z,CCodeWriter.name_in_main_c_code_module_state÷
  s   € ô
 ×/Ñ/Ð0°°5°'Ð:Ð:rô   c                 ó,   — t         j                  › d| › �S r7  )r   r  rö  s    rò   Úname_in_slot_module_statez%CCodeWriter.name_in_slot_module_stateþ
  s   € ô ×0Ñ0Ð1°°E°7Ð;Ð;rô   c                 óh   — |j                   r|j                  S | j                  |j                  «      S rü   )Úis_py_class_scopeÚnamespace_cnamerT  rÇ  s     rò   Únamespace_cname_in_module_statez+CCodeWriter.namespace_cname_in_module_state  s.   € Ø×"Ò"Ø×(Ñ(Ð(à×,Ñ,¨U×-BÑ-BÓCÐCrô   c                 óh   — |j                   r| j                  |j                  «      S |j                  S rü   )Úis_extension_typerT  Útypeptr_cnamerß  s     rò   Útypeptr_cname_in_module_statez)CCodeWriter.typeptr_cname_in_module_state
  s.   € Ø×!Ò!Ø×,Ñ,¨T×-?Ñ-?Ó@Ð@à×%Ñ%Ð%rô   c                 ó‚  — | j                   r| j                  r| j                  «        | j                  j                  rB| j
                  r6| j
                  \  }}}| j                  d|› d|j                  «       › d�«       |r%|r| j                  |«       n| j                  |«       | j                  d«       d| _        y )Nz
#line z "r  r8  r   )
r�  r…  Úemit_markerr!  r;  r‚  r’  Úget_escaped_descriptionÚput_saferH  )rí   r  rà  ra  rk  rÓ   s         rò   r  zCCodeWriter.putln  sž   € Ø�=Š=˜TŸXšXØ×ÑÔØ×Ñ×)Ò)¨d×.BÒ.BØ#'×#7Ñ#7Ñ ˆK˜˜qØ×Ñ ¨¨¨b°×1TÑ1TÓ1VÐ0WÐWZÐ[Ô\ÙÙØ—‘˜dÕ#à—‘˜”Ø×Ñ˜$ÔØˆ�rô   c                 ó`   — |€y | j                   r| j                   d d |d d k(  ry ||f| _        y )Nr   )r‚  r�  ©rí   r±  r«  s      rò   r­  zCCodeWriter.mark_pos   s;   € Øˆ;ØØ×Ò D×$8Ñ$8¸¸!Ð$<ÀÀBÀQÀÒ$GØØ˜e˜ˆ�rô   c                 ó  — | j                   \  }}|| _        d | _         | j                  d«       | j                  j                  r0| j                  «        | j                  | j                  |«      «       |r| j                  |«       y y r‘  )r�  r‚  r’  r!  rz  ÚindentÚ_build_markerÚwrite_trace_linerö  s      rò   rò  zCCodeWriter.emit_marker'  ss   € à—]‘]‰
ˆˆUØ"ˆÔØˆŒØ×Ñ˜$ÔØ×Ñ×.Ò.Ø�K‰KŒMØ×Ñ˜d×0Ñ0°Ó5Ô6ÙØ×!Ñ! #Õ&ð rô   c                 óN  — | j                   r™| j                   j                  r‚| j                  j                  d   rh| j	                  «        | j                  d|d   d›d| j                  |«      d›d| j                   j                   d›d| j                  |«      › d�	«       y y y y )NÚ	linetracez__Pyx_TraceLine(r   r÷   r  z)
)	rr  r_  r   r«  rø  r’  Úpos_to_offsetr`  r·  ©rí   r±  s     rò   rú  zCCodeWriter.write_trace_line3  sª   € à�>Š>˜dŸn™n×6Ò6¸4×;KÑ;K×;VÑ;VÐWbÒ;cØ�K‰KŒMØ×ÑØ" 3 q¡6¨! *¨A¨d×.@Ñ.@ÀÓ.EÀaÐ-HÈÈdÏnÉn×NfÑNfÐJfÐghÐIiÐijÐko×kzÑkzÐ{~Ókð  kAð  ADð  EõFð <dÐ6ˆ>rô   c                 ó  — |\  }}}t        |t        «      sJ ‚| j                  j                  |«      }|t	        d|dz
  «      | }|dxx   dz  cc<   ||||dz    z  }dj                  |«      }d|j                  «       › d|d	›d|› d
�S )Nr   r&   rä   z             # <<<<<<<<<<<<<<r   r8  z/* "z":r÷   z
*/
)r°   r   r   rh  r¸   r  ró  )rí   r±  ra  rk  ÚcolÚcontentsrE  r  s           rò   rù  zCCodeWriter._build_marker:  s¤   € à!$Ñˆ�T˜3Ü˜+Ô'7Ô8Ð8Ð8Ø×#Ñ#×;Ñ;¸KÓHˆØœ˜Q  Q¡›¨Ð-ˆØˆb‹	Ð4Ñ4‹	Ø�˜$˜t A™vÐ&Ñ&ˆØ�y‰y˜ÓˆØ�k×9Ñ9Ó;Ð<¸B¸tÀA¸hÀbÈÈÈfÐUÐUrô   c                 ó4   — | j                  |«       d| _        y r–  )r  r…  ©rí   r  s     rò   rô  zCCodeWriter.put_safeE  s   € à�
‰
�4ÔØˆ�rô   c                 óÈ  — | j                   j                  }|�r:t        |«      dkD  �r+t        j                  |j                  d«      «      j                  «       }|› d|› d�}t        j                  j                  ||«      }t        j                  j                  |«      sš|› dt        j                  «       › �}d}	 t        j                  |«      5 }	|	j                  |«       d d d «       t        j                   ||«       d}|s5t        j                  j                  |«      rt        j&                  |«       	 |j)                  dd	«      }
d
|
› d�}| j+                  |«       y # 1 sw Y   Œ‚xY w# t"        t$        f$ r# t        j                  j                  |«      s‚ Y Œžw xY w# |s6t        j                  j                  |«      rt        j&                  |«       w w w xY w)Ni   rä  rÓ   z.hz.tmpFTr  rQ  z
#include "r  )r   r"  r³   ÚhashlibÚsha256rü  Ú	hexdigestr   r  r  ÚexistsÚgetpidr   Úopen_new_filer  ÚshutilÚmoverM   rg   Úunlinkr·  rÞ  )rí   r  rD  Úinclude_dirr«   Úinclude_filer  Útmp_pathÚdoner  Úc_paths              rò   rÝ  zCCodeWriter.put_or_includeJ  sx  € à×&Ñ&×AÑAˆÚœ3˜t›9 tÓ+Ü—>‘> $§+¡+¨fÓ"5Ó6×@Ñ@ÓBˆDØ"˜V 1 T F¨"Ð-ˆLÜ—7‘7—<‘< ¨\Ó:ˆDÜ—7‘7—>‘> $Ô'Ø"˜V 4¬¯	©	« }Ð5�Ø�ð,Ü×,Ñ,¨XÔ6¸!ØŸ™ œ÷ 7ä—K‘K ¨$Ô/Ø�Dñ  ¤B§G¡G§N¡N°8Ô$<ÜŸ	™	 (Õ+ð —\‘\ $¨Ó,ˆFØ ˜x sÐ+ˆDØ×Ñ˜DÕ!÷! 7Ð6ûô (¬Ð9ò ô Ÿ7™7Ÿ>™>¨$Ô/Øñ 0ðûñ  ¤B§G¡G§N¡N°8Ô$<ÜŸ	™	 (Õ+ð %=˜4ús<   Â>E2 ÃE&Ã% E2 Å&E/Å+E2 Å2/F$Æ!F' Æ#F$Æ$F' Æ':G!c                 ó¢   — | j                   r2d|v r.d| j                   z  j                  |j                  d¬«      «      }| j                  |«       y )Nr8  rä  T©Úkeepends)r$   r  r  rH  r  s     rò   rÞ  zCCodeWriter.put_multilinesg  s@   € ð �:Š:˜$ $™,Ø˜4Ÿ:™:Ñ%×+Ñ+¨D¯O©OÀT¨OÓ,JÓKˆDØ�‰��rô   c                 ó²  — d}d|v r|j                  d«      nd}d|v rS||j                  d«      z  }|dk  r| xj                  |z  c_        n$|dk(  r|d   dk(  rd}| xj                  dz  c_        | j                  r| j                  «        | j	                  |«       d| _        |dkD  r| xj                  |z  c_        y |r| xj                  dz  c_        y y )NFró  r   rO  Tr   )r¡  r$   r…  rø  r  )rí   r  Ú
fix_indentÚdls       rò   rH  zCCodeWriter.puto  sº   € Øˆ
Ø36¸$±; §
¡
¨3¤ÀAˆØ�$‰;Ø�$—*‘*˜S“/Ñ!ˆBØ�AŠvØ—
’
˜bÑ –
Ø�q’˜T !™W¨š^à!�
Ø—
’
˜a‘•
Ø�8Š8Ø�K‰KŒMØ�
‰
�4ÔØˆŒØ�Š6Ø�JŠJ˜"ÑŽJÙØ�JŠJ˜!‰OŽJð rô   rC  c                 ó>  — |j                   rJ |j                  «       ‚|j                  | | j                  d«       |j	                  | j                  «       |j
                  r<t        j                  r+|j                  | j                  d   | j                  d«       y y y )Nr?  rï  r   )r>  rD  rá  r   rç  r   r	   rø  )rí   rC  s     rò   Úput_code_herezCCodeWriter.put_code_hereƒ  s„   € ð —=’=Ð. '§,¡,Ó.Ð Ø×!Ñ! $¨×(8Ñ(8¸&ÔAØ×&Ñ& t×'7Ñ'7Ô8Ø�?Š?œw×<Ò<Ø×%Ñ%Ø× Ñ Ð!2Ñ3°T×5EÑ5EÀyõRð  =ˆ?rô   c                 ó.   — | xj                   dz  c_         y ©Nr   r#   rý   s    rò   Úincrease_indentzCCodeWriter.increase_indentŽ  ó   € à�
Š
�a‰Ž
rô   c                 ó.   — | xj                   dz  c_         y r  r#   rý   s    rò   Údecrease_indentzCCodeWriter.decrease_indent’  r  rô   c                 óF   — | j                  d«       | j                  «        y )Nró  )r  r  rý   s    rò   Úbegin_blockzCCodeWriter.begin_block–  s   € à�
‰
�3ŒØ×ÑÕrô   c                 óF   — | j                  «        | j                  d«       y )NrO  )r   r  rý   s    rò   Ú	end_blockzCCodeWriter.end_block›  s   € à×ÑÔØ�
‰
�3�rô   c                 ó@   — | j                  d| j                  z  «       y )Nrä  )r“  r$   rý   s    rò   rø  zCCodeWriter.indent   s   € à×Ñ˜d T§Z¡ZÑ/Õ0rô   c                 ó*   — dt        |«      dz   d d z  S )Nz0x%02X%02X%02X%02X)r   r   r   r   é   )rÏ   )rí   Ú	pyversions     rò   Úget_py_version_hexzCCodeWriter.get_py_version_hex¤  s   € Ø#¤u¨YÓ'7¸)Ñ'CÀRÀaÐ&HÑHÐHrô   c                 ó^   — || j                   j                  v r| j                  d|z  «       y y )Nz%s:;)rr  rV  r  r—  s     rò   rQ  zCCodeWriter.put_label§  s)   € Ø�$—.‘.×,Ñ,Ñ,Ø�J‰J�v ‘|Õ$ð -rô   c                 ób   — | j                   j                  |«       | j                  d|z  «       y )Núgoto %s;)rr  r™  r  r—  s     rò   r¬  zCCodeWriter.put_goto«  s%   € Ø�‰× Ñ  Ô%Ø�
‰
�: Ñ#Õ$rô   c                 óþ  — |j                   dk(  r|s|j                  sy |j                   dk(  r|j                  sy |j                  s| j	                  d«       |r| j	                  d|z  «       |j
                  r7| j	                  |j                  j                  |j                  |¬«      «       n6| j	                  |j                  j                  |j                  |¬«      «       |j                  �8| j                  d|j                  j                  |j                  «      z  «       n'|j                  j                  r| j	                  d«       | j                  d«       | j                  j!                  |«       y )NÚprivaterÊ  ú%s )Údll_linkagez = %sz = NULLrÙ  )Ú
visibilityÚdefined_in_pxdrº  Úcf_usedrH  Úis_cpp_optionalrÐ   Úcpp_optional_declaration_coder.  rÑ  rŸ  rô  Úliteral_codeÚis_pyobjectr  r   rm  )rí   rZ  Ústorage_classr0  Ú
definitions        rò   Úput_var_declarationzCCodeWriter.put_var_declaration¯  s%  € ð ×Ñ˜yÒ(±*À×@TÒ@TàØ×Ñ˜yÒ(°·²àØ�}Š}Ø�H‰HÐ%Ô&ÙØ�H‰H�U˜]Ñ*Ô+Ø× Ò Ø�H‰H�U—Z‘Z×=Ñ=Ø—‘¨ð >ó 6õ 7ð �H‰H�U—Z‘Z×0Ñ0Ø—‘¨ð 1ó 6ô 7à�:‰:Ð!Ø�M‰M˜' E§J¡J×$;Ñ$;¸E¿J¹JÓ$GÑGÕHØ�Z‰Z×#Ò#Ø�H‰H�YÔØ�
‰
�3ŒØ×Ñ×/Ñ/°Õ6rô   Úfunc_contextc                 óþ  — |j                   D ]×  \  }}}}|j                  r7|j                  s+|j                  j                  d   r|j                  |«      }n|j                  |«      }|j                  r| j                  d|z  «       Œ}|j                  r1| j                  |›d|j                  |j                  «      ›d�«       Œº| j                  |xr dxs d›|›d�«       ŒÙ |j                  r‹| j                  j                  rd}nd}| j                  |›dt        j                   ›d	�«       | j                  |›d
t        j"                  ›d�«       | j                  |›dt        j$                  ›d	�«       y y )NrŸ  z
%s = NULL;ú = rÙ  ré  rP  rÊ  zint z = 0;zconst char *z = NULL;)ra  rª  r¦  rô  r«  r5  rÑ  r7  r  rÓ  r6  Údefault_valuerh  rr  ri  r   Úlineno_cnameÚfilename_cnameÚclineno_cname)rí   r;  rD  rÐ   r±  r²  rÚ  Úunuseds           rò   Úput_temp_declarationsz!CCodeWriter.put_temp_declarationsÉ  s0  € Ø.:×.JÔ.JÑ*ˆD�$˜
 FØ× Ò ¨×)?Ò)?ÀL×DVÑDV×DaÑDaÐbnÒDoØ×9Ñ9¸$Ó?‘à×,Ñ,¨TÓ2�Ø×ÒØ—
‘
˜<¨$Ñ.Õ/Ø×(Ò(Ø—
‘
ª¨t×/@Ñ/@À×ASÑASÕ/TÐUÕVà—
‘
 fÒ&:°Ò&@¸bÐ&@Â$ÐGÕHð /Kð ×6Ò6Ø�~‰~×2Ò2Ø‘à)�à�J‰Jª&´&×2EÓ2EÐFÔGØ�J‰J²V¼V×=RÓ=RÐSÔTØ�J‰Jª&´&×2FÓ2FÐGÕHð 7rô   c                 ód   — | j                  t        j                  «       | j                  d«       y rp  )r  r   ÚGENERATED_BY_MARKERrý   s    rò   Úput_generated_byzCCodeWriter.put_generated_byà  s   € Ø�
‰
”5×,Ñ,Ô-Ø�
‰
�2�rô   c                 óT   — | j                  d|z  «       | j                  d|z  «       y )Nz
#ifndef %sz
#define %sr)  )rí   r  s     rò   Úput_h_guardzCCodeWriter.put_h_guardä  s$   € Ø�
‰
�< %Ñ'Ô(Ø�
‰
�< %Ñ'Õ(rô   c                 ó0   — t         j                  rd|z  S |S )Nzunlikely(%s))r	   Úgcc_branch_hints©rí   Úconds     rò   ÚunlikelyzCCodeWriter.unlikelyè  s   € Ü×#Ò#Ø! DÑ(Ð(àˆKrô   c           
      ód   — |syddj                  |D �cg c]  } |||«      ‘Œ c}«      z  S c c}w )NrP  r/  rµ  )r  )rí   Ú	modifiersÚmapperrl  s       rò   Úbuild_function_modifiersz$CCodeWriter.build_function_modifiersî  s4   € ÙØØ�s—x‘x±iÓ @±i°¡¨¨!¥°iÑ @ÓAÑAÐAùÒ @s   ”-
c                 óÈ   — |j                   }|j                  s|j                   j                  «       r|j                   j                  rd|j                  z   S |j                  S )Nz(PyObject *))rÐ   Úis_self_argÚis_completerî  r.  )rí   rZ  rÐ   s      rò   Úentry_as_pyobjectzCCodeWriter.entry_as_pyobjectõ  sI   € Ø�z‰zˆØ×!Ò!¨%¯*©*×*@Ñ*@Ô*BØ—:‘:×/Ò/Ø! E§K¡KÑ/Ð/à—;‘;Ðrô   c                 ó&   — ddl m}m}  ||||«      S )Nr   ©Úpy_object_typeÚtypecast)rž  rX  rY  )rí   r.  rÐ   rX  rY  s        rò   Úas_pyobjectzCCodeWriter.as_pyobjectý  s   € ß8Ù˜¨¨eÓ4Ð4rô   c                 ó(   — |j                  | |«       y rü   )Úgenerate_gotrefrÔ  s      rò   Ú
put_gotrefzCCodeWriter.put_gotref  s   € Ø×Ñ˜T 5Õ)rô   c                 ó(   — |j                  | |«       y rü   )Úgenerate_giverefrÔ  s      rò   Úput_giverefzCCodeWriter.put_giveref  ó   € Ø×Ñ˜d EÕ*rô   c                 ó(   — |j                  | |«       y rü   )Úgenerate_xgiverefrÔ  s      rò   Úput_xgiverefzCCodeWriter.put_xgiveref  s   € Ø×Ñ˜t UÕ+rô   c                 ó(   — |j                  | |«       y rü   )Úgenerate_xgotrefrÔ  s      rò   Úput_xgotrefzCCodeWriter.put_xgotref
  ra  rô   c                 ó,   — |j                  | ||¬«       y ©N)rÌ  )Úgenerate_incref©rí   r.  rÐ   rÌ  s       rò   Ú
put_increfzCCodeWriter.put_incref  s   € ð 	×Ñ˜T 5°ÐÕ6rô   c                 ó,   — |j                  | ||¬«       y ri  )Úgenerate_xincrefrk  s       rò   Úput_xincrefzCCodeWriter.put_xincref  s   € Ø×Ñ˜d E°ÐÕ7rô   c                 ó.   — |j                  | |||¬«       y ©N)rÌ  Úhave_gil)Úgenerate_decref©rí   r.  rÐ   rÌ  rr  s        rò   Ú
put_decrefzCCodeWriter.put_decref  s   € Ø×Ñ˜T 5°ÀÐÕIrô   c                 ó.   — |j                  | |||¬«       y rq  )Úgenerate_xdecrefrt  s        rò   Úput_xdecrefzCCodeWriter.put_xdecref  s   € Ø×Ñ˜d E°ÀÐÕJrô   c                 ó0   — |j                  | ||||¬«       y ©N)rË  rÌ  rr  )Úgenerate_decref_clear©rí   r.  rÐ   rË  rÌ  rr  s         rò   Úput_decref_clearzCCodeWriter.put_decref_clear  s!   € Ø×"Ñ" 4¨ÐDWØ$)°Hð 	#õ 	>rô   c                 ó0   — |j                  | ||||¬«       y rz  )Úgenerate_xdecref_clearr|  s         rò   rÒ  zCCodeWriter.put_xdecref_clear   s!   € Ø×#Ñ# D¨%ÐEXØ$)°Hð 	$õ 	>rô   c                 ó*   — |j                  | ||«       y rü   )Úgenerate_decref_set©rí   r.  rÐ   Ú	rhs_cnames       rò   Úput_decref_setzCCodeWriter.put_decref_set$  s   € Ø× Ñ   u¨iÕ8rô   c                 ó*   — |j                  | ||«       y rü   )Úgenerate_xdecref_setr‚  s       rò   Úput_xdecref_setzCCodeWriter.put_xdecref_set'  s   € Ø×!Ñ! $¨¨yÕ9rô   c                 ó,   — |j                  | ||¬«       y ©N)rr  )Úgenerate_incref_memoryviewslice)rí   Úslice_cnamerÐ   rr  s       rò   Úput_incref_memoryviewslicez&CCodeWriter.put_incref_memoryviewslice*  s   € à×,Ñ,¨T°;ÈÐ,ÕRrô   c                 óT   — | j                  |j                  |j                  |¬«       y r‰  )rŒ  r.  rÐ   )rí   rZ  rr  s      rò   Úput_var_incref_memoryviewslicez*CCodeWriter.put_var_incref_memoryviewslice.  s   € Ø×'Ñ'¨¯©°U·Z±ZÈ(Ð'ÕSrô   c                 óP   — | j                  |j                  |j                  «       y rü   )r]  r.  rÐ   rY  s     rò   Úput_var_gotrefzCCodeWriter.put_var_gotref1  s   € Ø�‰˜Ÿ™ U§Z¡ZÕ0rô   c                 óP   — | j                  |j                  |j                  «       y rü   )r`  r.  rÐ   rY  s     rò   Úput_var_giverefzCCodeWriter.put_var_giveref4  ó   € Ø×Ñ˜Ÿ™ e§j¡jÕ1rô   c                 óP   — | j                  |j                  |j                  «       y rü   )rg  r.  rÐ   rY  s     rò   Úput_var_xgotrefzCCodeWriter.put_var_xgotref7  r“  rô   c                 óP   — | j                  |j                  |j                  «       y rü   )rd  r.  rÐ   rY  s     rò   Úput_var_xgiverefzCCodeWriter.put_var_xgiveref:  s   € Ø×Ñ˜%Ÿ+™+ u§z¡zÕ2rô   c                 óT   —  | j                   |j                  |j                  fi |¤Ž y rü   )rl  r.  rÐ   ©rí   rZ  Úkwdss      rò   Úput_var_increfzCCodeWriter.put_var_incref=  ó   € Øˆ�‰˜Ÿ™ U§Z¡ZÑ8°4Ó8rô   c                 óT   —  | j                   |j                  |j                  fi |¤Ž y rü   )ro  r.  rÐ   r™  s      rò   Úput_var_xincrefzCCodeWriter.put_var_xincref@  ó!   € Øˆ×Ñ˜Ÿ™ e§j¡jÑ9°DÓ9rô   c                 óT   —  | j                   |j                  |j                  fi |¤Ž y rü   )ru  r.  rÐ   r™  s      rò   Úput_var_decrefzCCodeWriter.put_var_decrefC  rœ  rô   c                 óT   —  | j                   |j                  |j                  fi |¤Ž y rü   )rx  r.  rÐ   r™  s      rò   Úput_var_xdecrefzCCodeWriter.put_var_xdecrefF  rŸ  rô   c                 ól   —  | j                   |j                  |j                  fd|j                  i|¤Ž y ©NrË  )r}  r.  rÐ   Ú
in_closurer™  s      rò   Úput_var_decref_clearz CCodeWriter.put_var_decref_clearI  s-   € Øˆ×Ñ˜eŸk™k¨5¯:©:ÑdÈ5×K[ÑK[ÐdÐ_cÓdrô   c                 óV   —  | j                   |j                  |j                  |fi |¤Ž y rü   )r„  r.  rÐ   ©rí   rZ  rƒ  rš  s       rò   Úput_var_decref_setzCCodeWriter.put_var_decref_setL  s#   € Øˆ×Ñ˜EŸK™K¨¯©°YÑGÀ$ÓGrô   c                 óV   —  | j                   |j                  |j                  |fi |¤Ž y rü   )r‡  r.  rÐ   r©  s       rò   Úput_var_xdecref_setzCCodeWriter.put_var_xdecref_setO  s#   € Øˆ×Ñ˜UŸ[™[¨%¯*©*°iÑHÀ4ÓHrô   c                 ól   —  | j                   |j                  |j                  fd|j                  i|¤Ž y r¥  )rÒ  r.  rÐ   r¦  r™  s      rò   Úput_var_xdecref_clearz!CCodeWriter.put_var_xdecref_clearR  s-   € Øˆ×Ñ˜uŸ{™{¨E¯J©JÑeÈE×L\ÑL\ÐeÐ`dÓerô   c                 óŽ   — |D ]@  }|r|j                   sŒ|j                  r| j                  |«       Œ0| j                  |«       ŒB y rü   )rº  Úxdecref_cleanupr£  r¡  )rí   ÚentriesÚ	used_onlyrZ  s       rò   Úput_var_decrefszCCodeWriter.put_var_decrefsU  s:   € ÛˆEÙ §
£
Ø×(Ò(Ø×(Ñ(¨Õ/à×'Ñ'¨Õ.ñ rô   c                 ó4   — |D ]  }| j                  |«       Œ y rü   )r£  ©rí   r±  rZ  s      rò   Úput_var_xdecrefszCCodeWriter.put_var_xdecrefs]  s   € ÛˆEØ× Ñ  Õ'ñ rô   c                 ó4   — |D ]  }| j                  |«       Œ y rü   )r®  rµ  s      rò   Úput_var_xdecrefs_clearz"CCodeWriter.put_var_xdecrefs_cleara  s   € ÛˆEØ×&Ñ& uÕ-ñ rô   c                 ó4  — | j                   j                  j                  s@| j                   j                  j                  s | j                   j                  j                  r8| j                  d«       | j                  d|› d�«       | j                  d«       y y )Nz?#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000z)PyUnstable_Object_EnableDeferredRefcount(r2  râ  )rr  rô  Úis_module_scopeÚis_c_class_scoperê  r  rå  s     rò   Úput_make_object_deferredz$CCodeWriter.put_make_object_deferrede  sq   € ð �N‰N× Ñ ×0Ò0Ø—‘×$Ñ$×5Ò5Ø—‘×$Ñ$×6Ò6Ø�J‰JÐXÔYØ�J‰JÐBÀ5À'ÈÐLÔMØ�J‰J�xÕ ð 7rô   c                 óŠ   — ddl m}m}  |||d«      }|r| j                  |›d|›d�«       y | j                  |›d|›d�«       y )Nr   rW  ÚPy_Noner=  z; __Pyx_INCREF(Py_None);z; Py_INCREF(Py_None);)rž  rX  rY  r  )rí   r.  rÐ   rÌ  rX  rY  Úpy_nones          rò   Úput_init_to_py_nonezCCodeWriter.put_init_to_py_nonep  s8   € ß8Ù˜4 °Ó;ˆÙØ�J‰JºEÂ7ÐKÕLà�J‰JºÂÐHÕIrô   c                 ó˜   — ||j                   z  }| j                  ||j                  |«       |j                  r| j	                  d«       y y )Nr¾  )r.  rÀ  rÐ   r¦  r`  )rí   rZ  r?  rÌ  r  s        rò   Úput_init_var_to_py_nonez#CCodeWriter.put_init_var_to_py_nonex  sD   € Ø˜%Ÿ+™+Ñ%ˆð 	× Ñ   u§z¡z°5Ô9Ø×ÒØ×Ñ˜YÕ'ð rô   c                 ó¶  — d}|j                   s|j                  dk(  rbddlm} |j                  t        vrJ|j                  |j                  «      rd}n,|j                  dk(  r| j                  j                  d   sn|ry |j                  j                  «       }|sy |j                   r|j                  gz  }|r|j                  |«      n|j                  }|j                  j                  «       }	|	dk7  rd	|	›d
|›�}|j                  j                  «       }
|raj                  | j                  j                  «      j!                  |j                  «      }|j#                  «       }|r| j%                  |«       | j%                  d|
›d|›ddj'                  |«      ›d|j(                  r|j*                  nd›d|›�
«       |rr| j%                  d«       y y y )NFÚ__getattribute__r   )Ú	TypeSlotsTÚ__getattr__Úfast_getattrÚPyCFunctionz(void(*)(void))(r=  ró  z, (PyCFunction)rm  Ú|Ú0rO  râ  )Ú
is_specialrD  rP  rÅ  Úspecial_py_methodsÚis_binop_number_slotr   r«  rÈ  Úmethod_flagsÚmethod_coexistÚput_pymethoddef_wrapperÚ
func_cnameÚmethod_function_typeÚas_c_string_literalÚget_slot_tableÚget_slot_by_method_nameÚpreprocessor_guard_coder  r  ÚdocÚ	doc_cname)rí   rZ  ÚtermÚ
allow_skipÚwrapper_code_writerÚis_number_slotrÅ  rÎ  Úfunc_ptrÚcastÚ
entry_nameÚslotÚpreproc_guards                rò   Úput_pymethoddefzCCodeWriter.put_pymethoddef€  s˜  € ØˆØ×Ò˜uŸz™zÐ-?Ò?Ý#Ø�z‰zÔ!3Ñ3Ø×1Ñ1°%·*±*Ô=ð &*‘NØ—Z‘Z =Ò0¸×9IÑ9I×9TÑ9TÐUcÒ9dØñ  Øà—‘×3Ñ3Ó5ˆÙØØ×ÒØ˜Y×5Ñ5Ð6Ñ6ˆLÙI\Ð&×>Ñ>¸uÔEÐbg×brÑbrˆà�‰×3Ñ3Ó5ˆØ�=Ó Ú26¹ÐAˆHØ—Z‘Z×3Ñ3Ó5ˆ
Ùð ×+Ñ+¨D×,<Ñ,<×,GÑ,GÓH×`Ñ`Ðaf×akÑakÓlˆDØ ×8Ñ8Ó:ˆMÙØ—
‘
˜=Ô)Ø�
Š
âÚØ—‘˜Õ&Ø#(§9¢9�—’°#Ñ5Ùðô	ñ ™mØ�J‰J�xÕ ð ,ˆ>rô   c                 óÈ  — |j                   }|j                  rÉ|j                  j                  «       xs g }ddlm} ||v r¡t        j                  |z   }| j                  d|z  «       d|j                   z  }|j                  dk(  r7| j                  d|z  «       | j                  d«       | j                  d«       n| j                  d	|z  «       | j                  d
«       |S )Nr   )Úmethod_noargszBstatic PyObject *%s(PyObject *self, CYTHON_UNUSED PyObject *arg) {z%s(self)r×   zPyObject *res = %s;zFif (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }zreturn res;z
return %s;rO  )
rÑ  rË  rÈ  rÎ  rÅ  rä  r   Úmethod_wrapper_prefixr  rD  )rí   rZ  rÑ  rÎ  rä  Ú	func_calls         rò   rÐ  z#CCodeWriter.put_pymethoddef_wrapper±  sÄ   € Ø×%Ñ%ˆ
Ø×ÒØ Ÿ?™?×7Ñ7Ó9Ò?¸RˆLÝ0Ø Ñ,ä#×9Ñ9¸JÑF�
Ø—
‘
Ð_ÐblÑlÔmØ&¨×)9Ñ)9Ñ9�	Ø—:‘: Ò+Ø—J‘JÐ4°yÑ@ÔAà—J‘JÐgÔhØ—J‘J˜}Õ-à—J‘J˜|¨iÑ7Ô8Ø—
‘
˜3”ØÐrô   c                 óô   — | j                   j                  d   r0| j                   j                  t        j	                  dd«      «       y | j                   j                  t        j	                  dd«      «       y )NÚfast_gilÚFastGilrE  Ú	NoFastGil)r   r«  rö  r�  rw  rý   s    rò   Úuse_fast_gil_utility_codez%CCodeWriter.use_fast_gil_utility_codeÇ  sZ   € Ø×Ñ×&Ñ& zÒ2Ø×Ñ×-Ñ-¬k×.EÑ.EÀiÐQdÓ.eÕfà×Ñ×-Ñ-¬k×.EÑ.EÀkÐSfÓ.gÕhrô   c                 óD  — | j                   j                  d   dk7  rddlm}  || j                  dd«       | j                   j                  t        j                  dd«      «       | j                  «        |sd	}|r| j                  d
«       | j                  d|z  «       y)a  
        Acquire the GIL. The generated code is safe even when no PyThreadState
        has been allocated for this thread (for threads not initialized by
        using the Python API). Additionally, the code generated by this method
        may be called recursively.
        Úsubinterpreters_compatibleÚnor   )ÚwarningzTAcquiring the GIL is currently very unlikely to work correctly with subinterpreters.r   ÚForceInitThreadsrE  Ú__pyx_gilstate_savezPyGILState_STATE z%s = __Pyx_PyGILState_Ensure();N)r   r«  ÚErrorsrï  r‚  rö  r�  rw  rë  rH  r  )rí   Údeclare_gilstateÚvariablerï  s       rò   Úput_ensure_gilzCCodeWriter.put_ensure_gilÍ  s—   € ð ×Ñ×&Ñ&Ð'CÑDÈÒLÝ'ÙØ×$Ñ$ØfØôð
 	×Ñ×)Ñ)Ü×#Ñ#Ð$6Ð8KÓLô	Nà×&Ñ&Ô(ÙØ,ˆHÙØ—‘Ð,Ô-Ø�
‰
Ð4°xÑ?Õ@rô   c                 óT   — | j                  «        |sd}| j                  d|z  «       y)zD
        Releases the GIL, corresponds to `put_ensure_gil`.
        rñ  z__Pyx_PyGILState_Release(%s);N)rë  r  )rí   rô  s     rò   Úput_release_ensured_gilz#CCodeWriter.put_release_ensured_gilä  s*   € ð 	×&Ñ&Ô(ÙØ,ˆHØ�
‰
Ð2°XÑ=Õ>rô   c                 óŽ   — | j                  d«       | j                  dt        j                  › d�«       | j                  d«       y )Nr\  zPyMutex_Lock(&r2  râ  ©r  r   Úparallel_freethreading_mutexrý   s    rò   Úput_acquire_freethreading_lockz*CCodeWriter.put_acquire_freethreading_lockí  s7   € Ø�
‰
ÐBÔCØ�
‰
�^¤F×$GÑ$GÐ#HÈÐKÔLØ�
‰
�8Õrô   c                 óŽ   — | j                  d«       | j                  dt        j                  › d�«       | j                  d«       y )Nr\  zPyMutex_Unlock(&r2  râ  rù  rý   s    rò   Úput_release_freethreading_lockz*CCodeWriter.put_release_freethreading_lockò  s8   € Ø�
‰
ÐBÔCØ�
‰
Ð%¤f×&IÑ&IÐ%JÈ"ÐMÔNØ�
‰
�8Õrô   c                 ó  — | j                  «        | j                  d«       |r| j                  d|z  «       |r2d}| j                  j                  t        j                  dd«      «       nd}| j                  |› d�«       y)	z
        Acquire the GIL. The thread's thread state must have been initialized
        by a previous `put_release_gil`
        z__Pyx_FastGIL_Forget();z_save = %s;Ú__Pyx_RestoreUnknownThreadÚReleaseUnknownGilrE  ÚPyEval_RestoreThreadz(_save);N)rë  r  r   rö  r�  rw  )rí   rô  Úunknown_gil_stater¼  s       rò   Úput_acquire_gilzCCodeWriter.put_acquire_gil÷  sz   € ð
 	×&Ñ&Ô(Ø�
‰
Ð,Ô-ÙØ�J‰J�} xÑ/Ô0ÙØ4ˆIØ×Ñ×-Ñ-Ü×'Ñ'Ð(;Ð=PÓQõSð /ˆIØ�
‰
�i�[ Ð)Õ*rô   c                 ó8  — | j                  «        |r4| j                  j                  t        j	                  dd«      «       d}d}nd}d}| j                  |› d�«       | j                  d|› d	�«       |r| j                  d
|z  «       | j                  d«       y)z2Release the GIL, corresponds to `put_acquire_gil`.r   rE  Ú__Pyx_SaveUnknownThreadÚ__Pyx_UnknownThreadStateÚPyEval_SaveThreadzPyThreadState *z _save;z_save = z();z%s = _save;z__Pyx_FastGIL_Remember();N)rë  r   rö  r�  rw  r  )rí   rô  r  r¼  Úresult_types        rò   Úput_release_gilzCCodeWriter.put_release_gil  s•   € à×&Ñ&Ô(ÙØ×Ñ×-Ñ-Ü×'Ñ'Ð(;Ð=PÓQôSà1ˆIØ4‰Kà+ˆIØ+ˆKØ�
‰
�k�] 'Ð*Ô+Ø�
‰
�X˜i˜[¨Ð,Ô-ÙØ�J‰J�} xÑ/Ô0Ø�
‰
Ð.Õ/rô   c                 ó&   — | j                  d«       y )Nz%PyGILState_STATE __pyx_gilstate_save;r)  rý   s    rò   ró  zCCodeWriter.declare_gilstate  s   € Ø�
‰
Ð:Õ;rô   c                 óN   — | j                  d|›d| j                  |«      ›�«      S )Núif (z < (0)) )r  r·  )rí   r±  rÍ  s      rò   Úput_error_if_negzCCodeWriter.put_error_if_neg  s!   € ð �zŠz²°t·±ÀsÔ7KÐLÓMÐMrô   c                 óR  — |rdnd}|j                   rd}nn|j                  j                  r|j                  rd}nI|j                  j                  r1|j                  r%|j
                  s|j                  j                  rd}nd}| j                  j                  t        j                  |› |› �d«      «       |s%|j                  j                  |j                  «      }| j                  d|›d	d
|› |› �›d|j                  j!                  «       ›d| j#                  |«      ›d�	«       y )NÚNogilrP  ÚRaiseClosureNameErrorÚRaiseCppGlobalNameErrorÚRaiseCppAttributeErrorÚRaiseUnboundLocalErrorr¦  zif (unlikely(!z)) { r§  rŽ  z); rù  )Úfrom_closurerÐ   rª  Ú
is_cglobalÚis_variableÚ	is_memberrô  r»  r   rö  r�  rw  Úcheck_for_null_coder.  r  rD  rÓ  r·  )rí   r±  rZ  Úin_nogil_contextÚunbound_check_codeÚ	nogil_tagr  s          rò   Úput_error_if_unboundz CCodeWriter.put_error_if_unbound#  sô   € Ù/‘G°Rˆ	Ø×ÒØ*‰DØ�Z‰Z×$Ò$¨×)9Ò)9Ø,‰DØ�Z‰Z×$Ò$¨×):Ò):À5Ç?Â?ÐW\×WbÑWb×WsÒWsð ,‰Dà+ˆDà×Ñ×)Ñ)Ü×'Ñ'¨4¨&°°Ð(<Ð>PÓQô	Sñ "Ø!&§¡×!?Ñ!?ÀÇÁÓ!LÐØ�
Š
Ú 2Ø"(¨¨¨y¨kÒ :Ø %§
¡
× >Ñ >Õ @Ø $§¡°Õ 4ð	6õ 	7rô   c                 ó†   — d| j                   _        |rd| j                   _        d| j                  |d   «      ›d|d   ›d�S )NTz__PYX_MARK_ERR_POS(r   rm  r   r=  )rr  rh  ri  rb  )rí   r±  rº  s      rò   Úset_error_infozCCodeWriter.set_error_info;  sA   € Ø8<ˆ�‰Ô5ÙØ26ˆD�N‰NÔ/øà× Ñ   Q¡Õ(Ø�‹Fðð 	rô   c                 óü   — | j                   j                  }| j                   j                  |«       |€d|z  S d| j                   _        |rd| j                   _        d| j                  |d   «      ›d|d   ›d|›d�S )Nr,  Tz
__PYX_ERR(r   rm  r   r=  )rr  rT  r™  rh  ri  rb  )rí   r±  rº  r˜  s       rò   r·  zCCodeWriter.error_gotoC  su   € Ø�n‰n×(Ñ(ˆØ�‰× Ñ  Ô%Øˆ;Ø Ñ#Ð#Ø8<ˆ�‰Ô5ÙØ26ˆD�N‰NÔ/øà× Ñ   Q¡Õ(Ø�‹FÚðð 	rô   c                 óN   — d| j                  |«      ›d| j                  |«      ›�S )Nr  rµ  )rM  r·  )rí   rL  r±  s      rò   Úerror_goto_ifzCCodeWriter.error_goto_ifP  s   � Ø#Ÿ}™}¨TÕ2°D·O±OÀCÔ4HÐIÐIrô   c                 ó,   — | j                  d|z  |«      S )Nz!%s©r!  ©rí   r.  r±  s      rò   rÿ  zCCodeWriter.error_goto_if_nullS  s   € Ø×!Ñ! %¨%¡-°Ó5Ð5rô   c                 ó,   — | j                  d|z  |«      S )Nz(%s < 0)r#  r$  s      rò   Úerror_goto_if_negzCCodeWriter.error_goto_if_negV  s   € à×!Ñ! *¨uÑ"4°cÓ:Ð:rô   c                 ó&   — | j                  d|«      S )NzPyErr_Occurred()r#  rþ  s     rò   rå  zCCodeWriter.error_goto_if_PyErrZ  s   € Ø×!Ñ!Ð"4°cÓ:Ð:rô   c                 ó8   — | j                   j                  |«      S rü   )r   rb  )rí   r  s     rò   rb  zCCodeWriter.lookup_filename]  s   € Ø×Ñ×/Ñ/°Ó9Ð9rô   c                 ó&   — | j                  d«       y )NÚ__Pyx_RefNannyDeclarationsr)  rý   s    rò   rÇ  z(CCodeWriter.put_declare_refcount_context`  s   € Ø�
‰
Ð/Õ0rô   c                 óÂ   — |j                  «       }|r/| j                  j                  t        j	                  dd«      «       | j                  d||xr dxs dfz  «       y )Nrð  rE  z#__Pyx_RefNannySetupContext(%s, %d);r   r   )rÓ  r   rö  r�  rw  r  )rí   rD  Úacquire_gils      rò   r:  z&CCodeWriter.put_setup_refcount_contextc  s]   € Ø×'Ñ'Ó)ˆÙØ×Ñ×-Ñ-Ü×'Ñ'Ð(:Ð<OÓPôRà�
‰
Ð8¸DÀ+ÒBSÐRSÒBXÐWXÐ;YÑYÕZrô   c                 ó8   — | j                  |rd«       y d«       y )Nz"__Pyx_RefNannyFinishContextNogil()z__Pyx_RefNannyFinishContext();r)  ©rí   Únogils     rò   rV  z'CCodeWriter.put_finish_refcount_contextj  s   € Ø�
‰
¹5Ð7ÕgÐFfÕgrô   c                 óÖ   — |j                  «       }||rt        j                  ndt        j                  t        j                  f}d| j
                  _        | j                  d|z  «       y)zŒ
        Build a Python traceback for propagating exceptions.

        qualified_name should be the qualified name of the function.
        r   Tz#__Pyx_AddTraceback(%s, %s, %s, %s);N)rÓ  r   rA  r?  r@  rr  ri  r  )rí   Úqualified_nameÚinclude_clineÚformat_tuples       rò   Úput_add_tracebackzCCodeWriter.put_add_tracebackm  s[   € ð (×;Ñ;Ó=ˆàÙ$1ŒF× Ò °qÜ×ÑÜ×!Ñ!ð	
ˆð /3ˆ�‰Ô+Ø�
‰
Ð8¸<ÑGÕHrô   c           	      ó:  — d| j                   _        | j                  d|t        j                  t        j
                  t        j                  | j                  j                  d   |fz  «       | j                  j                  t        j                  dd«      «       y)zœ
        Generate code to print a Python warning for an unraisable exception.

        qualified_name should be the qualified name of the function.
        Tz0__Pyx_WriteUnraisable("%s", %s, %s, %s, %d, %d);Úunraisable_tracebacksÚWriteUnraisableExceptionzExceptions.cN)rr  ri  r  r   rA  r?  r@  r   r«  rö  r�  rw  )rí   r1  r/  s      rò   Úput_unraisablezCCodeWriter.put_unraisable~  sˆ   € ð /3ˆ�‰Ô+Ø�
‰
ÐEØÜ× Ñ Ü×ÑÜ×!Ñ!Ø×Ñ×'Ñ'Ð(?Ñ@ØðI
ñ 
ô 	ð 	×Ñ×)Ñ)Ü×#Ñ#Ð$>ÀÓOõ	Qrô   c                 ój   — | j                   j                  d   xs | j                   j                  d   S )NÚprofilerü  )r   r«  rý   s    rò   Ú
is_tracingzCCodeWriter.is_tracing�  s0   € Ø×Ñ×*Ñ*¨9Ñ5Òa¸×9IÑ9I×9TÑ9TÐU`Ñ9aÐarô   c                 ó®   — | j                   j                  }|r+||j                  vr|j                  }|r||j                  vrŒ|r|j                  |   S dS )zk
        Calculate a fake 'instruction offset' from a node position as 31 bit int (32 bit signed).
        r   )rr  rô  Únode_positions_to_offsetÚparent_scope)rí   r±  rô  s      rò   rý  zCCodeWriter.pos_to_offset“  sX   € ð —‘×$Ñ$ˆÙ˜ 5×#AÑ#AÑAØ×&Ñ&ˆEñ ˜ 5×#AÑ#AÒAá6;ˆu×-Ñ-¨cÑ2ÐBÀÐBrô   c                 ó8   — | j                  |rd«       y d«       y )NÚ__Pyx_TraceDeclarationsGenÚ__Pyx_TraceDeclarationsFuncr)  )rí   Úis_generators     rò   Úput_trace_declarationsz"CCodeWriter.put_trace_declarationsœ  s   € Ø�
‰
±<Ð/ÕcÐEbÕcrô   c                 ó2   — |r| j                  d|z  «       y y )Nz__Pyx_TraceFrameInit(%s)r)  )rí   Úcodeobjs     rò   Úput_trace_frame_initz CCodeWriter.put_trace_frame_initŸ  s   € ÙØ�J‰JÐ1°GÑ;Õ<ð rô   c                 ó.  — |rdnd}| j                  |› d|j                  «       › dt        j                  › d| j	                  |d   «      › d|d   › d| j                  |«      d	›d|d	›d|rt        j                  nd
› d| j                  |«      › d�«       y )NÚ__Pyx_TraceStartGenÚ__Pyx_TraceStartFuncrŽ  rm  rÌ  r   ú], r   r÷   rÊ  r2  )r  rÓ  r   Úfiletable_cnamerb  rý  Úskip_dispatch_cnamer·  )rí   rD  r±  r/  rB  Úis_cpdef_funcÚ
trace_funcs          rò   Úput_trace_startzCCodeWriter.put_trace_start£  s§   € Ù.:Ñ*Ð@Vˆ
Ø�
‰
Øˆl˜!Ø×'Ñ'Ó)Ð*¨"Ü×%Ñ%Ð& a¨×(<Ñ(<¸SÀ¹VÓ(DÐ'EÀSØ�1‰vˆh�bØ×!Ñ! #Ó& qÐ)¨Ø�Qˆi�rÙ-:Œv×)Ò)ÀÐDÀBØ�‰˜sÓ#Ð$Øðõ
	
rô   c                 óB   — | j                  dt        |«      d›d�«       y )Nz__Pyx_PyMonitoring_ExitScope(r÷   r2  )r  r�   r.  s     rò   Úput_trace_exitzCCodeWriter.put_trace_exit±  s   € Ø�
‰
Ð2´4¸³;¸q°/ÀÐDÕErô   c           	      óz   — | j                  |«      }| j                  d|› d| j                  |«      › d|› d�«       y )Nz__Pyx_TraceYield(rm  r2  ©r·  r  rý  )rí   Úretvalue_cnamer±  r·  s       rò   Úput_trace_yieldzCCodeWriter.put_trace_yield´  sC   € Ø—_‘_ SÓ)ˆ
Ø�
‰
Ð& ~Ð&6°b¸×9KÑ9KÈCÓ9PÐ8QÐQSÐT^ÐS_Ð_aÐbÕcrô   c                 ó„  — | j                   j                  }|j                  r|j                  j                  d   n|d   }|j                  j                  «       }| j                  |d   «      }| j                  |«      }| j                  d|› dt        j                  › d|› d|› d| j                  |«      › d|› d�«       y )Nr   r   z__Pyx_TraceResumeGen(rm  rÌ  rJ  r2  )rr  rô  Úscope_classr±  rD  rÓ  rb  r·  r  r   rK  rý  )rí   r±  rô  Ú
first_linerD  Úfilename_indexr·  s          rò   Úput_trace_resumezCCodeWriter.put_trace_resume¸  s»   € Ø—‘×$Ñ$ˆà16×1BÒ1B�U×&Ñ&×*Ñ*¨1Ò-ÈÈAÉˆ
Ø�z‰z×-Ñ-Ó/ˆØ×-Ñ-¨c°!©fÓ5ˆØ—_‘_ SÓ)ˆ
Ø�
‰
Ø#Øˆf�BÜ×%Ñ%Ð& a¨Ð'7°sØˆl˜"Ø×!Ñ! #Ó&Ð' rØˆlØðõ	
rô   c           
      ó€   — | j                  d| j                  |«      › dt        |«      d›dt        |«      d›d�«       y )Nú__Pyx_TraceException(rm  r÷   r2  ©r  rý  r�   )rí   r±  ÚreraiseÚfreshs       rò   Úput_trace_exceptionzCCodeWriter.put_trace_exceptionÉ  sE   € Ø�
‰
Ð*¨4×+=Ñ+=¸cÓ+BÐ*CÀ2ÄdÈ7ÃmÐTUÐEVÐVXÔY]Ð^cÓYdÐefÐXgÐgiÐjÕkrô   c                 óJ   — | j                  dt        j                  › d�«       y )Nr\  z, 0, 0);)r  r   r?  rý   s    rò   Úput_trace_exception_propagatingz+CCodeWriter.put_trace_exception_propagatingÌ  s   € Ø�
‰
Ð*¬6×+>Ñ+>Ð*?¸xÐHÕIrô   c                 óL   — | j                  d| j                  |«      › d�«       y )Nz__Pyx_TraceExceptionHandled(r2  )r  rý  rþ  s     rò   Úput_trace_exception_handledz'CCodeWriter.put_trace_exception_handledÏ  s$   € Ø�
‰
Ð1°$×2DÑ2DÀSÓ2IÐ1JÈ"ÐMÕNrô   c                 óf   — | j                  d| j                  |«      › dt        |«      d›d�«       y )Nz__Pyx_TraceExceptionUnwind(rm  r÷   r2  r]  )rí   r±  r/  s      rò   Úput_trace_unwindzCCodeWriter.put_trace_unwindÒ  s3   € Ø�
‰
Ð0°×1CÑ1CÀCÓ1HÐ0IÈÌDÐQVËKÐXYÈ?ÐZ\Ð]Õ^rô   c           	      óz   — | j                  |«      }| j                  d|› d| j                  |«      › d|› d�«       y )Nz__Pyx_TraceStopIteration(rm  r2  rS  )rí   r±  rÍ  r·  s       rò   Úput_trace_stopiterationz#CCodeWriter.put_trace_stopiterationÕ  sB   € Ø—_‘_ SÓ)ˆ
Ø�
‰
Ð.¨u¨g°R¸×8JÑ8JÈ3Ó8OÐ7PÐPRÐS]ÐR^Ð^`ÐaÕbrô   c                 ób  — d}d}|€n\|j                   r|j                  |«      }n>|j                  rd}n/|j                  rd}n |j                  rd}d|j                  › �}nd}| j                  |«      }| j                  |› d|› |› d| j                  |«      › dt        |«      d›d|› d�«       y )	NrP  Ú__Pyx_TraceReturnValuer¾  Ú__Pyx_TraceReturnCValuerm  rŽ  r÷   r2  )	r7  rZ  Úis_voidÚ	is_stringÚto_py_functionr·  r  rý  r�   )rí   rT  r±  rÍ  r/  Ú	extra_argrN  rd  s           rò   Úput_trace_returnzCCodeWriter.put_trace_returnÙ  sÍ   € Øˆ	Ø-ˆ
àÐØØ×$Ò$Ø(×4Ñ4°^ÓD‰NØ× Ò Ø&‰NØ×"Ò"à&‰NØ×'Ò'Ø2ˆJØ˜[×7Ñ7Ð8Ð9‰Ið 'ˆNàŸ™¨Ó-ˆØ�
‰
�j�\  >Ð"2°9°+¸RÀ×@RÑ@RÐSVÓ@WÐ?XÐXZÔ[_Ð`eÓ[fÐghÐZiÐikÐlzÐk{Ð{}Ð~Õrô   ÚDefaultPlacementNewr¡  c                 ód   — | j                   j                  |«       | j                  d|› d�«       y )Nz$__Pyx_default_placement_construct(&(z));)r   rö  r  )rí   r^  Ú_utility_codes      rò   Úput_cpp_placement_newz!CCodeWriter.put_cpp_placement_newñ  s,   € à×Ñ×)Ñ)¨-Ô8Ø�
‰
Ð9¸&¸ÀÐEÕFrô   c                 ój   — | j                  d«       | j                  |«       | j                  d«       y )Nz#ifdef _OPENMPz#endif /* _OPENMP */r)  )rí   Ústrings     rò   Úputln_openmpzCCodeWriter.putln_openmpö  s(   € Ø�
‰
Ð#Ô$Ø�
‰
�6ÔØ�
‰
Ð)Õ*rô   c                 óÖ   — | j                  d|z  «       | j                  d«       | j                  d«       | j                  d«       | j                  d«       | j                  d«       y)zl
        Redefine the macros likely() and unlikely to no-ops, depending on
        condition 'cond'
        ú#if %sú    #undef likelyú    #undef unlikelyz    #define likely(x)   (x)z    #define unlikely(x) (x)râ  Nr)  rK  s     rò   Úundef_builtin_expectz CCodeWriter.undef_builtin_expectû  sT   € ð
 	�
‰
�8˜d‘?Ô#Ø�
‰
Ð&Ô'Ø�
‰
Ð(Ô)Ø�
‰
Ð0Ô1Ø�
‰
Ð0Ô1Ø�
‰
�8Õrô   c                 óÖ   — | j                  d|z  «       | j                  d«       | j                  d«       | j                  d«       | j                  d«       | j                  d«       y )Nry  rz  r{  z2    #define likely(x)   __builtin_expect(!!(x), 1)z2    #define unlikely(x) __builtin_expect(!!(x), 0)râ  r)  rK  s     rò   Úredef_builtin_expectz CCodeWriter.redef_builtin_expect  sR   € Ø�
‰
�8˜d‘?Ô#Ø�
‰
Ð&Ô'Ø�
‰
Ð(Ô)Ø�
‰
ÐGÔHØ�
‰
ÐGÔHØ�
‰
�8Õrô   )NNF)NNTrü   rÜ  )TF)rP  Fro  )rP  NT)TT)FTTrI  )r9  T)TNrt  )FNr•  )FFFrù  )¤r  r  r	  r
  rü  r¶   ró   r‰  r.  r�  r�  r  rý  r’  r“  r6  rœ  rž  rv  rU  rX  rT  rV  rZ  r[  r¨  r\  r±  rW  rY  r|  rƒ  r‡  rŒ  r�  r‘  r•  r™  r›  rÂ  rR  r7  rÔ  rÖ  rØ  rn  rx  rz  r,  r�  rr  rð  râ  r_  rT  rÌ   r¶  rè  rì  rð  r  r­  rò  rú  rù  rô  rÝ  rÞ  rH  r�  r  r  r   r"  r$  rø  r)  rQ  r¬  r:  rP  rC  rF  rH  rM  Úmodifier_output_mapperrQ  rU  rZ  r]  r`  rd  rg  rl  ro  ru  rx  r}  rÒ  r„  r‡  rŒ  rŽ  r�  r’  r•  r—  r›  rž  r¡  r£  r§  rª  r¬  r®  r³  r¶  r¸  r¼  rÀ  rÂ  râ  rÐ  rë  rõ  r÷  rû  rý  r  r	  ró  r  r  r  r·  r!  rÿ  r&  rå  rb  rÇ  r:  rV  r4  r8  r;  rý  rC  rF  rO  rQ  rU  rZ  r`  rb  rd  rf  rh  rp  ru  rt  rw  r|  r~  r  rô   rò   rÖ  rÖ  õ	  s—  „ ñð< €V‡]�]˜}Ô-ò?ó .ð?ò4ò4ò
ò&ò%ð ‡\�\ñ!ó ð!òòò-ò*ð Ù!ó Ø!ØÙ ó Ø ØÙó ØØÙó ØØÙ"ó Ø"ØÙó ØØÙ3ó Ø3ØÙ ó Ø ó&ó2 MÚSÚSÚNÚTÚSÚMÚSÚMÚKÚLò:òó0ó
'ò
ò

ó

ò
=ò>ó0ò
Vòbò.ò?óDò@ð ñ;ó ð;ð ñ<ó ð<ò
Dò&óó%ð ‡\�\ñ	'ó ð	'ð ‡\�\ñFó ðFð ‡\�\ñVó ðVòð
 ‡\�\ñ"ó ð"ð8 ‡\�\ñó ðòð(	R [ó 	Rð ‡\�\ñó ðð ‡\�\ñó ðð ‡\�\ñó ðð ‡\�\ñó ðð ‡\�\ñ1ó ð1òIò%ò%ð 8:Ø9=ó7ð4I°-ó Iò.ò)òð :Pó Bòò5ò*ò+ò,ò+ó7ó8óJóKó>ó>ò9ò:òSòTò1ò2ò2ò3ò9ò:ò9ò:òeòHòIòfó/ò(ò.ò	!óJó(ó/!òbò,ióAó.?òò
ó
+ó"0ò"<ò
Nó
7ó0óòJò6ò;ò;ò:ò1ó[óhóIó"Qò$bòCódó=ó
óFòdò
ó"lòJòOó_òcó@ð2 -8×,<Ò,<Ð=RÐTdÓ,eóGò
+ò

órô   rÖ  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚPyrexCodeWriterc                 óF   — t        j                  |«      | _        d| _        y r–  )r   r
  r  r$   )rí   Úoutfile_names     rò   ró   zPyrexCodeWriter.__init__  s   € Ü×$Ñ$ \Ó2ˆŒØˆ�
rô   c                 ó^   — | j                   j                  d| j                  z  ›|›d�«       y )Nrµ  r8  )r  r  r$   r  s     rò   r  zPyrexCodeWriter.putln  s    € Ø�‰�‰  t§z¡zÒ!1²4Ð8Õ9rô   c                 ó.   — | xj                   dz  c_         y r  r#   rý   s    rò   rø  zPyrexCodeWriter.indent  ó   € Ø�
Š
�a‰Ž
rô   c                 ó.   — | xj                   dz  c_         y r  r#   rý   s    rò   r  zPyrexCodeWriter.dedent  r†  rô   N)r  r  r	  ró   r  rø  r  r  rô   rò   r�  r�    s   „ òò:òórô   r�  c                   ól   — e Zd ZdZdd„Zdd„Zdd„Zed„ «       Zd„ Z	d„ Z
dd	„Zdd
„Zd„ Zd„ Zd„ Zd„ Zy)ÚPyxCodeWriterz7
    Can be used for writing out some Cython code.
    Nc                 óp   — |xs
 t        «       | _        || _        || _        || _        || _        i | _        y rü   )r   r€  r$   Úoriginal_levelrÈ  r  Ú_insertion_points)rí   r€  Úindent_levelrÈ  r  s        rò   ró   zPyxCodeWriter.__init__'  s5   € ØÒ.¤£ˆŒØ!ˆŒ
Ø*ˆÔØˆŒØ ˆŒØ!#ˆÕrô   c                 ó.   — | xj                   |z  c_         yrt  r#   ©rí   Úlevelss     rò   rø  zPyxCodeWriter.indent/  s   € Ø�
Š
�fÑ�
Ørô   c                 ó.   — | xj                   |z  c_         y rü   r#   r�  s     rò   r  zPyxCodeWriter.dedent3  s   € Ø�
Š
�fÑŽ
rô   c              #   óv   K  — | j                  |«       | j                  «        d–— | j                  «        y­w)zf
        with pyx_code.indenter("for i in range(10):"):
            pyx_code.putln("print i")
        N)r  rø  r  )rí   rk  s     rò   ÚindenterzPyxCodeWriter.indenter6  s)   è ø€ ð 	�
‰
�4ÔØ�‰ŒÛØ�‰�ùs   ‚79c                 ó6   — | j                   j                  «       S rü   )r€  Úemptyrý   s    rò   r•  zPyxCodeWriter.emptyA  s   € Ø�{‰{× Ñ Ó"Ð"rô   c                 ó�   — | j                   j                  «       }t        |t        «      r|j	                  | j
                  «      }|S rü   )r€  r�  r°   r“   r�  r  )rí   rµ  s     rò   r�  zPyxCodeWriter.getvalueD  s5   € Ø—‘×%Ñ%Ó'ˆÜ�fœeÔ$Ø—]‘] 4§=¡=Ó1ˆFØˆrô   c                 óÀ   — |€| j                   �| j                   }|�t        ||«      }| j                  j                  |r| j                  dz  › |› d�«       y d«       y )Nz    r8  )rÈ  r@  r€  r  r$   )rí   rk  rÈ  s      rò   r  zPyxCodeWriter.putlnJ  sZ   € Øˆ?Ø�|‰|Ð'ØŸ,™,�ØÐÜ˜t WÓ-ˆDà�‰×Ñ¹d˜TŸZ™Z¨&Ñ0Ð1°$°°rÐ:ÕMÈÕMrô   c                 ó¼   — |€| j                   �| j                   }|�t        ||«      }t        || j                  dz  «      }| j                  j                  |«       y )Nr'  )rÈ  r@  Ú_indent_chunkr$   r€  r  )rí   ÚchunkrÈ  s      rò   Ú	put_chunkzPyxCodeWriter.put_chunkS  sR   € Øˆ?Ø�|‰|Ð'ØŸ,™,�ØÐÜ  wÓ/ˆEä˜e T§Z¡Z°!¡^Ó4ˆØ�‰×Ñ˜%Õ rô   c                 ó€   —  t        | «      | j                  j                  «       | j                  | j                  «      S rü   )rÐ   r€  r6  r$   rÈ  rý   s    rò   r6  zPyxCodeWriter.insertion_point]  s,   € ØŒt�D‹z˜$Ÿ+™+×5Ñ5Ó7¸¿¹ÀTÇ\Á\ÓRÐRrô   c                 óZ   — | j                   j                  «        | j                  | _        y rü   )r€  Úresetr‹  r$   rý   s    rò   rž  zPyxCodeWriter.reset`  s!   € ð 	�‰×ÑÔØ×(Ñ(ˆ�
rô   c                 ó>   — | j                  «       | j                  |<   y rü   )r6  rŒ  r³  s     rò   Únamed_insertion_pointz#PyxCodeWriter.named_insertion_pointf  s   € Ø'+×';Ñ';Ó'=ˆ×Ñ˜tÒ$rô   c                 ó    — | j                   |   S rü   )rŒ  r³  s     rò   rK  zPyxCodeWriter.__getitem__i  s   € Ø×%Ñ% dÑ+Ð+rô   )Nr   NrŽ   )r   rü   )r  r  r	  r
  ró   rø  r  r   r“  r•  r�  r  r›  r6  rž  r   rK  r  rô   rò   r‰  r‰  "  sT   „ ñó$óóð ñó ðò#òóNó!òSò)ò>ó,rô   r‰  rš  Úindentation_lengthr,  c                 óþ  — d| vsJ ‚| j                  d¬«      }|s| S |d   j                  d«      }|r||d<   n|d= |syt        | «      dz   }t        |«      D ]/  \  }}t	        |«      }|dz   t        |«      k(  rd||<   Œ(||k  sŒ.|}Œ1 |t        | «      kD  rd}||k  r"d||z
  z  }|D �cg c]  }|dk7  r||z   nd‘Œ }}n#||kD  r||z
  }	|D �cg c]  }|dk7  r||	d	 nd‘Œ }}d
j                  |«      S c c}w c c}w )zONormalise leading space to the intended indentation and strip empty lines.
    Ú	Tr  rä   rµ  r8  r   r   NrP  )r  rY  r³   rŸ   Ú_count_indentationr  )
rš  r¢  rE  Ú	last_lineÚmin_indentationr<  rk  Úline_indentationÚ
add_indentÚstarts
             rò   r™  r™  m  sq  € ð
 �uÑÐÐØ×Ñ dÐÓ+€EÙØˆØ�b‘	× Ñ  Ó%€IÙØˆˆbŠ	à�"ˆIÙØô #& e£*¨q¡.€Oô ˜UÖ#‰ˆˆ4Ü-¨dÓ3ÐØ˜aÑ¤3 t£9Ò,ØˆE�!ŠHØ Ó/Ø.‰Oð $ð œ˜U›Ò#àˆàÐ+Ò+ØÐ.°Ñ@ÑAˆ
ñ ó
á�ð "&¨¢ˆJ˜Ò°4Ñ7Øð 	ñ 
ð 
Ð-Ò	-Ø+Ð.@Ñ@ˆñ ó
á�ð ! DšLˆD��‰L¨dÑ2Øð 	ð 
ð
 �7‰7�5‹>Ðùò
ùò
s   Â+C5ÃC:rä   rÇ  c                 ó@   — d}t        | «      D ]  \  }}|dk7  sŒ |S  |S )Nr   rµ  )rŸ   )rÇ  r<  Úchs      rò   r¥  r¥  ž  s1   € ð €Aä˜1–‰ˆˆ2Ø�‹9ØØ€Hð ð €Hrô   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)rÆ  c                 ó<   — || _         i | _        i | _        d| _        y r–  )Úklassra  rb  Útemps_count)rí   r¯  s     rò   ró   zClosureTempAllocator.__init__ª  s    € ØˆŒ
Ø!ˆÔØˆŒØˆÕrô   c                 óx   — | j                   j                  «       D ]  \  }}t        |«      | j                  |<   Œ y rü   )ra  r@  rµ   rb  )rí   rÐ   rÛ  s      rò   rž  zClosureTempAllocator.reset°  s1   € Ø ×0Ñ0×6Ñ6Ö8‰LˆD�&Ü$(¨£LˆD�O‰O˜DÒ!ñ 9rô   c                 óž  — || j                   vrg | j                   |<   g | j                  |<   n-| j                  |   r| j                  |   j                  d«      S dt        j                  | j
                  fz  }| j                  j                  d |||d¬«       | j                   |   j                  |«       | xj
                  dz  c_        |S )Nr   ru  T)r±  rD  r.  rÐ   Úis_cdefr   )	ra  rb  r­  r   r¯  r°  r¯  Údeclare_varr\  )rí   rÐ   r.  s      rò   r¶  z"ClosureTempAllocator.allocate_temp´  s¼   € Ø�t×+Ñ+Ñ+Ø)+ˆD× Ñ  Ñ&Ø$&ˆD�O‰O˜DÒ!Ø�_‰_˜TÒ"Ø—?‘? 4Ñ(×,Ñ,¨QÓ/Ð/Øœ&×7Ñ7¸×9IÑ9IÐJÑJˆØ�
‰
×Ñ 4¨e¸5ÀtÐUYÐÔZØ×Ñ˜TÑ"×)Ñ)¨%Ô0Ø×Ò˜AÑÕØˆrô   N)r  r  r	  ró   rž  r¶  r  rô   rò   rÆ  rÆ  ©  s   „ òò1ó
rô   rÆ  r  )jrü  Údeclarer¼   r  r   r   r   r  r   Údataclassesr   rv  r   Ú	functoolsr   r   Ú
contextlibr   r   Úcollectionsr   rP  r   r	   r   r
   r   ÚScanningr   r   r"   r   r   r%   r   rT   Úcompression.zstdr   r   Úzstd_CompressionParameterr    Úzstd_StrategyÚstrategyÚbtultra2Úcompression_levelÚboundsrþ  r¯  Úctypedef_builtins_mapÚbasicsize_builtins_mapÚKNOWN_PYTHON_BUILTINS_VERSIONr§   ÚKNOWN_PYTHON_BUILTINSÚuncachable_builtinsrÌ  r   r  rÔ  rá   r  r[  r  r  r/  r˜  r�  r  r  r  r%  r0  r4  r9  rÜ  r@  rt  rJ  rP  rË  rÒ  r—   ÚUr4  rÕ  rÖ  rX  r×  ÚfindallrØ  rÚ  rí  r+  rv  rx  rÖ  r�  r‰  rý  Úccallr(   r¯   r™  Ú	exceptvalÚcfuncr¥  rÆ  r  rô   rò   Ú<module>rÌ     s¯  ðó Ø €‡�ò f‘&ð f™Vð f©fð f¹vð fÙðfÙ'-ðfÙ7=ðfÙNTðfáðfá.4ðfáCIðfñ !ðfñ /5ðfñ ð	fñ (.ð	fñ 6<ð	fñ
 $ðfñ
 39ðfñ
 IOðfñ
 _eñfó Û Û 	Û 	Û Û Ý !Ý ß $ß .Ý #å Ý Ý Ý Ý Ý &Ý 'õ +ð:Ý,ñ ˜<°qÔ9€Lð
÷ñ ñ ˜MØ!×*Ñ*¨M×,BÑ,BØ!×3Ñ3Ð5N×5`Ñ5`×5gÑ5gÓ5iÐjkÑ5lð4ô €Mð 	"Øð ˆ‘˜¨QÔ/Ð0Øˆˆ|ÐØˆ�Ðð	Ð ð ØØØñÐ ð *Ø)Ø*Ø1ñÐ ð Ð&ðÐ ð !6Ð Ù!ò `#ó `Ð òDÐ ð2 $�V—^‘^ I©yð :ó 0ó Ð ð ˆoðç�#ð ð !/ §¡¨vØØØñ8÷ �#ó	!Ð ÷I'ñ I'òX/ð Ð ðòð 6Ð ÷ñ ôSÐ)ô Sðj ÷ð ó ðôK5�/ô K5ð\ -1ÀUÐeiÐdjô &ñR ØØ
6ôñ*ó	ð*ñ Óð* Kò *ó ð*ñ ØØð	ô	ñ	2óð	2ñ Øˆ{ØØ
+ôñ
Wóð
Wñ Øð ,ô	ñ/óð/ñ ØØØ
(ôñ
7óð
7ñ Óñó ðð "&¨D¸"ó (ô&=˜ô =ôD?�oô ?÷ G9ñ G9÷T.ñ .÷ ñ ð €‡�¨6ÈVØ"(¸õAà(˜bŸj™jÐ)9¸2¿4¹4Ó@×FÑFÐ Ø&˜BŸJ™JÐ'8Ó9×?Ñ?Ð Ø�R—Z‘ZÐ 1Ó2×6Ñ6Ð Ø�—‘Ð,Ó-×5Ñ5€÷?ñ ?÷D(ñ (÷$C6ñ C6òL ÷7ñ 7÷Xñ X÷v ñ ÷$H,ñ H,ðV ‡�Ø‡�ð,˜ð ,°&·*±*ð ,Àò ,ó ó ð,ð^ €×Ñ�"ÓØ‡�ð˜#ð  &§*¡*ò ó ó ð÷ò øðEt ò ØƒLðûð ò ØƒMðús$   Â<O& Ã
O4 Ï&O1Ï0O1Ï4O?Ï>O?