ó
    "EñiŸ~  ã                   óR  • % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
Jr  S SKJr  S SKJrJrJr  S SKJr  S SKrS SKJrJr  S SKJr  SS	KJr  SS
KJrJrJrJ r J!r!  SSK"J#r#J$r$  SSK%J&r&  SSK'J(r(J)r)  SSK*J+r+  \(       a  SSK,J-r-  S/r./ SQr/\\0   \1S'   S\0\2S.0r3\4\0\4\0\4   4   \1S'    " S S\+5      r5\6" 5       r7Sr8\8S-   r9 " S S5      r: " S S\:5      r; " S S\:5      r< " S S \:5      r=\" 5       r>\\1S!'   \R~                  r@S" rA\A\l?         " S# S$5      rBg)%é    N)ÚCallableÚIterable)Úcontextmanager)ÚAnyÚcastÚTYPE_CHECKING)ÚWeakValueDictionary)Ú_get_restore_locationÚ_maybe_decode_ascii)ÚFileLikeé   )ÚDirectoryReader)Ú_calc___package__Ú_normalize_line_endingsÚ_normalize_pathÚ_resolve_nameÚ_sanity_check)ÚdemangleÚPackageMangler©ÚPackageUnpickler)Ú _create_directory_from_file_listÚ	Directory)ÚImporter)ÚGlobPatternÚPackageImporter)Únumpyz
numpy.coreznumpy.core._multiarray_umathÚbuiltinsÚIMPLICIT_IMPORT_ALLOWLISTr   )ÚstrÚboolÚ!EXTERN_IMPORT_COMPAT_NAME_MAPPINGc                   ó&  • \ rS rSr% Sr \\\R                  4   \	S'   S 4S\
\R                  R                  -  S\\/\4   4S jjrS9S	\4S
 jjrS\S\S\4S jr  S:S\S\S\S\S\4
S jjrS9S\S\S\4S jjrS rSSS.SSSSS\4S jjrS rS rS	\S\S-  S\S\4S  jrS	\S\4S! jrS"\S#\4S$ jrS\4S% jrS& r S\S	\S'\R                  4S( jr!S) r"S* r#S;S+ jr$S,S-.S. jr%S<S/ jr&S0 r'S9S1 jr(S2\)\   SS34S4 jr*S\4S5 jr+S6\4S7 jr,S8r-g)=r   éB   a  Importers allow you to load code written to packages by :class:`PackageExporter`.
Code is loaded in a hermetic way, using files from the package
rather than the normal python import system. This allows
for the packaging of PyTorch model code and data so that it can be run
on a server or used in the future for transfer learning.

