§
    YŠtj�  ã                   óž   — d Z dZddlmZmZmZ ddlZ G d„ de¦  «        Z G d„ de¦  «        Z	 G d	„ d
e
¦  «        Zdddedee         fd„ZdS )z*Provides a container for DescriptorProtos.z"matthewtoia@google.com (Matt Toia)é    )ÚDictÚIteratorÚOptionalNc                   ó   — e Zd ZdS )ÚErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úa/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/google/protobuf/descriptor_database.pyr   r      s   € € € € € Ø€$r   r   c                   ó   — e Zd ZdZdS )Ú,DescriptorDatabaseConflictingDefinitionErrorzGRaised when a proto is added with the same name & different descriptor.N)r   r	   r
   Ú__doc__r   r   r   r   r      s   € € € € € ØOÐOÐOÐOr   r   c                   ó’   — e Zd ZdZdd„Zdd„Zdeddfd	„Zd
eddfd„Zdede	de
d         fd„Zdedee	         fd„Zdeddddfd„ZdS )ÚDescriptorDatabasezEA container accepting FileDescriptorProtos and maps DescriptorProtos.ÚreturnNc                 ó"   — i | _         i | _        d S ©N)Ú_file_desc_protos_by_fileÚ_file_desc_protos_by_symbol)Úselfs    r   Ú__init__zDescriptorDatabase.__init__   s"   € ð 	ð 	Ô"ð
 	ð 	Ô$Ð$Ð$r   Úfile_desc_protoú"descriptor_pb2.FileDescriptorProtoc                 óú  — |j         }|| j        vr|| j        |<   n%| j        |         |k    rt          d|z  ¦  «        ‚dS |j        }|j        D ]+}t          ||¦  «        D ]}|                      ||¦  «         ŒŒ,|j        D ]r}|                      |rd                     ||j         f¦  «        n|j         |¦  «         |j	        D ]/}|| j
        |rd                     ||j         f¦  «        n|j         <   Œ0Œs|j        D ];}|                      |rd                     ||j         f¦  «        n|j         |¦  «         Œ<|j        D ];}	|                      |rd                     ||	j         f¦  «        n|	j         |¦  «         Œ<dS )aL  Adds the FileDescriptorProto and its types to this database.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    Raises:
      DescriptorDatabaseConflictingDefinitionError: if an attempt is made to
        add a proto with the same name but different definition than an
        existing proto in the database.
    z0%s already added, but with different descriptor.Nú.)Únamer   r   ÚpackageÚmessage_typeÚ_ExtractSymbolsÚ
_AddSymbolÚ	enum_typeÚjoinÚvaluer   Ú	extensionÚservice)
r   r   Ú
proto_namer   Úmessager   ÚenumÚ
enum_valuer&   r'   s
             r   ÚAddzDescriptorDatabase.Add#   s  € ð !Ô%€JØ˜Ô7Ð7Ð7Ø3B€dÔ$ ZÑ0Ð0Ø	Ô	'¨
Ô	3°Ò	FÐ	FÝ8Ø
<¸zÑ
IñKô Kð Kð €fð Ô%€GØ"Ô/ð /ð /ˆÝ! '¨7Ñ3Ô3ð /ð /ˆ$Ø�Š˜˜oÑ.Ô.Ð.Ð.ð/àÔ)ð ð ˆØ
‡o‚oØ-4ÐCˆ3�8Š8�W˜dœiÐ(Ñ)Ô)Ð)¸$¼)Ø
ñô ð ð œ
ð ð ˆ*ð ð 	Ô(Ø4;ÐPˆC�HŠH�g˜zœÐ/Ñ0Ô0Ð0ÀÄñ	
ð 	
ðð %Ô.ð ð ˆ	Ø
‡o‚oØ29ÐMˆ3�8Š8�W˜iœnÐ-Ñ.Ô.Ð.¸y¼~Ø
ñô ð ð ð #Ô*ð ð ˆØ
‡o‚oØ07ÐIˆ3�8Š8�W˜gœlÐ+Ñ,Ô,Ð,¸W¼\Ø
ñô ð ð ðð r   r   c                 ó   — | j         |         S )a¸  Finds the file descriptor proto by file name.

    Typically the file name is a relative path ending to a .proto file. The
    proto with the given name will have to have been added to this database
    using the Add method or else an error will be raised.

    Args:
      name: The file name to find.

    Returns:
      The file descriptor proto matching the name.

    Raises:
      KeyError if no file by the given name was added.
    )r   )r   r   s     r   ÚFindFileByNamez!DescriptorDatabase.FindFileByNameO   s   € ð" Ô)¨$Ô/Ð/r   Úsymbolc                 ón  — |                      d¦  «        dk    r;|d         dk    r/|                     d¦  «        }t          j        dt          ¦  «         	 | j        |         S # t          $ rG |                     d¦  «        \  }}}	 | j        |         cY S # t          $ r t          |¦  «        ‚w xY ww xY w)a¢  Finds the file descriptor proto containing the specified symbol.

    The symbol should be a fully qualified name including the file descriptor's
    package and any containing messages. Some examples:

    'some.package.name.Message'
    'some.package.name.Message.NestedEnum'
    'some.package.name.Message.some_field'

    The file descriptor proto containing the specified symbol must be added to
    this database using the Add method or else an error will be raised.

    Args:
      symbol: The fully qualified symbol name.

    Returns:
      The file descriptor proto containing the symbol.

    Raises:
      KeyError if no file contains the specified symbol.
    r   é   r   zaPlease remove the leading "." when FindFileContainingSymbol, this will turn to error in 2026 Jan.)ÚcountÚlstripÚwarningsÚwarnÚRuntimeWarningr   ÚKeyErrorÚ
