Ë TÀ£M<ãó8—dZdZddlZddlZddlmZdZej«dk7rddlZddl Z ejZ e €ddl m Z dZGd „d e «ZGd „d e«Zer Gd „de«ZneZGd„de«Zej(«Zd„Zde_e«ZGd„de¬«ZGd„de«ZGd„de«ZGd„de«ZGd„de«ZGd„de«ZGd „d!e«ZGd"„d#e«Z Gd$„d%e«Z!Gd&„d'e«Z"d(„Z#d)„Z$d*„Z%d+„Z& d-d,„Z'y).zŠDescriptors essentially contain exactly the information found in a .proto file, in types that make this information accessible in Python. z#robinson@google.com (Will Robinson)éN)Úapi_implementationFÚpython)Ú_messageTcó—eZdZdZy)ÚErrorzBase error for this module.N©Ú__name__Ú __module__Ú __qualname__Ú__doc__©óú?/usr/lib/python3.12/site-packages/google/protobuf/descriptor.pyrr s„Ú#rrcó—eZdZdZy)ÚTypeTransformationErrorzHError transforming between python proto type and corresponding C++ type.Nrr rrrr$s„ÚPrrcó‡—eZdZˆfd„ZˆxZS)ÚDescriptorMetaclasscó\•—tt|� |«ryt||j«ryy)NTF)ÚsuperrÚ__instancecheck__Ú isinstanceÚ_C_DESCRIPTOR_CLASS)ÚclsÚobjÚ __class__s €rrz%DescriptorMetaclass.__instancecheck__/s,ø€Ü Ô" CÑ :¸3Ô ?ØÜ �C˜×0Ñ0Ô 1ØØ r)r r r rÚ __classcell__©rs@rrr-s ø„÷ðrrcó"—eZdZdZd„Zd„Zd„Zy)Ú_Lockz>Wrapper class of threading.Lock(), which is allowed by 'with'.cób—tj|«}tj«|_|S©N)ÚobjectÚ__new__Ú threadingÚLockÚ_lock)rÚselfs rr#z _Lock.__new__=s#€Ü �>‰>˜#Ó €DÜ—‘Ó!€D„JØ €Krcó8—|jj«yr!)r&Úacquire©r's rÚ __enter__z_Lock.__enter__B󀨇J�J×ÑÕrcó8—|jj«yr!)r&Úrelease)r'Úexc_typeÚ exc_valueÚexc_tbs rÚ__exit__z_Lock.__exit__Er,rN)r r r r r#r+r2r rrrr:s„ÙFòò órrcóœ—tjdkDr9txjdzc_tjd|ztd¬«yy)Nréz±Call to deprecated create function %s(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.é)ÚcategoryÚ stacklevel)Ú _DeprecatedÚcountÚwarningsÚwarnÚDeprecationWarning©Únames rr8r8LsH€Ü×јÒÜ×Ò˜ÑÕÜ ‡M�Mð 7ð ñ ô$°ö 3ðrédcó*—eZdZdZerdZd„Zd„Zd„Zy)ÚDescriptorBaseaDescriptors base class. This class is the base of all descriptor classes. It provides common options related functionality. Attributes: has_options: True if the descriptor has non-default options. Usually it is not necessary to read this -- just call GetOptions() which will happily return the default instance. However, it's sometimes useful for efficiency, and also useful inside the protobuf implementation to avoid some bootstrapping issues. file (FileDescriptor): Reference to file info. r có‚—||_||_||_||_|jduxs|jdu|_y)zÏInitialize the descriptor given its options message and the name of the class of the options message. The name of the class is required in case the options message is None and has to be created. N)ÚfileÚ_optionsÚ_options_class_nameÚ_serialized_optionsÚ has_options)r'rCÚoptionsÚserialized_optionsÚoptions_class_names rÚ__init__zDescriptorBase.__init__tsK€ð €D„IØ€D„MØ1€DÔØ1€DÔ🠙 ¨TÐ1òØ × Ñ ¨Ð,ð Õrcó2—||_||_|du|_y)z�Sets the descriptor's options This function is used in generated proto2 files to update descriptor options. It must not be used outside proto2. N)rDrErG)r'rHrJs rÚ _SetOptionszDescriptorBase._SetOptionsƒs"€ð €D„MØ1€DÔð dÐ*€DÕrcóò—|jr |jSddlm} t||j«}|j€'t5|«|_ddd«|jSt|«|j«}t5||_ddd«|jS#t $rt d|jz«‚wxYw#1swY|jSxYw#1swY|jSxYw)z‚Retrieves descriptor options. This method returns the options set or creates the default options for the descriptor. r©Údescriptor_pb2zUnknown options class name %s!N) rDÚgoogle.protobufrPÚgetattrrEÚAttributeErrorÚ RuntimeErrorrFr&Ú _ParseOptions)r'rPÚ options_classrHs rÚ GetOptionszDescriptorBase.GetOptions�sá€ð  ‡}‚}Ø �]‰]Ðå.ð5ܘnØ"×6Ñ6ó8€mð  ×ÑÐ'Þ Ù%›ˆŒ ÷ ð �=‰=Ðô ™m›o¨t×/GÑ/GÓH€gÞ ØˆŒ ÷ ð �=‰=Ðøô ò5Ü Ð9Ø×2Ñ2ñ4ó 5ð5ð5ú÷ ð �=‰=Ðú÷ ð �=‰=Ðús# B&Á C  C"Â&"Cà CÃ"C6N) r r r r Ú_USE_C_DESCRIPTORSrrKrMrWr rrrArA_s#„ñ ñðÐò ò +órrA)Ú metaclasscó.‡—eZdZdZ dˆfd„ Zd„ZˆxZS)Ú_NestedDescriptorBasez0Common class for descriptors that can be nested.c óx•—tt|� ||| |«||_||_||_||_||_y)aLConstructor. Args: options: Protocol message options or None to use default message options. options_class_name (str): The class name of the above options. name (str): Name of this protocol message type. full_name (str): Fully-qualified name of this protocol message type, which will include protocol "package" name and the name of any enclosing types. containing_type: if provided, this is a nested descriptor, with this descriptor as parent, otherwise None. serialized_start: The start index (inclusive) in block in the file.serialized_pb that describes this descriptor. serialized_end: The end index (exclusive) in block in the file.serialized_pb that describes this descriptor. serialized_options: Protocol message serialized options or None. N)rr[rKr>Ú full_nameÚcontaining_typeÚ_serialized_startÚ_serialized_end) r'rHrJr>r]rCr^Úserialized_startÚserialized_endrIrs €rrKz_NestedDescriptorBase.__init__®sJø€ô( Ô  Ñ/Ø ˆgÐ)Ð+=ôð€D„Ið€D„NØ*€DÔà-€DÔØ)€DÕrcóÚ—|j�U|j�I|j�=|j|jj|j|j«yt d«‚)zåCopies this to the matching proto in descriptor_pb2. Args: proto: An empty proto instance from descriptor_pb2. Raises: Error: If self couldn't be serialized, due to to few constructor arguments. Nz*Descriptor does not contain serialization.)rCr_r`ÚParseFromStringÚ serialized_pbr©r'Úprotos rÚ CopyToProtoz!_NestedDescriptorBase.CopyToProtoÏsd€ð � ‰ ÐØ ×ÑÐ*Ø ×ÑÐ(Ø ×јDŸI™I×3Ñ3Ø × Ñ  ×!5Ñ!5ð7õ8ô Ð>Ó ?Ð?r©NNN)r r r r rKrhrrs@rr[r[«sø„Ù8ð8<Ø7;õ*öB@rr[c󨇗eZdZdZer#ej Z dd„Z d ˆfd„ Z e d„«Z e d„«Z d„Z ˆfd„ZˆxZS) Ú Descriptorau Descriptor for a protocol message type. Attributes: name (str): Name of this protocol message type. full_name (str): Fully-qualified name of this protocol message type, which will include protocol "package" name and the name of any enclosing types. containing_type (Descriptor): Reference to the descriptor of the type containing us, or None if this is top-level. fields (list[FieldDescriptor]): Field descriptors for all fields in this type. fields_by_number (dict(int, FieldDescriptor)): Same :class:`FieldDescriptor` objects as in :attr:`fields`, but indexed by "number" attribute in each FieldDescriptor. fields_by_name (dict(str, FieldDescriptor)): Same :class:`FieldDescriptor` objects as in :attr:`fields`, but indexed by "name" attribute in each :class:`FieldDescriptor`. nested_types (list[Descriptor]): Descriptor references for all protocol message types nested within this one. nested_types_by_name (dict(str, Descriptor)): Same Descriptor objects as in :attr:`nested_types`, but indexed by "name" attribute in each Descriptor. enum_types (list[EnumDescriptor]): :class:`EnumDescriptor` references for all enums contained within this type. enum_types_by_name (dict(str, EnumDescriptor)): Same :class:`EnumDescriptor` objects as in :attr:`enum_types`, but indexed by "name" attribute in each EnumDescriptor. enum_values_by_name (dict(str, EnumValueDescriptor)): Dict mapping from enum value name to :class:`EnumValueDescriptor` for that value. extensions (list[FieldDescriptor]): All extensions defined directly within this message type (NOT within a nested type). extensions_by_name (dict(str, FieldDescriptor)): Same FieldDescriptor objects as :attr:`extensions`, but indexed by "name" attribute of each FieldDescriptor. is_extendable (bool): Does this type define any extension ranges? oneofs (list[OneofDescriptor]): The list of descriptors for oneof fields in this message. oneofs_by_name (dict(str, OneofDescriptor)): Same objects as in :attr:`oneofs`, but indexed by "name" attribute. file (FileDescriptor): Reference to file descriptor. is_map_entry: If the message type is a map entry. có|—tjj«tjj |«Sr!)rÚMessageÚ_CheckCalledFromGeneratedFileÚ default_poolÚFindMessageTypeByName)rr>r]Úfilenamer^ÚfieldsÚ nested_typesÚ enum_typesÚ extensionsrHrIÚ is_extendableÚextension_rangesÚoneofsrCrarbÚsyntaxÚ is_map_entryÚ create_keys rr#zDescriptor.__new__s-€ô*×Ñ×4Ñ4Ô6Ü × "Ñ "× 8Ñ 8¸Ó CÐCrc ó2•—|tur td«tt|�| d||||||| ¬« ||_|j D] }||_Œ td„|D««|_td„|D««|_ d|_ ||_ |D] }||_Œ td„|D««|_ ||_ |jD] }||_Œ td„|D««|_td „|D««|_||_|j D] }||_Œ td „|D««|_| |_| |_| �| ng|_td „|j*D««|_|j*D] }||_Œ |xsd |_||_y) zäArguments to __init__() are as described in the description of Descriptor fields above. Note that filename is an obsolete argument, that is not used anymore. Please use file.name to access this as an attribute. rkÚMessageOptions©rarbrIc3ó8K—|]}|j|f–—Œy­wr!©Únumber©Ú.0Úfs rÚ z&Descriptor.__init__..Jsèø€Ð ?¹°1 !§(¡(¨A¤¹ùó‚c3ó8K—|]}|j|f–—Œy­wr!r=r‚s rr…z&Descriptor.__init__..Kóèø€Ð;±F¨q §¡¨œ{±Fùr†Nc3ó8K—|]}|j|f–—Œy­wr!r=©rƒÚts rr…z&Descriptor.__init__..Qsèø€Ð$G¹,°Q a§f¡f¨a¤[¹,ùr†c3ó8K—|]}|j|f–—Œy­wr!r=rŠs rr…z&Descriptor.__init__..Vóèø€Ð"C¹ °1 A§F¡F¨A¤;¹ ùr†c3óZK—|]#}|jD]}|j|f–—ŒŒ%y­wr!)Úvaluesr>)rƒr‹Úvs rr…z&Descriptor.__init__..Ws(èø€ð$;Ù'˜°·´¨Aˆ�‰�Œ °ˆ ™Zùs‚)+c3ó8K—|]}|j|f–—Œy­wr!r=r‚s rr…z&Descriptor.__init__..]r�r†c3ó8K—|]}|j|f–—Œy­wr!r=)rƒÚos rr…z&Descriptor.__init__..asèø€Ð@±K¨q §¡¨œ{±Kùr†Úproto2)Ú_internal_create_keyr8rrkrKrrr^ÚdictÚfields_by_numberÚfields_by_nameÚ_fields_by_camelcase_namersÚnested_types_by_namertÚenum_types_by_nameÚenum_values_by_nameruÚextension_scopeÚextensions_by_namervrwrxÚoneofs_by_nameÚ_deprecated_syntaxÚ _is_map_entry)r'r>r]rqr^rrrsrtrurHrIrvrwrxrCrarbryrzr{ÚfieldÚ nested_typeÚ enum_typeÚ extensionÚoneofrs €rrKzDescriptor.__init__.s™ø€ðÔ-Ñ-Ü�,Ôä Œ*�dÑ$ØÐ! 4¨°DØÐ*:Ø%Ð:Lð%ôNð€D„KØ—”ˆØ"€eÕðä Ñ ?¹Ó ?Ó?€DÔÜÑ;±FÓ;Ó;€DÔØ%)€DÔ"à$€DÔÛ#ˆ Ø$(€kÕ!ð$ä $Ñ$G¹,Ó$GÓ G€DÔà €D„OØ—_”_ˆ Ø"&€iÕð%ä"Ñ"C¹ Ó"CÓC€DÔÜ#ñ$;Ù'ó$;ó ;€DÔð!€D„OØ—_”_ˆ Ø"&€iÕð%ä"Ñ"C¹ Ó"CÓC€DÔØ&€DÔØ,€DÔØ"Ð.‘&°B€D„KÜÑ@°D·K²KÓ@Ó@€DÔØ—”ˆØ"€eÕðà$Ò0¨€DÔØ%€DÕrcóD—tjd«|jS©Nz£descriptor.syntax is deprecated. It will be removed soon. Most usages are checking field descriptors. Consider to use has_presence, is_packed on field descriptors.©r:r;r r*s rryzDescriptor.syntaxgó!€ä ‡M�Mð7ôð × "Ñ "Ð"rcót—|j€!td„|jD««|_|jS)zrSame FieldDescriptor objects as in :attr:`fields`, but indexed by :attr:`FieldDescriptor.camelcase_name`. c3ó8K—|]}|j|f–—Œy­wr!)Úcamelcase_namer‚s rr…z6Descriptor.fields_by_camelcase_name..vsèø€ð,6Ù)4 Aˆ1× Ñ ˜QÔ ©ùr†)r™r–rrr*s rÚfields_by_camelcase_namez#Descriptor.fields_by_camelcase_nameps:€ð  ×%Ñ%Ð-Ü'+ñ,6Ø)-¯ªó,6ó(6€dÔ$à × )Ñ )Ð)rcóN—|j|j|jS)asReturns the string name of an enum value. This is just a small helper method to simplify a common operation. Args: enum: string name of the Enum. value: int, value of the enum. Returns: string name of the enum value. Raises: KeyError if either the Enum doesn't exist or the value is not a valid value for the enum. )r›Úvalues_by_numberr>)r'ÚenumÚvalues rÚ EnumValueNamezDescriptor.EnumValueNamezs&€ð × "Ñ " 4Ñ (× 9Ñ 9¸%Ñ @× EÑ EÐErcó,•—tt|� |«y)zvCopies this to a descriptor_pb2.DescriptorProto. Args: proto: An empty descriptor_pb2.DescriptorProto. N)rrkrh©r'rgrs €rrhzDescriptor.CopyToProtoŒsø€ô Œ*�dÑ'¨Õ.r)NNNNNNNNNNTNNNNNNFN) NNTNNNNNNFN)r r r r rXrrkrr#rKÚpropertyryr®r³rhrrs@rrkrkâs«ø„ñ*ñXØ"×-Ñ-ÐðØØØØØØØØØØØØØ ØØØØØó)Dð8>BØ"&ØAEØ@DØ;?õ 7&ðr ñ#ó ð#ð ñ*ó ð*òF÷$/ð/rrkc󞇗eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd Zd Z d Z!iee“ee“ee“ee“ee“ee“ee“e e“ee“ee“ee“ee“e e“ee“e e“e e“ee “e e i¥Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)e*re+jXZ- dd„Z. dˆfd„ Z/e0d„«Z1e0d„«Z2e0d„«Z3e4d„«Z5ˆxZ6S)ÚFieldDescriptora+ Descriptor for a single field in a .proto file. Attributes: name (str): Name of this field, exactly as it appears in .proto. full_name (str): Name of this field, including containing scope. This is particularly relevant for extensions. index (int): Dense, 0-indexed index giving the order that this field textually appears within its message in the .proto file. number (int): Tag number declared for this field in the .proto file. type (int): (One of the TYPE_* constants below) Declared type. cpp_type (int): (One of the CPPTYPE_* constants below) C++ type used to represent this field. label (int): (One of the LABEL_* constants below) Tells whether this field is optional, required, or repeated. has_default_value (bool): True if this field has a default value defined, otherwise false. default_value (Varies): Default value of this field. Only meaningful for non-repeated scalar fields. Repeated fields should always set this to [], and non-repeated composite fields should always set this to None. containing_type (Descriptor): Descriptor of the protocol message type that contains this field. Set by the Descriptor constructor if we're passed into one. Somewhat confusingly, for extension fields, this is the descriptor of the EXTENDED message, not the descriptor of the message containing this field. (See is_extension and extension_scope below). message_type (Descriptor): If a composite field, a descriptor of the message type contained in this field. Otherwise, this is None. enum_type (EnumDescriptor): If this field contains an enum, a descriptor of that enum. Otherwise, this is None. is_extension: True iff this describes an extension field. extension_scope (Descriptor): Only meaningful if is_extension is True. Gives the message that immediately contains this extension field. Will be None iff we're a top-level (file-level) extension field. options (descriptor_pb2.FieldOptions): Protocol message field options or None to use default field options. containing_oneof (OneofDescriptor): If the field is a member of a oneof union, contains its descriptor. Otherwise, None. file (FileDescriptor): Reference to file descriptor. r4ér5éééééé é é é é éééééiÿÿÿi8JiNcó¾—tjj«| rtjj |«Stjj |«Sr!)rrmrnroÚFindExtensionByNameÚFindFieldByName)rr>r]Úindexr�ÚtypeÚcpp_typeÚlabelÚ default_valueÚ message_typer¤r^Ú is_extensionr�rHrIÚhas_default_valueÚcontaining_oneofÚ json_namerCr{s rr#zFieldDescriptor.__new__#sG€ô ×Ñ×4Ñ4Ô6Ù Ü×$Ñ$×8Ñ8¸ÓCÐCä×$Ñ$×4Ñ4°YÓ?Ð?rcó@•—|tur td«tt|�|||d«||_||_d|_|€t|«|_ n||_ ||_ ||_ ||_ ||_ ||_||_||_| |_| |_| |_| |_| |_||_t/j0«dk(rd|_y| r%t4j6j9|«|_yt4j6j;|«|_y)aThe arguments are as described in the description of FieldDescriptor attributes above. Note that containing_type may be None, and may be set later if necessary (to deal with circular references between message types, for example). Likewise for extension_scope. r¸Ú FieldOptionsNr)r•r8rr¸rKr>r]Ú_camelcase_nameÚ _ToJsonNamerÕrÌr�rÍrÎrÏrÓrÐr^rÑr¤rÒr�rÔrÚTypeÚ _cdescriptorrrorÊrË)r'r>r]rÌr�rÍrÎrÏrÐrÑr¤r^rÒr�rHrIrÓrÔrÕrCr{rs €rrKzFieldDescriptor.__init__/sø€ðÔ-Ñ-ÜÐ#Ô$ä Œ/˜4Ñ)Ø ˆgÐ)¨>ôð€D„IØ€D„NØ€DÔØÐÜ" 4Ó(€d…nà €d„nØ€D„JØ€D„KØ€D„IØ€D„MØ€D„JØ.€DÔØ&€DÔØ*€DÔØ$€DÔØ€D„NØ$€DÔØ*€DÔØ,€DÔÜ×ÑÓ  HÒ,Ø€dÕá Ü$×1Ñ1×EÑEÀiÓPˆÕä$×1Ñ1×AÑAÀ)ÓLˆÕrcóf—|j€t|j«|_|jS)zRCamelcase name of this field. Returns: str: the name in CamelCase. )rØÚ _ToCamelCaser>r*s rr­zFieldDescriptor.camelcase_name^s-€ð ×ÑÐ#Ü)¨$¯)©)Ó4€dÔØ × Ñ ÐrcóÄ—|jtjk(ry|jtjk(s |j ry|j jdk(S)z¦Whether the field distinguishes between unpopulated and default values. Raises: RuntimeError: singular field that is not linked with message nor file. FTr”)rÏr¸ÚLABEL_REPEATEDrÎÚCPPTYPE_MESSAGErÔr^r r*s rÚ has_presencezFieldDescriptor.has_presenceisP€ð ‡z�z”_×3Ñ3Ò3Ø Ø � ‰ œ×8Ñ8Ò8Ø ×ÒØ ð × Ñ × 2Ñ 2°hÑ >Ð>rcó—|jtjk7ry|j}|tjk(s9|tj k(s&|tj k(s|tjk(ry|jjdk(r(|jxr|j«jS|j xs<|j«jd« xs|j«jS)zReturns if the field is packed.Fr”Úpacked)rÏr¸rßrÍÚ TYPE_STRINGÚ TYPE_GROUPÚ TYPE_MESSAGEÚ TYPE_BYTESr^r rGrWrãÚHasField)r'Ú field_types rÚ is_packedzFieldDescriptor.is_packed{sÒ€ð ‡z�z”_×3Ñ3Ò3Ø Ø—‘€JØ”o×1Ñ1Ò1Ø”o×0Ñ0Ò0Ø”o×2Ñ2Ò2Ø”o×0Ñ0Ò0Ø Ø ×Ñ×.Ñ.°(Ò:Ø × Ñ Ò : $§/¡/Ó"3×":Ñ":Ð:à×"Ñ"Ð"ò'Ø—/‘/Ó#×,Ñ,¨XÓ6Ð6ò'à�o‰oÓ×&Ñ&ð(rcó`— tj|S#t$rtd|z«‚wxYw)aïConverts from a Python proto type to a C++ Proto Type. The Python ProtocolBuffer classes specify both the 'Python' datatype and the 'C++' datatype - and they're not the same. This helper method should translate from one to another. Args: proto_type: the Python proto type (descriptor.FieldDescriptor.TYPE_*) Returns: int: descriptor.FieldDescriptor.CPPTYPE_*, the C++ type. Raises: TypeTransformationError: when the Python proto type isn't known. zUnknown proto_type: %s)r¸Ú_PYTHON_TO_CPP_PROTO_TYPE_MAPÚKeyErrorr)Ú proto_types rÚProtoTypeToCppProtoTypez'FieldDescriptor.ProtoTypeToCppProtoType�s;€ðKÜ × :Ñ :¸:Ñ FÐFøÜ òKÜ #Ð$<¸zÑ$IÓ JÐJðKús‚•-)NNTNNNN)7r r r r Ú TYPE_DOUBLEÚ TYPE_FLOATÚ TYPE_INT64Ú TYPE_UINT64Ú TYPE_INT32Ú TYPE_FIXED64Ú TYPE_FIXED32Ú TYPE_BOOLrärårærçÚ TYPE_UINT32Ú TYPE_ENUMÚ TYPE_SFIXED32Ú TYPE_SFIXED64Ú TYPE_SINT32Ú TYPE_SINT64ÚMAX_TYPEÚ CPPTYPE_INT32Ú CPPTYPE_INT64ÚCPPTYPE_UINT32ÚCPPTYPE_UINT64ÚCPPTYPE_DOUBLEÚ CPPTYPE_FLOATÚ CPPTYPE_BOOLÚ CPPTYPE_ENUMÚCPPTYPE_STRINGràÚ MAX_CPPTYPErìÚLABEL_OPTIONALÚLABEL_REQUIREDrßÚ MAX_LABELÚMAX_FIELD_NUMBERÚFIRST_RESERVED_FIELD_NUMBERÚLAST_RESERVED_FIELD_NUMBERrXrr¸rr#rKr¶r­rárêÚ staticmethodrïrrs@rr¸r¸¡s3ø„ñ/ðj€+Ø€*Ø€*Ø€+Ø€*Ø€,Ø€,Ø€)Ø€+Ø€*Ø€,Ø€*Ø€+Ø€)Ø€-Ø€-Ø€+Ø€+Ø€(ð €-Ø€-Ø€.Ø€.Ø€.Ø€-Ø€,Ø€,Ø€.Ø€/Ø€+ð#Ø�>ð#à�-ð#ð�ð#ð�-ð #ð �=ð #ð �]ð #ð�>ð#ð�Nð#ð�-ð#ð�]ð#ð�=ð#ð�>ð#ð�Nð#ð�.ð#ð�>ð#ð �ð!#ð"�Oð##ð$�/ñ%#Ðð2€.Ø€.Ø€.Ø€)ð#ÐØ %ÐØ$ÐáØ"×2Ñ2Ðð8<Ø#'ØIMØ&*ó @ð7;Ø"&ØHLØ%)õ -Mð^ ñ ó ð ð ñ?ó ð?ð" ñ(ó ð(ð"ñKóôKrr¸cón‡—eZdZdZerej Z dd„Z dˆfd„ Z e d„«Z ˆfd„Z ˆxZ S)ÚEnumDescriptoraÓDescriptor for an enum defined in a .proto file. Attributes: name (str): Name of the enum type. full_name (str): Full name of the type, including package name and any enclosing type(s). values (list[EnumValueDescriptor]): List of the values in this enum. values_by_name (dict(str, EnumValueDescriptor)): Same as :attr:`values`, but indexed by the "name" field of each EnumValueDescriptor. values_by_number (dict(int, EnumValueDescriptor)): Same as :attr:`values`, but indexed by the "number" field of each EnumValueDescriptor. containing_type (Descriptor): Descriptor of the immediate containing type of this enum, or None if this is an enum defined at the top level in a .proto file. Set by Descriptor's constructor if we're passed into one. file (FileDescriptor): Reference to file descriptor. options (descriptor_pb2.EnumOptions): Enum options message or None to use default enum options. c ó|—tjj«tjj |«Sr!)rrmrnroÚFindEnumTypeByName) rr>r]rqr�r^rHrIrCrarbr{s rr#zEnumDescriptor.__new__½s-€ô×Ñ×4Ñ4Ô6Ü × "Ñ "× 5Ñ 5°iÓ @Ð@rc ó•—| tur td«tt|�|d||||| | |¬« ||_|j D]} || _|| _Œtd„|D««|_ td„t|«D««|_ y)zÇArguments are as described in the attribute description above. Note that filename is an obsolete argument, that is not used anymore. Please use file.name to access this as an attribute. rÚ EnumOptionsr~c3ó8K—|]}|j|f–—Œy­wr!r=©rƒr�s rr…z*EnumDescriptor.__init__..Ùrˆr†c3ó8K—|]}|j|f–—Œy­wr!r€rs rr…z*EnumDescriptor.__init__..Ûsèø€Ð IÑ8H°1 !§(¡(¨A¤Ñ8Hùr†N) r•r8rrrKr�rCrÍr–Úvalues_by_nameÚreversedr°)r'r>r]rqr�r^rHrIrCrarbr{r²rs €rrKzEnumDescriptor.__init__Äs•ø€ðÔ-Ñ-ÜÐ"Ô#ä Œ.˜$Ñ(Ø�  i°ØÐ*:Ø%Ð:Lð)ôNð €D„KØ—”ˆØ€e„jØ€e…jðôÑ;±FÓ;Ó;€DÔä Ñ I¼ÀÔ8HÓ IÓI€DÕrcó4—|jjdk(S)a:Returns true whether this is a "closed" enum. This means that it: - Has a fixed set of values, rather than being equivalent to an int32. - Encountering values not in this set causes them to be treated as unknown fields. - The first value (i.e., the default) may be nonzero. WARNING: Some runtimes currently have a quirk where non-closed enums are treated as closed when used as the type of fields defined in a `syntax = proto2;` file. This quirk is not present in all runtimes; as of writing, we know that: - C++, Java, and C++-based Python share this quirk. - UPB and UPB-based Python do not. - PHP and Ruby treat all enums as open regardless of declaration. Care should be taken when using this function to respect the target runtime's enum handling quirks. r”)rCr r*s rÚ is_closedzEnumDescriptor.is_closedÝs€ð, �9‰9× 'Ñ '¨8Ñ 3Ð3rcó,•—tt|� |«y)z‘Copies this to a descriptor_pb2.EnumDescriptorProto. Args: proto (descriptor_pb2.EnumDescriptorProto): An empty descriptor proto. N)rrrhrµs €rrhzEnumDescriptor.CopyToProtoõsø€ô Œ.˜$Ñ+¨EÕ2r)NNNNNNN)r r r r rXrrrr#rKr¶rrhrrs@rrr¢sYø„ññ,Ø"×1Ñ1Ðð/3Ø.2ØGKóAð.2Ø-1ØFJõJð2 ñ4ó ð4÷.3ð3rrcóP‡—eZdZdZerej Z dd„Z dˆfd„ Z ˆxZ S)ÚEnumValueDescriptoraLDescriptor for a single value within an enum. Attributes: name (str): Name of this value. index (int): Dense, 0-indexed index giving the order that this value appears textually within its enum in the .proto file. number (int): Actual number assigned to this enum value. type (EnumDescriptor): :class:`EnumDescriptor` to which this value belongs. Set by :class:`EnumDescriptor`'s constructor if we're passed into one. options (descriptor_pb2.EnumValueOptions): Enum value options message or None to use default enum value options options. có@—tjj«yr!)rrmrn)rr>rÌr�rÍrHrIr{s rr#zEnumValueDescriptor.__new__s€ô×Ñ×4Ñ4Ô6ð rc󬕗|tur td«tt|�|r |j nd||d«||_||_||_||_ y)ú>Arguments are as described in the attribute description above.rNÚEnumValueOptions) r•r8rrrKrCr>rÌr�rÍ) r'r>rÌr�rÍrHrIr{rs €rrKzEnumValueDescriptor.__init__sYø€ðÔ-Ñ-ÜÐ'Ô(ä Ô ˜tÑ-Ùˆ� Š ˜tØØØô ð €D„IØ€D„JØ€D„KØ€D…Ir)NNNN) r r r r rXrrrr#rKrrs@rrrÿs8ø„ñ ñØ"×6Ñ6ÐðØBFóðØAE÷ñrrcóP‡—eZdZdZerej Z dd„Z dˆfd„ Z ˆxZ S)ÚOneofDescriptora'Descriptor for a oneof field. Attributes: name (str): Name of the oneof field. full_name (str): Full name of the oneof field, including package name. index (int): 0-based index giving the order of the oneof field inside its containing type. containing_type (Descriptor): :class:`Descriptor` of the protocol message type that contains this field. Set by the :class:`Descriptor` constructor if we're passed into one. fields (list[FieldDescriptor]): The list of field descriptors this oneof can contain. c ó|—tjj«tjj |«Sr!)rrmrnroÚFindOneofByName) rr>r]rÌr^rrrHrIr{s rr#zOneofDescriptor.__new__As-€ô×Ñ×4Ñ4Ô6Ü × "Ñ "× 2Ñ 2°9Ó =Ð=rc 󺕗|tur td«tt|�|r |j nd||d«||_||_||_||_ ||_ y)r"r%NÚ OneofOptions) r•r8rr%rKrCr>r]rÌr^rr) r'r>r]rÌr^rrrHrIr{rs €rrKzOneofDescriptor.__init__Gsbø€ðÔ-Ñ-ÜÐ#Ô$ä Œ/˜4Ñ)Ù /ˆ×Ò°TØØØô ð €D„IØ€D„NØ€D„JØ*€DÔØ€D…Krri) r r r r rXrr%rr#rKrrs@rr%r%/s<ø„ñ ñØ"×2Ñ2ÐðGKØ,0ó>ðFJØ*.÷ñrr%cór‡—eZdZdZerej Z dd„Z dˆfd„ Z d„Z ˆfd„Z ˆxZ S)ÚServiceDescriptoraÑDescriptor for a service. Attributes: name (str): Name of the service. full_name (str): Full name of the service, including package name. index (int): 0-indexed index giving the order that this services definition appears within the .proto file. methods (list[MethodDescriptor]): List of methods provided by this service. methods_by_name (dict(str, MethodDescriptor)): Same :class:`MethodDescriptor` objects as in :attr:`methods_by_name`, but indexed by "name" attribute in each :class:`MethodDescriptor`. options (descriptor_pb2.ServiceOptions): Service options message or None to use default service options. file (FileDescriptor): Reference to file info. c ó|—tjj«tjj |«Sr!)rrmrnroÚFindServiceByName) rr>r]rÌÚmethodsrHrIrCrarbr{s rr#zServiceDescriptor.__new__qs-€ô×Ñ×4Ñ4Ô6Ü × "Ñ "× 4Ñ 4°YÓ ?Ð?rc ó•—| tur td«tt|�|d|||d|| |¬« ||_||_td„|D««|_|j D]} |j| _ || _ Œy)Nr+ÚServiceOptionsr~c3ó8K—|]}|j|f–—Œy­wr!r=)rƒÚms rr…z-ServiceDescriptor.__init__..Œsèø€Ð=±W° §¡¨¤ ±Wùr†) r•r8rr+rKrÌr.r–Úmethods_by_namerCÚcontaining_service) r'r>r]rÌr.rHrIrCrarbr{Úmethodrs €rrKzServiceDescriptor.__init__€s‰ø€ðÔ-Ñ-ÜÐ%Ô&ä Ô ˜TÑ+ØÐ! 4¨°DØ Ð/Ø%Ð:Lð,ôNð€D„JØ€D„LÜÑ=±WÓ=Ó=€DÔà—,”,ˆØ—I‘I€f„kØ"&€fÕñrcó —|j|S)aSearches for the specified method, and returns its descriptor. Args: name (str): Name of the method. Returns: MethodDescriptor: The descriptor for the requested method. Raises: KeyError: if the method cannot be found in the service. )r3)r'r>s rÚFindMethodByNamez"ServiceDescriptor.FindMethodByName’s€ð × Ñ  Ñ %Ð%rcó,•—tt|� |«y)z—Copies this to a descriptor_pb2.ServiceDescriptorProto. Args: proto (descriptor_pb2.ServiceDescriptorProto): An empty descriptor proto. N)rr+rhrµs €rrhzServiceDescriptor.CopyToProto sø€ô Ô ˜TÑ.¨uÕ5r) NNNNNNNNNN)NNNNNN) r r r r rXrr+rr#rKr7rhrrs@rr+r+[s_ø„ññ"Ø"×4Ñ4ÐðØØØØØØ ØØØó @ð?CØ-1ØFJõ'ò$ &÷6ð6rr+cób‡—eZdZdZerej Z dd„Z dˆfd„ Z d„Z ˆxZ S)ÚMethodDescriptoraôDescriptor for a method in a service. Attributes: name (str): Name of the method within the service. full_name (str): Full name of method. index (int): 0-indexed index of the method inside the service. containing_service (ServiceDescriptor): The service that contains this method. input_type (Descriptor): The descriptor of the message that this method accepts. output_type (Descriptor): The descriptor of the message that this method returns. client_streaming (bool): Whether this method uses client streaming. server_streaming (bool): Whether this method uses server streaming. options (descriptor_pb2.MethodOptions or None): Method options message, or None to use default method options. c ó|—tjj«tjj |«Sr!)rrmrnror7) rr>r]rÌr4Ú input_typeÚ output_typeÚclient_streamingÚserver_streamingrHrIr{s rr#zMethodDescriptor.__new__Ás-€ô×Ñ×4Ñ4Ô6Ü × "Ñ "× 3Ñ 3°IÓ >Ð>rc óä•—| tur td«tt|�|r |j nd| | d«||_||_||_||_ ||_ ||_ ||_ ||_ y)z²The arguments are as described in the description of MethodDescriptor attributes above. Note that containing_service may be None, and may be set later if necessary. r:NÚ MethodOptions)r•r8rr:rKrCr>r]rÌr4r<r=r>r?) r'r>r]rÌr4r<r=r>r?rHrIr{rs €rrKzMethodDescriptor.__init__Ðs|ø€ð"Ô-Ñ-ÜÐ$Ô%ä Ô ˜DÑ*Ù#5Ð×Ò¸4ØØØô ð €D„IØ€D„NØ€D„JØ0€DÔØ €D„OØ"€DÔØ,€DÔØ,€DÕrcóä—|j�Zddlm}|j«}|jj |«|j |j |j«ytd«‚)zýCopies this to a descriptor_pb2.MethodDescriptorProto. Args: proto (descriptor_pb2.MethodDescriptorProto): An empty descriptor proto. Raises: Error: If self couldn't be serialized, due to too few constructor arguments. NrrOz&Descriptor does not contain a service.) r4rQrPÚServiceDescriptorProtorhÚCopyFromr5rÌr)r'rgrPÚ service_protos rrhzMethodDescriptor.CopyToProtoós\€ð ×ÑÐ*Ý0Ø$×;Ñ;Ó=€mØ ×Ñ×)Ñ)¨-Ô8Ø ‡n�n�]×)Ñ)¨$¯*©*Ñ5Õ6ä Ð:Ó ;Ð;r)FFNNN) r r r r rXrr:rr#rKrhrrs@rr:r:ªsKø„ññ$Ø"×3Ñ3Ðð"'Ø!&ØØ#'Øó ?ð,!&Ø %ØØ"&Øõ!-öFÚpackagerHrIreÚ dependenciesÚpublic_dependenciesryÚpoolr{rs €rr#zFileDescriptor.__new__(s1ø€ñ Ü×$Ñ$×6Ñ6°}ÓEÐEä”^ SÑ1°#Ó6Ð6rc ó:•—| tur td«tt|�d||d«| €ddlm} | j«} | |_i|_ ||_ ||_ |xsd|_ ||_ i|_i|_i|_|xsg|_|xsg|_y)z Constructor.rGNÚ FileOptionsr)Údescriptor_poolr”)r•r8rrGrKrQrPÚDefaultrMÚmessage_types_by_namer>rJr rer›ržÚservices_by_namerKrL) r'r>rJrHrIrerKrLryrMr{rPrs €rrKzFileDescriptor.__init__4s¬ø€ð Ô-Ñ-ÜÐ"Ô#ä Œ.˜$Ñ(Ø ˆgÐ)¨=ôð €|Ý1Ø × $Ñ $Ó &€dØ€D„IØ!#€DÔØ€D„IØ€D„LØ$Ò0¨€DÔØ&€DÔà €DÔØ €DÔØ€DÔØ%Ò+¨€DÔØ 3Ò 9°r€DÕrcóD—tjd«|jSr¨r©r*s rryzFileDescriptor.syntaxPrªrcó:—|j|j«y)z~Copies this to a descriptor_pb2.FileDescriptorProto. Args: proto: An empty descriptor_pb2.FileDescriptorProto. N)rdrerfs rrhzFileDescriptor.CopyToProtoYs€ð  ×ј$×,Ñ,Õ-r)NNNNNNNN)r r r r rXrrGrr#rKr¶ryrhrrs@rrGrGsVø„ññ<Ø"×1Ñ1Ðà,0Ø7;Ø7;Ø37õ 7ð-1Ø6:Ø6:Ø26õ;ð8 ñ#ó ð#ö.rrGcó(—|j|«|S)zšParses serialized options. This helper function is used to parse serialized options in generated proto2 files. It must not be used outside proto2. )rd)ÚmessageÚstrings rrUrUbs€ð  ×ј&Ô!Ø €.rcóø—d}g}|D]6}|dk(r|sŒ d}Œ|r"|j|j««d}Œ2||z }Œ8|r)|dj«r|dj«|d<dj |«S)z+Converts name to camel-case and returns it.FÚ_TrÚ)ÚappendÚupperÚisupperÚlowerÚjoin©r>Úcapitalize_nextÚresultÚcs rrÝrÝls~€à€/Ø €&ã €a؈C‚xÚ Ø‰Ù Ø ‡m�m�A—G‘G“IÔØ�oà ��k�fð ñ ��q‘ ×!Ñ!Ô#Ø�q‘ —‘Ó!€Fˆ1�IØ �‰�‹Ðrcó>—|jd«r |jSy)zCReturns the value of the field `options`, or None if it is not set.rHN)rèrH)Údescriptor_protos rÚ_OptionsOrNonerg�s€à×јyÔ)Ø × #Ñ #Ð#à rcóœ—d}g}|D]3}|dk(rd}Œ |r"|j|j««d}Œ/||z }Œ5dj|«S)z*Converts name to Json name and returns it.FrZTr[)r\r]r`ras rrÙrÙ‰sU€à€/Ø €&ã €a؈C‚xØ�oÙ Ø ‡m�m�A—G‘G“IÔØ�oà ��k�fð ð �‰�‹Ðrcó —tj«dk7�r,|�r)ddlm}|j «}|j j «j|«tjtjd««jd«}|r@tjj|jdd«|dz«|_||_n |dz|_t$j&j)|«t$j&j+|j «}t,r|j.|j S|j g}|r|j1d|«i} |j2D]�} dj|| j gz«} t5| j | d t7| j8«D� � cgc],\} } t;| j | | j<t>¬ «‘Œ.c} } t>¬ «}|| | <Œ‘i}|j@D]D}dj||j gz«} tC|dj|«d |¬ «}||| <ŒFg}|jDD�]'}dj||j gz«} d }d }|jFr |jF}nd }|jId «rI|jJ}dj|||jMd«dzd gz«}||vr||}n || vr| |}tO|j | |j<dz |j<|jPtNjS|jP«|jTd ||d d d tW|«d |t>¬«}|jY|«�Œ*dj|«}t[|j |d d |t]|j_««t]| j_««gtW|«t>¬« Scc} } w)aMake a protobuf Descriptor given a DescriptorProto protobuf. Handles nested descriptors. Note that this is limited to the scope of defining a message inside of another message. Composite fields can currently only be resolved if the message is defined in the same scope as the field. Args: desc_proto: The descriptor_pb2.DescriptorProto protobuf message. package: Optional package name for the new message Descriptor (string). build_file_if_cpp: Update the C++ descriptor pool if api matches. Set to False on recursion, so no duplicates are created. syntax: The syntax/semantics that should be used. Set to "proto3" to get proto3 field presence semantics. Returns: A Descriptor for protobuf messages. rrrOrÆÚasciiÚ.Ú/z.protoN)r{F)rJÚbuild_file_if_cppryÚ type_namer4)rHrÓrÕr{)rHr{)0rrÚrQrPÚFileDescriptorProtorÑÚaddÚ MergeFromÚbinasciiÚhexlifyÚosÚurandomÚdecodeÚpathr`Úreplacer>rJrroÚAddÚFindFileByNamerXrRÚinsertr¤rÚ enumerater²rr�r•r£ÚMakeDescriptorr¢rÕrèrnÚrfindr¸rÍrïrÏrgr\rkÚlistr�)Ú desc_protorJrmryrPÚfile_descriptor_protoÚ proto_namercÚfull_message_namertÚ enum_protor]ÚiiÚenum_valÚ enum_descrsÚ nested_protoÚ nested_descrrÚ field_protorÕrnÚfull_type_namer¢Ú desc_names rr}r}šs¾€ô$×ÑÓ (Ó*Ò/@õ /Ø*×>Ñ>Ó@ÐØ×&Ñ&×*Ñ*Ó,×6Ñ6°zÔBô ×!Ñ!¤"§*¡*¨R£.Ó1×8Ñ8¸ÓA€JáÜ#%§7¡7§<¡<°·±ÀÀSÓ0IØ0:¸XÑ0Eó$GÐÔ à&-ÐÕ#à#-°Ñ#8ÐÔ ä ×Ñ×ÑÐ3Ô4Ü × "Ñ "× 1Ñ 1Ð2G×2LÑ2LÓ M€FåØ × )Ñ )¨*¯/©/Ñ :Ð:à!—‘Ð'ÐÙ Ð×&Ñ& q¨'Ô2ð€*Ø×(Ô(€jØ—‘Ð*¨j¯o©oÐ->Ñ>Ó?€IÜØ�‰˜ Dô!*¨*×*:Ñ*:Ô ;ô+=ñ!<‘ ��Hô  § ¡ ¨r°8·?±?Ü+?ö Aà ;ò+=ô(ô )€Ið &€JˆyÒð)ð€,Ø ×,Ô,€lØ—‘Ð*¨l×.?Ñ.?Ð-@Ñ@ÓA€Iô! Ø),¯©Ð2CÓ)DØ38Ø(.ô0€Kð*€L�Òð-ð €&Ø×%Õ%€kØ—‘Ð*¨k×.>Ñ.>Ð-?Ñ?Ó@€IØ€IØ€KØ×ÒØ×'Ñ'�ià€iØ×јKÔ(Ø×'Ñ'€iØ—x‘xÐ 1Ø!*¨9¯?©?¸3Ó+?ÀÑ+AÐ+BÐ!CÐ Dñ!EóF€nà ˜<Ñ 'Ø" >Ñ2‰ Ø ˜ZÑ 'ؘ~Ñ.ˆ ä Ø×ј) [×%7Ñ%7¸!Ñ%;Ø×јK×,Ñ,Ü×/Ñ/° ×0@Ñ0@ÓAØ×ј4 ¨i¸¸uÀdܘ{Ó+¸uØÔ(<ô  >€Eð ‡M�M�%Öð1&ð4�h‰hÐ(Ó)€)Ü �J—O‘O Y°°d¸Fܘ×,Ñ,Ó.Ó/´°j×6GÑ6GÓ6IÓ1JÈBÜ*¨:Ó6Ü3ô 5ð5ùó_+=sÇ1O?)r[TN)(r Ú __author__r$r:Úgoogle.protobuf.internalrrXrÚrrrtÚ _c_modulerÚgoogle.protobuf.pyextÚ ExceptionrrrÍrr"rr%r&r8r9r•rAr[rkr¸rrr%r+r:rGrUrÝrgrÙr}r rrÚr’swðñð3€ ãÛå7àÐØÐ×ÑÓ Ò(ãÛ à × )Ñ )€(à ÐÝ.ØÐô$ˆIô$ôQ˜eôQñô ˜DõðÐô ˆFô ð ˆ �‰Ó€ò3ð€ Ôñ“xÐôIÐ2õIôX4@˜Nô4@ônq/Ð&ôq/ô~~K�nô~KôBZ3Ð*ôZ3ôz-˜.ô-ô`)�nô)ôXL6Ð-ôL6ô^Y<�~ôY<ôxY.�^ôY.òxòò*òð">BØôh5r