The importer for packages ensures that code in the module can only be loaded from
within the package, except for modules explicitly listed as external during export.
The file ``extern_modules`` in the zip archive lists all the modules that a package externally depends on.
This prevents "implicit" dependencies where the package runs locally because it is importing
a locally-installed package, but then fails when the package is copied to another machine.
Úmodulesc                 ó   • g)NT© )Úmodule_names    Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/package/package_importer.pyÚ<lambda>ÚPackageImporter.<lambda>Y   s   € ÀDó    Úfile_or_bufferÚmodule_allowedc                 ó0  ^ • [         R                  R                  S5        T   [        U[         R                  R                  5      (       a  ST l        UT l        Oã[        U[        R                  [        45      (       a“  [        R                  " U5      T l        [        R                  R                  T R
                  5      (       d/  [         R                  R	                  T R
                  5      T l        OF[        T R
                  5      T l        O+ST l        [         R                  R	                  U5      T l        [         R                  R                  ST R                  R                  5       T R
                  S.5        [!        S5      T l        0 T l        T R'                  5       T l        T R(                   H3  nU" U5      (       d  [+        SU SU S	35      eT R-                  U5        M5     T R                  R/                  5        H  nT R1                  U5        M     [2        R4                  R7                  5       T l        T R:                  T R8                  S
'   T T R$                  S'   [=        5       T l        ST l         ST l!        U 4S jT l"        g)až  Open ``file_or_buffer`` for importing. This checks that the imported package only requires modules
allowed by ``module_allowed``

Args:
    file_or_buffer: a file-like object (has to implement :meth:`read`, :meth:`readline`, :meth:`tell`, and :meth:`seek`),
        a string, or an ``os.PathLike`` object containing a filename.
    module_allowed (Callable[[str], bool], optional): A method to determine if a externally provided module
        should be allowed. Can be used to ensure packages loaded do not depend on modules that the server
        does not support. Defaults to allowing anything.

Raises:
    ImportError: If the package will use a disallowed module.
ztorch.package.PackageImporterz<pytorch_file_reader>z<binary>z&torch.package.PackageImporter.metadata)Úserialization_idÚ	file_nameNz	package 'z' needs the external module 'z%' but that module has been disallowedÚ
__import__Útorch_package_importerc                  ó"   >• [        T/U Q70 UD6$ ©Nr   )ÚargsÚkwargsÚselfs     €r)   r*   Ú*PackageImporter.__init__.<locals>.<lambda>›   s   ø€ Ô1AÀ$Ð1XÈÒ1XÐQWÒ1Xr,   )#ÚtorchÚ_CÚ_log_api_usage_onceÚ
isinstanceÚPyTorchFileReaderÚfilenameÚ
zip_readerÚosÚPathLiker    ÚfspathÚpathÚisdirr   Ú_log_api_usage_metadatar0   Ú_PackageNodeÚrootr%   Ú_read_externÚextern_modulesÚImportErrorÚ_add_externÚget_all_recordsÚ	_add_filer   Ú__dict__ÚcopyÚpatched_builtinsr2   r   Ú_manglerÚstorage_contextÚlast_map_locationÚ	Unpickler)r8   r-   r.   Úextern_moduleÚfnames   `    r)   Ú__init__ÚPackageImporter.__init__V   sô  ø€ ô$ 	�‰×$Ñ$Ð%DÔEáÜ�n¤e§h¡h×&@Ñ&@×AÑAØ3ˆDŒMØ,ˆD�OÜ˜¬¯©´cÐ(:×;Ñ;ÜŸIšI nÓ5ˆDŒMÜ—7‘7—=‘= §¡×/Ñ/Ü"'§(¡(×"<Ñ"<¸T¿]¹]Ó"K�•ä"1°$·-±-Ó"@�•à&ˆDŒMÜ#Ÿh™h×8Ñ8¸ÓHˆDŒOä�‰×(Ñ(Ø4à$(§O¡O×$DÑ$DÓ$FØ!Ÿ]™]ñô	
ô ! Ó&ˆŒ	ØˆŒØ"×/Ñ/Ó1ˆÔà!×0Ô0ˆMÙ! -×0Ñ0Ü!Ø Ð/Ð/LÈ]ÈOð \:ð ;óð ð ×Ñ˜]Ö+ñ 1ð —_‘_×4Ñ4Ö6ˆEØ�N‰N˜5Ö!ñ 7ô !)× 1Ñ 1× 6Ñ 6Ó 8ˆÔØ.2¯o©oˆ×Ñ˜lÑ+à15ˆ�‰Ð-Ñ.ä&Ó(ˆŒð %)ˆÔØ!%ˆÔô Yˆ�r,   NÚnamec                 óZ   • U R                   R                  U5      nU R                  U5      $ )aÏ  Load a module from the package if it hasn't already been loaded, and then return
the module. Modules are loaded locally
to the importer and will appear in ``self.modules`` rather than ``sys.modules``.

Args:
    name (str): Fully qualified name of the module to load.
    package ([type], optional): Unused, but present to match the signature of importlib.import_module. Defaults to ``None``.

Returns:
    types.ModuleType: The (possibly already) loaded module.
)rR   r   Ú_gcd_import)r8   rZ   Úpackages      r)   Úimport_moduleÚPackageImporter.import_module�   s)   € ð& �}‰}×%Ñ% dÓ+ˆà×Ñ Ó%Ð%r,   r]   ÚresourceÚreturnc                 óZ   • U R                  X5      nU R                  R                  U5      $ )zÈLoad raw bytes.

Args:
    package (str): The name of module package (e.g. ``"my_package.my_subpackage"``).
    resource (str): The unique name for the resource.

Returns:
    bytes: The loaded data.
)Ú_zipfile_pathr@   Ú
get_record)r8   r]   r`   rD   s       r)   Úload_binaryÚPackageImporter.load_binary´   s)   € ð ×!Ñ! 'Ó4ˆØ�‰×)Ñ)¨$Ó/Ð/r,   ÚencodingÚerrorsc                 óF   • U R                  X5      nUR                  X45      $ )a^  Load a string.

Args:
    package (str): The name of module package (e.g. ``"my_package.my_subpackage"``).
    resource (str): The unique name for the resource.
    encoding (str, optional): Passed to ``decode``. Defaults to ``'utf-8'``.
    errors (str, optional): Passed to ``decode``. Defaults to ``'strict'``.

Returns:
    str: The loaded text.
)re   Údecode)r8   r]   r`   rg   rh   Údatas         r)   Ú	load_textÚPackageImporter.load_textÂ   s#   € ð$ ×Ñ Ó2ˆØ�{‰{˜8Ó,Ð,r,   c                 ó   ^ ^^
^^^^• T R                  X5      n[        T5      m0 m0 m[        R                  R	                  5       mUU U4S jm
U
UUUU 4S jn[
        R                  " T R                  R                  U5      5      nT R                  U5      nXWl
        [        UU U4S j5       nU" 5          UR                  5       n	SSS5        [        R                  R                  5         W	$ ! , (       d  f       N.= f)a­  Unpickles the resource from the package, loading any modules that are needed to construct the objects
using :meth:`import_module`.

Args:
    package (str): The name of module package (e.g. ``"my_package.my_subpackage"``).
    resource (str): The unique name for the resource.
    map_location: Passed to `torch.load` to determine how tensors are mapped to devices. Defaults to ``None``.

Returns:
    Any: The unpickled object.
c                 óx  >• U S3nT
R                  U5      (       a   T
R                  XP5      R                  5       nOsT	R                  R	                  SU-   X5      n[        T	R                  [        R                  R                  5      (       a  T
R                  XW5        UR                  5       nU" Xc5      TU'   g )Nz.storagez.data/)
Úhas_storageÚget_storageÚ_typed_storager@   Úget_storage_from_recordr=   r:   r;   r>   Úadd_storage)ÚdtypeÚsizeÚkeyÚlocationÚrestore_locationrZ   ÚstorageÚtensorÚloaded_storagesr8   rS   s           €€€r)   Úload_tensorÚ0PackageImporter.load_pickle.<locals>.load_tensoré   sž   ø€ Ø�U˜(Ð#ˆDà×*Ñ*¨4×0Ñ0Ø)×5Ñ5°dÓB×QÑQÓS‘àŸ™×@Ñ@Ø˜t‘O Tó�ô ˜dŸo™o¬u¯x©x×/IÑ/I×JÑJØ#×/Ñ/°Ô=Ø ×/Ñ/Ó1�Ù#3°GÓ#FˆO˜CÒ r,   c                 ó(  >• [        U [        5      (       d!  [        S[        U 5      R                   35      e[        U S   5      nU SS  nUS:X  a~  Uu  p4pVU[        R                  L a  [        R                  nOUR                  nUT;  a  T" UUU[        U5      T5        TU   n[        R                  R                  UR                  USS9$ US:X  a8  [        U5      S:X  a  Uu  pšU	" T/U
Q76 $ Uu  p¹n
UT;  a  U	" T/U
Q76 TU'   TU   $ S	U S
3  g )Nzsaved_id must be a tuple, got r   r   rz   T)Úwrap_storageru   Ú	_internalÚreduce_packageé   zVUnknown typename for persistent_load, expected 'storage' or 'reduce_package' but got 'Ú')r=   ÚtupleÚAssertionErrorÚtypeÚ__name__r   r:   ÚUntypedStorageÚuint8ru   rz   ÚTypedStorageÚ_untyped_storageÚlen)Úsaved_idÚtypenamerk   Ústorage_typerw   rx   rv   ru   rz   Úfuncr6   Ú	reduce_idr}   Úloaded_reducesr|   ry   r8   s               €€€€€r)   Úpersistent_loadÚ4PackageImporter.load_pickle.<locals>.persistent_load÷   sL  ø€ Ü˜h¬×.Ñ.Ü$Ø4´T¸(³^×5LÑ5LÐ4MÐNóð ô +¨8°A©;Ó7ˆHØ˜A˜B�<ˆDà˜9Ó$Ø48Ñ1� 8Ø¤5×#7Ñ#7Ò7Ü!ŸK™K‘Eà(×.Ñ.�Eà˜oÓ-ÙØØØÜ+¨HÓ5Ø(ôð *¨#Ñ.�ô —}‘}×1Ñ1Ø!(×!9Ñ!9ÀÐRVð 2ð ð ð Ð-Ó-ô �t“9 “>Ø!%‘J�DÙ Ð, tÒ,Ð,Ø(,Ñ%�	 Ø NÓ2Ù04°TÐ0A¸DÒ0A�N 9Ñ-Ø% iÑ0Ð0àhÐiqÐhrÐrsÒtr,   c               3   óv   >#   • TTl         T Tl         S v •  S Tl         S Tl        g ! S Tl         S Tl        f = f7fr5   )rS   rT   )Úmap_locationr8   rS   s   €€€r)   Úset_deserialization_contextÚ@PackageImporter.load_pickle.<locals>.set_deserialization_context&  sC   øé € ð $3ˆDÔ Ø%1ˆDÔ"ð.Ûà'+�Ô$Ø)-�Õ&øð (,�Ô$Ø)-�Õ&üs   ƒ9“& —9¦6¶9N)rc   r
   r:   r;   ÚDeserializationStorageContextÚioÚBytesIOr@   rd   rU   r”   r   ÚloadÚ_utilsÚ_validate_loaded_sparse_tensors)r8   r]   r`   r—   Úpickle_filer”   Ú	data_fileÚ	unpicklerr˜   Úresultr}   r“   r|   ry   rS   s   `  `      @@@@@r)   Úload_pickleÚPackageImporter.load_pickle×   sÍ   þ€ ð ×(Ñ(¨Ó;ˆÜ0°Ó>ÐØˆØˆÜŸ(™(×@Ñ@ÓBˆ÷	G÷(	uñ (	uôV —J’J˜tŸ™×9Ñ9¸+ÓFÓGˆ	Ø—N‘N 9Ó-ˆ	Ø$3Ô!ä	ö	.ó 
ð	.ñ )Õ*Ø—^‘^Ó%ˆF÷ +ô 	�‰×4Ñ4Ô6àˆ÷ +Õ*ús   Â6C/Ã/
C=c                 ó6   • U R                   R                  5       $ )zŒ
Returns internal identifier that torch.package uses to distinguish :class:`PackageImporter` instances.
Looks like::

    <torch_package_0>
)rR   Úparent_name©r8   s    r)   ÚidÚPackageImporter.id<  s   € ð �}‰}×(Ñ(Ó*Ð*r,   z**r'   )ÚincludeÚexcluder«   r   r¬   c                ó`   • [        U R                  U R                  R                  5       X5      $ )aø  Returns a file structure representation of package's zipfile.

Args:
    include (Union[List[str], str]): An optional string e.g. ``"my_package.my_subpackage"``, or optional list of strings
        for the names of the files to be included in the zipfile representation. This can also be
        a glob-style pattern, as described in :meth:`PackageExporter.mock`

    exclude (Union[List[str], str]): An optional pattern that excludes files whose name match the pattern.

Returns:
    :class:`Directory`
)r   r?   r@   rM   )r8   r«   r¬   s      r)   Úfile_structureÚPackageImporter.file_structureE  s)   € ô 0Ø�M‰M˜4Ÿ?™?×:Ñ:Ó<¸gó
ð 	
r,   c                 óº   • SnU R                   R                  U5      (       a8  U R                   R                  U5      R                  S5      R	                  5       $ S$ )a-  Returns the version of python that was used to create this package.

Note: this function is experimental and not Forward Compatible. The plan is to move this into a lock
file later on.

Returns:
    :class:`Optional[str]` a python version e.g. 3.8.9 or None if no version was stored with this package
z.data/python_versionúutf-8N)r@   Ú
has_recordrd   rj   Ústrip)r8   Úpython_version_paths     r)   Úpython_versionÚPackageImporter.python_versionX  sZ   € ð 5Ðð �‰×)Ñ)Ð*=×>Ñ>ð �O‰O×&Ñ&Ð':Ó;×BÑBÀ7ÓK×QÑQÓSð	
ð ð	
r,   c                 óp   • U R                   R                  S5      R                  S5      R                  SS9$ )Nz.data/extern_modulesr±   F)Úkeepends)r@   rd   rj   Ú
splitlinesr¨   s    r)   rI   ÚPackageImporter._read_externh  s/   € à�O‰O×&Ñ&Ð'=Ó>ß‰V�G‹_ß‰Z ˆZÐ'ð	
r,   r?   Ú
is_packageÚparentc                 óú  • U(       a  U R                   R                  U5      OS n[        R                  R	                  UU SUS9n[        R
                  R                  U5      nXpR                  U'   U R                   R                  U5      Ul        UR                  nXhS'   XS'   XXS'   S US'   U R                  US'   SUS	'   UR                  [        ;   a  [        S
UR                   S35      eU[        UR                  '   U R                  XAU5        Ubc  Uc  [        S5      eU[        R                  ;   a  [        SU S35      e[        R                   " XX5        U R#                  X%5      n	[%        X˜5        U$ )Nz<package_importer>)Úoriginr»   Ú__spec__Ú
__loader__Ú__file__Ú
__cached__Ú__builtins__TÚ__torch_package__zmodule z, already exists in _package_imported_modulesz6mangled_filename must not be None when filename is setz	filename z already in linecache.cache)rR   ÚmangleÚ	importlibÚ	machineryÚ
ModuleSpecÚutilÚmodule_from_specr%   rˆ   rO   rQ   Ú_package_imported_modulesr†   Ú_install_on_parentÚ	linecacheÚcacheÚ	lazycacheÚ_compile_sourceÚexec)
r8   rZ   r?   r»   r¼   Úmangled_filenameÚspecÚmoduleÚnsÚcodes
             r)   Ú_make_moduleÚPackageImporter._make_moduleo  s|  € ö >F˜4Ÿ=™=×/Ñ/°Ô9È4ÐÜ×"Ñ"×-Ñ-ØØØ'Ø!ð	 .ð 
ˆô —‘×0Ñ0°Ó6ˆØ#�‰�TÑØŸ-™-×.Ñ.¨tÓ4ˆŒØ�_‰_ˆØˆ:‰Øˆ<ÑØ)ˆ:‰Øˆˆ<ÑØ!×2Ñ2ˆˆ>ÑØ"&ˆÐÑð �?‰?Ô7Ó7Ü Ø˜&Ÿ/™/Ð*Ð*VÐWóð ð 6<Ô! &§/¡/Ñ2ð 	×Ñ ¨fÔ5àÑØÑ'Ü$ØLóð ð
 œ9Ÿ?™?Ó*Ü$ y°°
Ð:UÐ%VÓWÐWÜ×ÒÐ 0Ô5à×'Ñ'¨ÓCˆDÜ�ŒNàˆr,   c           	      óÖ  • U R                   nUR                  S5       GH  n[        U[        5      (       a  XCR                  ;  aY  U[
        ;   a(  [        R                  " U5      =oPR                  U'   Us  $ [        SU SU R                   SU R                   3US9eUR                  U   n[        U[        5      (       d  M§  [        R                  " U5      =oPR                  U'   [        R                  U5      =n(       a4  UR                  5        H   u  pxUR                   R#                  Xx5        M"     Us  $    U R%                  UUR&                  [        U[        5      U5      $ )NÚ.zNo module named "z" in self-contained archive "zF" and the module is also not in the list of allowed external modules: ©rZ   )rH   Úsplitr=   rG   Úchildrenr   rÆ   r^   r%   ÚModuleNotFoundErrorr?   rJ   Ú_ExternNoder"   ÚgetÚitemsrO   Ú
setdefaultr×   Úsource_file)	r8   rZ   r¼   ÚcurÚatomrÔ   Úcompat_mappingÚold_nameÚnew_names	            r)   Ú_load_moduleÚPackageImporter._load_moduleŸ  sC  € ØŸ™ˆØ—J‘J˜s—OˆDÜ˜c¤<×0Ñ0°DÇÁÓ4LØÔ4Ó4Ü2;×2IÒ2IÈ$Ó2OÐO�FŸ\™\¨$Ñ/Ø!’MÜ)Ø'¨ vÐ-JÈ4Ï=É=È/ð Z\Ø\`×\oÑ\oÐ[pðràñð ð
 —,‘,˜tÑ$ˆCÜ˜#œ{×+Ó+Ü.7×.EÒ.EÀdÓ.KÐK�Ÿ™ dÑ+ä%F×%JÑ%JÈ4Ó%PÐP�>ÕPØ.<×.BÑ.BÖ.DÑ*˜ØŸ™×2Ñ2°8ÖFñ /Eð ’ñ% $ð& × Ñ ØØ�O‰OÜ�sœLÓ)Øó	
ð 	
r,   ÚfullpathrÒ   c                 ód   • U R                   R                  U5      n[        U5      n[        X2SSS9$ )NrÑ   T)Údont_inherit)r@   rd   r   Úcompile)r8   rë   rÒ   Úsources       r)   rÐ   ÚPackageImporter._compile_source»  s/   € Ø—‘×+Ñ+¨HÓ5ˆÜ(¨Ó0ˆÜ�v°ÀdÑKÐKr,   c                 ó°   • U R                  [        U5      5      nU R                  R                  [        UR                  5      5      R                  S5      $ )Nr±   )r^   r   r@   rd   rÁ   rj   )r8   r(   rÔ   s      r)   Ú
get_sourceÚPackageImporter.get_sourceÂ  s@   € à×#Ñ#¤H¨[Ó$9Ó:ˆØ�‰×)Ñ)¬(°6·?±?Ó*CÓD×KÑKÈGÓTÐTr,   c                 ó|   •  U R                  U5      nUR                  U La  g [        X5      $ ! [         a     g f = fr5   )Ú_get_packagerK   rÀ   Ú_PackageResourceReader)r8   Úfullnamer]   s      r)   Úget_resource_readerÚ#PackageImporter.get_resource_readerÉ  sI   € ð	Ø×'Ñ'¨Ó1ˆGð ×Ñ TÒ)ØÜ% dÓ5Ð5øô	 ó 	Ùð	ús   ‚. ®
;º;rÔ   c                 óŽ   • U(       d  g U R                   U   nUR                  U L a  [        XBR                  S5      S   U5        g g )NrÚ   rƒ   )r%   rÀ   ÚsetattrÚ
rpartition)r8   r¼   rZ   rÔ   Úparent_modules        r)   rÌ   Ú"PackageImporter._install_on_parentÒ  sA   € ÞØàŸ™ VÑ,ˆØ×#Ñ# tÒ+Ü�M§?¡?°3Ó#7¸Ñ#:¸FÕCð ,r,   c                 ó@  • UR                  S5      S   nUR                  S5      S   nU(       aZ  X R                  ;  a  U R                  U5        XR                  ;   a  U R                  U   $ U R                  U   n UR                    U R%                  X5      nU R'                  X!U5        U$ ! [         aä    [        UR                  [        R                  R                  5      (       aŽ  XR                  ;  a"  [        S-   R                  X5      n[        XQS9S e[        UR                  R                  U5      [         R"                  5      (       d#  [        S-   R                  XU5      n[        XQS9S e Nð[        S-   R                  X5      n[        XQS9S ef = f)NrÚ   r   éÿÿÿÿzÌ; {!r} is a c extension module which was not externed. C extension modules                             need to be externed by the PackageExporter in order to be used as we do not support interning them.}.rÛ   z<; {!r} is a c extension package which does not contain {!r}.z; {!r} is not a package)rü   r%   r\   Ú__path__ÚAttributeErrorr=   rÀ   rÆ   rÇ   ÚExtensionFileLoaderrJ   Ú_ERR_MSGÚformatrÞ   rO   rà   ÚtypesÚ
ModuleTyperé   rÌ   )r8   rZ   r¼   Úmodule_name_no_parentrý   ÚmsgrÔ   s          r)   Ú_do_find_and_loadÚ!PackageImporter._do_find_and_loadÛ  sœ  € Ø—‘ Ó% aÑ(ˆØ $§¡°Ó 4°RÑ 8ÐÞØŸ\™\Ó)Ø× Ñ  Ô(à—|‘|Ó#Ø—|‘| DÑ)Ð)Ø ŸL™L¨Ñ0ˆMðHØ×&Ò&ð< ×"Ñ" 4Ó0ˆà×Ñ ¨fÔ5àˆøôA "ó Hô Ø!×,Ñ,Ü×'Ñ'×;Ñ;÷ñ ð ×#6Ñ#6Ó6ä$ðCñC÷ !™& Ó,ð	 ô
 2°#ÑAÀtÐKÜ%Ø%×.Ñ.×2Ñ2Ð3HÓIÜ×(Ñ(÷ñ ô
 %Ø\ñ]ç ™& ¨tÓ4ð ô 2°#ÑAÀtÐKñô $Ð&?Ñ?×GÑGÈÓU�CÜ-¨cÑ=À4ÐGð5Hús   Á>B/ Â/C	FÅ:#Fc                 óÌ  • U R                   R                  U[        5      nU[        L a  U R                  U5      $ Uc  SU S3n[	        X1S9eUS:X  a)  [        [        U5      R                  U R                   S'   U$ US:X  ab  [        R                  S:  aN  [        [        U5      R                  U R                   S'   [        [        U5      R                  U R                   S	'   U$ )
Nz
import of z halted; None in sys.modulesrÛ   rA   zos.pathÚtyping)é   é   z	typing.ioz	typing.re)r%   rà   Ú_NEEDS_LOADINGr
  rÞ   r   r   rD   ÚsysÚversion_infor›   Úre)r8   rZ   rÔ   Úmessages       r)   Ú_find_and_loadÚPackageImporter._find_and_load  sÎ   € Ø—‘×!Ñ! $¬Ó7ˆØ”^Ò#Ø×)Ñ)¨$Ó/Ð/à‰>Ø" 4 &Ð(DÐEˆGÜ% gÑ9Ð9ð
 �4‹<Ü&*¬3°Ó&7×&<Ñ&<ˆD�L‰L˜Ñ#ð ˆð �XÓÜ×Ñ 'Ó)Ü,0´°fÓ,=×,@Ñ,@�—‘˜[Ñ)Ü,0´°fÓ,=×,@Ñ,@�—‘˜[Ñ)àˆr,   c                 ó`   • [        XU5        US:”  a  [        XU5      nU R                  U5      $ )a  Import and return the module based on its name, the package the call is