rpartition)r   r/   Ú	top_levelÚ_s       r   ÚFindFileContainingSymbolz+DescriptorDatabase.FindFileContainingSymbolb   sã   € ð0 ‡|‚|�CÑÔ˜AÒÐ &¨¤)¨sÒ"2Ð"2Ø�}Š}˜SÑ!Ô!€fÝ„mðõ ñ	ô ð ðØÔ-¨fÔ5Ð5øÝð ð ð ð ×)Ò)¨#Ñ.Ô.�o€i��AðØÔ/°	Ô:Ð:Ð:Ð:øÝð ð ð å�vÑÔÐðøøøðøøøs$   ÁA# Á##B4ÂBÂB4ÂB0Â0B4Úextendee_nameÚextension_numberc                 ó   — d S r   r   )r   r<   r=   s      r   ÚFindFileContainingExtensionz.DescriptorDatabase.FindFileContainingExtension‘   s	   € ð ˆ4r   c                 ó   — g S r   r   )r   r<   s     r   ÚFindAllExtensionNumbersz*DescriptorDatabase.FindAllExtensionNumbers—   s   € à€Ir   c                 ó²   — || j         v rCd|j        z   dz   |z   dz   | j         |         j        z   dz   }t          j        |t          ¦  «         || j         |<   d S )NzConflict register for file "z": z is already defined in file "ú")r   r   r4   r5   r6   )r   r   r   Úwarn_msgs       r   r"   zDescriptorDatabase._AddSymbol›   s€   € ð ˆtÔ/Ð/Ð/Ø0°?Ô3GÑGØñØñà1ñ2ð Ô2°4Ô8Ô=ñ>ð ADñD€hõ „m�H�nÑ-Ô-Ð-Ø-<€DÔ$ TÑ*Ð*Ð*r   )r   N)r   r   r   N)r   r	   r
   r   r   r,   Ústrr.   r;   Úintr   r?   ÚlistrA   r"   r   r   r   r   r      s  € € € € € ØMÐMðð ð ð ð*ð *ð *ð *ðX0 ð 0Ð)Mð 0ð 0ð 0ð 0ð&-Øð-à+ð-ð -ð -ð -ð^ØðØ25ðàÐ4Ô5ðð ð ð ð°3ð ¸4À¼9ð ð ð ð ð	=Øð	=Ø(Lð	=àð	=ð 	=ð 	=ð 	=ð 	=ð 	=r   r   Ú
desc_protozdescriptor_pb2.DescriptorProtor   r   c              #   óÐ   K  — |r|dz   | j         z   n| j         }|V — | j        D ]}t          ||¦  «        D ]}|V — ŒŒ| j        D ] }d                     ||j         f¦  «        V — Œ!dS )zëPulls out all the symbols from a descriptor proto.

  Args:
    desc_proto: The proto to extract symbols from.
    package: The package containing the descriptor type.

  Yields:
    The fully qualified name found in the descriptor.
  r   N)r   Únested_typer!   r#   r$   )rH   r   Úmessage_namerJ   r/   r#   s         r   r!   r!   §   s©   è è € ð 5<ÐP�˜3‘ ¤Ñ0Ð0ÀÄ€,ØÐÐÐØÔ+ð ð €kÝ! +¨|Ñ<Ô<ð ð ˆØ€l€l€l€lðàÔ'ð 3ð 3€iØ
�(Š(�L )¤.Ð1Ñ
2Ô
2Ð2Ð2Ð2Ð2ð3ð 3r   )r   Ú
__author__Útypingr   r   r   r4   Ú	Exceptionr   r   Úobjectr   rE   r!   r   r   r   ú<module>rP      s  ðð 1Ð 0à1€
à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø €€€ðð ð ð ð ˆIñ ô ð ðPð Pð Pð Pð P°5ñ Pô Pð PðL=ð L=ð L=ð L=ð L=˜ñ L=ô L=ð L=ð^3Ø0ð3Ø;>ð3àˆc„]ð3ð 3ð 3ð 3ð 3ð 3r   