being made from, and the level adjustment.

This function represents the greatest common denominator of functionality
between import_module and __import__. This includes setting __package__ if
the loader did not.

r   )r   r   r  )r8   rZ   r]   Úlevels       r)   r\   ÚPackageImporter._gcd_import!  s2   € ô 	�d UÔ+Ø�1‹9Ü  °Ó6ˆDà×"Ñ" 4Ó(Ð(r,   F©Ú	recursivec          	      óZ  • [        UR                  5      n[        US5      (       aº  U H´  n[        U[        5      (       d3  U(       a  US-   nOSn[        SU S[        U5      R                   35      eUS:X  a8  U(       d/  [        US5      (       a  U R                  XR                  SS	9  M…  M‡  M‰  [        X5      (       a  M›  U S
U 3n U R                  U5        M¶     U$ ! [         a=  nUR                  U:X  a'  U R                  R                  U[        5      b   SnAMû  e SnAff = f)zÞFigure out what __import__ should return.

The import_ parameter is a callable which takes the name of module to
import. It is required to decouple the function from assuming importlib's
import implementation is desired.

r  z.__all__z``from list''zItem in z must be str, not Ú*Ú__all__Tr  rÚ   N)r   rˆ   Úhasattrr=   r    Ú	TypeErrorr‡   Ú_handle_fromlistr  r\   rÞ   rZ   r%   rà   r  )	r8   rÔ   Úfromlistr  r(   ÚxÚwhereÚ	from_nameÚexcs	            r)   r!  Ú PackageImporter._handle_fromlist1  s  € ô ˜vŸ™Ó/ˆô �6˜:×&Ñ&Û�Ü! !¤S×)Ñ)Þ Ø +¨jÑ 8™à /˜Ü#Ø" 5 'Ð);¼DÀ»G×<LÑ<LÐ;MÐNóð ð ˜#“XÞ$¬°¸×)CÑ)CØ×-Ñ-¨f·n±nÐPTÐ-ÓUñ *D™9ä  ×+Ó+Ø#. -¨q°°Ð 4�IðØ×(Ñ(¨Ö3ñ ð4 ˆøô /ó 	ð
  ŸH™H¨	Ó1Ø $§¡× 0Ñ 0°¼NÓ KÑ Wå$Øûð	ús   ÃC#Ã#
D*Ã-1D%Ä$D%Ä%D*c                 óÆ  • US:X  a  U R                  U5      nO$Ub  UO0 n[        U5      nU R                  XU5      nU(       dŽ  US:X  a#  U R                  UR                  S5      S   5      $ U(       d  U$ [        U5      [        UR                  S5      S   5      -
  n	[	        UR
                  5      n
U R                  U
S [        U
5      U	-
      $ U R                  Xd5      $ )Nr   rÚ   )r\   r   Ú	partitionr�   r   rˆ   r%   r!  )r8   rZ   ÚglobalsÚlocalsr"  r  rÔ   Úglobals_r]   Úcut_offr(   s              r)   r2   ÚPackageImporter.__import__Y  sÙ   € Ø�A‹:Ø×%Ñ% dÓ+‰Fà")Ñ"5‘w¸2ˆHÜ'¨Ó1ˆGØ×%Ñ% d°UÓ;ˆFÞð ˜‹zØ×'Ñ'¨¯©°sÓ(;¸AÑ(>Ó?Ð?ÞØ�ô ˜d›)¤c¨$¯.©.¸Ó*=¸aÑ*@Ó&AÑA�ô ' v§¡Ó7�Ø—|‘| KÐ0L´#°kÓ2BÀWÑ2LÐ$MÑNÐNà×(Ñ(¨Ó:Ð:r,   c                 ó  • [        US5      (       a<  UR                  R                  c#  [        UR                  R                  < S35      eU$ U R                  U5      nUR                  R                  c  [        U< S35      eU$ )z¯Take a package name or module object and return the module.

If a name, the module is imported.  If the passed or imported module
object is not a package, raise an exception.
r¿   z is not a package)r  r¿   Úsubmodule_search_locationsr   rZ   r^   )r8   r]   rÔ   s      r)   rõ   ÚPackageImporter._get_packager  s€   € ô �7˜J×'Ñ'Ø×Ñ×:Ñ:ÑBÜ 7×#3Ñ#3×#8Ñ#8Ñ";Ð;LÐ MÓNÐNà�à×'Ñ'¨Ó0ˆFØ�‰×9Ñ9ÑAÜ 7¡+Ð->Ð ?Ó@Ð@à�r,   c                 ó  • U R                  U5      nUR                  U La  [        SUR                   35      e[        UR                  5      nUb"  [        U5      nUR                  SS5       SU 3$ UR                  SS5       $ )Nz%package.__loader__ must be self, got rÚ   Ú/)rõ   rÀ   r†   r   rˆ   r   Úreplace)r8   r]   r`   rZ   s       r)   rc   ÚPackageImporter._zipfile_path„  s‘   € Ø×#Ñ# GÓ,ˆØ×Ñ TÒ)Ü Ø7¸×8JÑ8JÐ7KÐLóð ô ˜×(Ñ(Ó)ˆØÑÜ& xÓ0ˆHØ—l‘l 3¨Ó,Ð-¨Q¨x¨jÐ9Ð9à—l‘l 3¨Ó,Ð-Ð.r,   Úatomsz_PackageNode | _ExternNodec                 óÈ  • U R                   n[        U5       HÆ  u  p4UR                  R                  US 5      nUc  [	        S 5      =oRR                  U'   [        U[        5      (       a  Us  $ [        U[        5      (       a#  SR                  US U 5      n[        SU S35      e[        U[        5      (       d!  [        S[        U5      R                   35      eUnMÈ     U$ )NrÚ   z&inconsistent module structure. module z% is not a package, but has submoduleszexpected _PackageNode, got )rH   Ú	enumeraterÝ   rà   rG   r=   rß   Ú_ModuleNodeÚjoinrK   r†   r‡   rˆ   )r8   r6  rä   Úirå   ÚnoderZ   s          r)   Ú_get_or_create_packageÚ&PackageImporter._get_or_create_package‘  sÙ   € Ø�i‰iˆÜ  Ö'‰GˆAØ—<‘<×#Ñ# D¨$Ó/ˆDØ‰|Ü,8¸Ó,>Ð>�—|‘| DÑ)Ü˜$¤×,Ñ,Ø’Ü˜$¤×,Ñ,Ø—x‘x  b q 	Ó*�Ü!Ø<¸T¸FÐBgÐhóð ô ˜d¤L×1Ñ1Ü$Ø1´$°t³*×2EÑ2EÐ1FÐGóð ð ŠCñ (ð  ˆ
r,   c                 ó\  • UR                  S5      Gt p#[        U5      S:”  a
  US   S:X  a  gU R                  U5      n[        U[        5      (       a  [        SU S35      eUS:X  a  Xl        gUR                  S	5      (       a(  US[        S	5      *  n[        U5      UR                  U'   gg)
zµAssembles a Python module out of the given file. Will ignore files in the .data directory.

Args:
    filename (str): the name of the file inside of the package archive to be added
r3  r   r   z.dataNz>inconsistent module structure. package contains a module file z2 that is a subpackage of a module marked external.z__init__.pyz.py)
rÜ   r�   r=  r=   rß   rK   rã   Úendswithr9  rÝ   )r8   r?   ÚprefixÚlastr]   Úpackage_names         r)   rN   ÚPackageImporter._add_file¥  s´   € ð !Ÿ™ sÓ+‰ˆÜˆv‹;˜‹?˜v a™y¨GÓ3ØØ×-Ñ-¨fÓ5ˆÜ�gœ{×+Ñ+ÜØPÐQYÐPZØDðFóð ð �=Ó Ø"*ÕØ�]‰]˜5×!Ñ!Ø ¤3 u£: +Ð.ˆLÜ-8¸Ó-BˆG×Ñ˜\Ò*ð "r,   Úextern_namec                 ó¦   • UR                  S5      Gt p#U R                  U5      n[        U[        5      (       a  g [        5       UR                  U'   g )NrÚ   )rÜ   r=  r=   rß   rÝ   )r8   rE  rA  rB  r]   s        r)   rL   ÚPackageImporter._add_externº  sF   € Ø#×)Ñ)¨#Ó.‰ˆØ×-Ñ-¨fÓ5ˆÜ�gœ{×+Ñ+ØÜ!,£ˆ×Ñ˜Òr,   )
rU   rR   rJ   r?   rT   r%   rQ   rH   rS   r@   r5   )r±   Ústrict)Nr   )NNr'   r   ).rˆ   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Údictr    r  r  Ú__annotations__r   r:   r;   r>   r   r!   rX   r^   Úbytesre   rl   r   r¤   r©   r   r®   rµ   rI   r×   ré   rÐ   rò   rø   rÌ   r
  r  r\   r!  r2   rõ   rc   Úlistr=  rN   rL   Ú__static_attributes__r'   r,   r)   r   r   B   sþ  ‡ ñðð �#�u×'Ñ'Ð'Ñ(Ó(ñ
 1IñEYà  5§8¡8×#=Ñ#=Ñ=ðEYð ! # ¨ Ñ-õEYñN& #õ &ð.0 3ð 0°#ð 0¸%ô 0ð$  Øñ-àð-ð ð-ð ð	-ð
 ð-ð 
õ-ñ*c 3ð c°#ð cÈSõ còJ+ð +/Èò
Ø'ð
Ø9Fð
à	õ
ò&
ò 
ð.Øð.Ø#&¨¡:ð.Ø;?ð.ØILô.ð`
 ð 
¨cô 
ð8L¨ð L¸sô LðU¨ô Uò6ðD¨ð D°Cð DÀ×AQÑAQô Dò.òbô*)ð  ?Dõ &ôP;ò2ô$/ð¨D°©Ið Ð:Vô ð(C #ô Cð*/ s÷ /r,   zNo module named z{!r}c                   ó   • \ rS rSr/ rSrg)Ú	_PathNodeiÇ  r'   N)rˆ   rI  rJ  rK  Ú	__slots__rQ  r'   r,   r)   rS  rS  Ç  s   † ØƒIr,   rS  c                   ó(   • \ rS rSrS\S-  4S jrSrg)rG   iË  rã   Nc                 ó   • Xl         0 U l        g r5   )rã   rÝ   ©r8   rã   s     r)   rX   Ú_PackageNode.__init__Ì  s   € Ø&ÔØ.0ˆ�r,   )rÝ   rã   )rˆ   rI  rJ  rK  r    rX   rQ  r'   r,   r)   rG   rG   Ë  s   † ð1 C¨$¡J÷ 1r,   rG   c                   ó(   • \ rS rSrS/rS\4S jrSrg)r9  iÑ  rã   c                 ó   • Xl         g r5   ©rã   rW  s     r)   rX   Ú_ModuleNode.__init__Ô  s   € Ø&Õr,   r[  N)rˆ   rI  rJ  rK  rT  r    rX   rQ  r'   r,   r)   r9  r9  Ñ  s   † Ø�€Ið' C÷ 'r,   r9  c                   ó   • \ rS rSrSrg)rß   iØ  r'   N)rˆ   rI  rJ  rK  rQ  r'   r,   r)   rß   rß   Ø  s   † Úr,   rß   rË   c                 ó°   • [         R                  " U 5      (       a1  U R                  [        ;   a  [        U R                     R                  $ [        U 5      $ r5   )ÚinspectÚisclassrI  rË   rÁ   Ú_orig_getfile)Úobjects    r)   Ú_patched_getfilerc  ä  sB   € Ü‡‚�v×ÑØ×ÑÔ 9Ó9Ü,¨V×->Ñ->Ñ?×HÑHÐHÜ˜Ó Ð r,   c                   ó6   • \ rS rSrSrS rS rS rS rS r	Sr
g	)
rö   iî  z°Private class used to support PackageImporter.get_resource_reader().

Confirms to the importlib.abc.ResourceReader interface. Allowed to access
the innards of PackageImporter.
c                 ó   • Xl         X l        g r5   )Úimporterr÷   )r8   rf  r÷   s      r)   rX   Ú_PackageResourceReader.__init__õ  s   € Ø ŒØ �r,   c                 óf   • SSK Jn  U" U R                  R                  U R                  U5      5      $ )Nr   )rœ   )r›   rœ   rf  re   r÷   )r8   r`   rœ   s      r)   Úopen_resourceÚ$_PackageResourceReader.open_resourceù  s%   € Ýá�t—}‘}×0Ñ0°·±ÀÓIÓJÐJr,   c                 ó–  • [        U R                  R                  [        5      (       a›  U R                  R                  R	                  [
        R                  R                  U R                  U5      5      (       aI  [
        R                  R                  U R                  R                  R                  U R                  U5      $ [        er5   )r=   rf  r@   r   r²   rA   rD   r:  r÷   Ú	directoryÚFileNotFoundError)r8   r`   s     r)   Úresource_pathÚ$_PackageResourceReader.resource_pathþ  s�   € ô Ø�M‰M×$Ñ$¤o÷
ñ 
à�m‰m×&Ñ&×1Ñ1Ü�G‰G�L‰L˜Ÿ™¨Ó1÷
ñ 
ô —7‘7—<‘<Ø—‘×(Ñ(×2Ñ2°D·M±MÀ8óð ô  Ðr,   c                 ó˜   • U R                   R                  U R                  U5      nU R                   R                  R	                  U5      $ r5   )rf  rc   r÷   r@   r²   )r8   rZ   rD   s      r)   Úis_resourceÚ"_PackageResourceReader.is_resource  s7   € Ø�}‰}×*Ñ*¨4¯=©=¸$Ó?ˆØ�}‰}×'Ñ'×2Ñ2°4Ó8Ð8r,   c              #   ó  #   • SSK Jn  U R                  R                  SS5      nU" U R                  R                  U R                  5      5      nU R                  R                  R                  5       n[        5       nU Hl  n U" U5      R                  U5      nUR                  R                  n[        U5      S:X  a  UR                  v •  MP  Xu;  d  MW  UR                  U5        Uv •  Mn     g ! [         a     M~  f = f7f)Nr   )ÚPathrÚ   r3  )Úpathlibrt  r÷   r4  rf  rc   r@   rM   ÚsetÚrelative_toÚ
ValueErrorr¼   rZ   r�   Úadd)r8   rt  r?   Úfullname_pathÚfilesÚsubdirs_seenÚrelativer§   s           r)   ÚcontentsÚ_PackageResourceReader.contents  sÒ   é € Ý à—=‘=×(Ñ(¨¨cÓ2ˆá˜TŸ]™]×8Ñ8¸¿¹ÓGÓHˆØ—‘×(Ñ(×8Ñ8Ó:ˆÜ“uˆÛˆHðÙ ›>×5Ñ5°mÓD�ð #Ÿ/™/×.Ñ.ˆKÜ�;Ó 1Ó$Ø—m‘mÔ#ØÕ0Ø× Ñ  Ô-Ø!Ô!ò øô ó Úðüs0   ‚BDÂC1Â8DÃDÃ1
C?Ã;DÃ>C?Ã?D)r÷   rf  N)rˆ   rI  rJ  rK  rL  rX   ri  rn  rq  r~  rQ  r'   r,   r)   rö   rö   î  s!   † ñò!òKò
 ò9õ"r,   rö   )Cr   rÆ   Úimportlib.machineryr_  r›   rÍ   rA   r  r  Úcollections.abcr   r   Ú
contextlibr   r  r   r   r   Úweakrefr	   r:   Útorch.serializationr
   r   Útorch.typesr   Ú_directory_readerr   Ú
_importlibr   r   r   r   r   Ú	_manglingr   r   Ú_package_unpicklerr   Úfile_structure_representationr   r   rf  r   Ú
glob_groupr   r  r   r    rN  r!   r"   rM  r   rb  r  Ú_ERR_MSG_PREFIXr  rS  rG   r9  rß   rË   Úgetfilera  rc  rö   r'   r,   r)   Ú<module>rŽ     s2  ðä Û Û Û Û 	Û Û 	Û 
Û ß .Ý %ß +Ñ +Ý 'ã ß JÝ  å .÷õ ÷ 0Ý 0ß VÝ ö Ý'àÐ
€ò,Ð ˜8 C™=ó ð ØØñð@Ð ! 4¨¨T°#°s°(©^Ð(;Ñ#<ó ô}	/�hô }	/ñ@ “€Ø$€Ø˜VÑ#€÷ñ ô1�9ô 1ô'�)ô 'ô	�)ô 	ñ
 2EÓ1FÐ Ð.Ó Fð —‘€ò!ð #€„÷7"ò 7"r,   