Ë 3Ò‰¬¿Ùe ãó—dZdZddlZddlmZdZe Zd„Zd„Zd„Z d „Z d „Z d „Z e e«xZ xZZe e«xZZe eej$«xZZe d «xZxZZe d «xZxZZe d«Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#e"«Z$e#«Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+e(ejXe%e«xZ-xZ.Z/e(ejXe$e«xZ0Z1e)ejXe$eej$«xZ2Z3e*ejhd«Z5e*ejld«Z7e*ejhd«Z8e*ejld «Z9e+ejhd!«Z:e+ejld"«Z;d#„Zd&„Z?d'„Z@d(„ZAd)„ZBy)*a­Code for encoding protocol message primitives. Contains the logic for encoding every logical protocol field type into one of the 5 physical wire types. This code is designed to push the Python interpreter's performance to the limits. The basic idea is that at startup time, for every field (i.e. every FieldDescriptor) we construct two functions: a "sizer" and an "encoder". The sizer takes a value of this field's type and computes its byte size. The encoder takes a writer function and a value. It encodes the value into byte strings and invokes the writer function to write those strings. Typically the writer function is the write() method of a BytesIO. We try to do as much work as possible when constructing the writer and the sizer rather than when calling them. In particular: * We copy any needed global functions to local variables, so that we do not need to do costly global table lookups at runtime. * Similarly, we try to do any attribute lookups at startup time if possible. * Every field's tag is encoded to bytes at startup, since it can't change at runtime. * Whatever component of the field size we can compute at startup, we do. * We *avoid* sharing code if doing so would make the code slower and not sharing does not burden us too much. For example, encoders for repeated fields do not just call the encoders for singular fields in a loop because this would add an extra function call overhead for every loop iteration; instead, we manually inline the single-value encoder into the loop. * If a Python function lacks a return statement, Python actually generates instructions to pop the result of the last statement off the stack, push None onto the stack, and then return that. If we really don't care what value is returned, then we can save two instructions by returning the result of the last statement. It looks funny but it helps. * We assume that type and bounds checking has happened at a higher level. z kenton@google.com (Kenton Varda)éN)Ú wire_formatgðcóp—|dkry|dkry|dkry|dkry|d kry |d kry |d kry|dkry|dkryy)z#Compute the size of a varint value.éééÿ?ééÿÿééÿÿÿéìÿÿéìÿÿÿéìÿÿÿéìÿÿÿÿéìÿÿÿÿé é ©©Úvalues úE/usr/lib/python3.12/site-packages/google/protobuf/internal/encoder.pyÚ _VarintSizer9s_€à ˆd‚]˜1Ø ˆf‚_˜QØ ˆhÒ˜qØ ˆiÒ Ø ˆkÒ !Ø ˆmÒ AØ ˆoÒ aØ ÐÒ qØ Ð Ò ¨Ø ócó|—|dkry|dkry|dkry|dkry|d kry |d kry |d kry|dkry|dkry|dkryy)z*Compute the size of a signed varint value.rrrrrrr r r r r rrrrrrrrrrrs rÚ_SignedVarintSizerGsh€à ˆQ‚Y�rØ ˆd‚]˜1Ø ˆf‚_˜QØ ˆhÒ˜qØ ˆiÒ Ø ˆkÒ !Ø ˆmÒ AØ ˆoÒ aØ ÐÒ qØ Ð Ò ¨Ø rcó@—ttj|d««S)zQReturns the number of bytes required to serialize a tag with this field number.r)rrÚPackTag)Ú field_numbers rÚ_TagSizer#Vs€ô ”[×(Ñ(¨°qÓ9Ó :Ð:rcó‡—ˆfd„}|S)z…A sizer which uses the function compute_value_size to compute the size of each value. Typically compute_value_size is _VarintSize.cód•‡‡—t|«Š|rtŠˆˆˆfd„}|S|rˆˆfd„}|Sˆˆfd„}|S)NcóH•—d}|D] }|‰|«z }Œ|‰|«z‰zS©Nrr)rÚresultÚelementÚcompute_value_sizeÚlocal_VarintSizeÚtag_sizes €€€rÚPackedFieldSizez<_SimpleSizer..SpecificSizer..PackedFieldSizems8ø€ØˆÛˆGØ Ñ& wÓ/Ñ /‰&ðàÑ(¨Ó0Ñ0°8Ñ;Ð;rcóH•—‰t|«z}|D] }|‰|«z }Œ|S©N©Úlen)rr(r)r*r,s €€rÚRepeatedFieldSizez>_SimpleSizer..SpecificSizer..RepeatedFieldSizets0ø€ØœC ›JÑ&ˆÛˆGØ Ñ& wÓ/Ñ /‰&ðàˆ rcó•—‰‰|«zSr/r)rr*r,s €€rÚ FieldSizez6_SimpleSizer..SpecificSizer..FieldSize{sø€ØÑ,¨UÓ3Ñ3Ð3r©r#r) r"Ú is_repeatedÚ is_packedr-r2r4r+r,r*s @@€rÚ SpecificSizerz#_SimpleSizer..SpecificSizeris>ú€Ü˜ Ó%€HÙÜ$Ðö<ð ÐÙ õð Ðõ4à Ðrr)r*r8s` rÚ _SimpleSizerr9esø€ôð, Ðrc󇇗ˆˆfd„}|S)z‘Like SimpleSizer, but modify_value is invoked on each value before it is passed to compute_value_size. modify_value is typically ZigZagEncode.cój•‡‡—t|«Š|rtŠˆˆˆ ˆfd„}|S|r ˆˆ ˆfd„}|Sˆˆ ˆfd„}|S)NcóT•—d}|D]}|‰‰|««z }Œ|‰|«z‰zSr'r)rr(r)r*r+Ú modify_valuer,s €€€€rr-z>_ModifiedSizer..SpecificSizer..PackedFieldSizeŠs=ø€ØˆÛˆGØ Ñ&¡|°GÓ'<Ó=Ñ =‰&ðàÑ(¨Ó0Ñ0°8Ñ;Ð;rcóT•—‰t|«z}|D]}|‰‰|««z }Œ|Sr/r0)rr(r)r*r=r,s €€€rr2z@_ModifiedSizer..SpecificSizer..RepeatedFieldSize‘s5ø€ØœC ›JÑ&ˆÛˆGØ Ñ&¡|°GÓ'<Ó=Ñ =‰&ðàˆ rcó&•—‰‰‰|««zSr/r)rr*r=r,s €€€rr4z8_ModifiedSizer..SpecificSizer..FieldSize˜sø€ØÑ,©\¸%Ó-@ÓAÑAÐArr5) r"r6r7r-r2r4r+r,r*r=s @@€€rr8z%_ModifiedSizer..SpecificSizer†s?ú€Ü˜ Ó%€HÙÜ$Ð÷<ð ÐÙ öð ÐöBà Ðrr)r*r=r8s`` rÚ_ModifiedSizerr@‚sù€õð, Ðrcó‡—ˆfd„}|S)zWLike _SimpleSizer except for a fixed-size field. The input is the size of one value.cóx•‡‡‡‡ —t|«Š |rtŠˆˆ ˆ fd„}|S|r ‰ ‰ zŠˆfd„}|S‰ ‰ zŠˆfd„}|S)Ncó<•—t|«‰z}|‰|«z‰zSr/r0)rr(r+r,Ú value_sizes €€€rr-z;_FixedSizer..SpecificSizer..PackedFieldSize§s'ø€Ü�U“˜jÑ(ˆØÑ(¨Ó0Ñ0°8Ñ;Ð;rcó •—t|«‰zSr/r0)rÚ element_sizes €rr2z=_FixedSizer..SpecificSizer..RepeatedFieldSize­sø€Ü�5‹z˜LÑ(Ð(rcó•—‰Sr/r)rÚ field_sizes €rr4z5_FixedSizer..SpecificSizer..FieldSize²s ø€ØÐrr5) r"r6r7r-r2r4rFrHr+r,rDs @@@@€rr8z"_FixedSizer..SpecificSizer£sPü€Ü˜ Ó%€HÙÜ$Ðö<ðÐÙ Ø (Ñ*€lô)à Ðà Ñ(€jôà Ðrr)rDr8s` rÚ _FixedSizerrIŸsø€ôð& Ðrr rrcóf‡‡‡—t|«ŠtŠtŠ|rJ‚|r ˆˆˆfd„}|Sˆˆˆfd„}|S)z#Returns a sizer for a string field.có|•—‰t|«z}|D]'}‰|jd««}|‰|«|zz }Œ)|S©Nzutf-8)r1Úencode©rr(r)Úlr+Ú local_lenr,s €€€rr2z&StringSizer..RepeatedFieldSizeÕsJø€Øœ#˜e›*Ñ$€fÛˆ'Ù �g—n‘n WÓ-Ó .ˆØÑ" 1Ó%¨Ñ)Ñ)‰ðð€mrcóN•—‰|jd««}‰‰|«z|zSrL©rM©rrOr+rPr,s €€€rr4zStringSizer..FieldSizeÝs,ø€Ù �E—L‘L Ó)Ó *€aØ Ñ(¨Ó+Ñ +¨aÑ /Ð/r©r#rr1©r"r6r7r2r4r+rPr,s @@@rÚ StringSizerrVÍó?ú€ô�lÓ #€(Ü ÐÜ€)٠ЈÙöð Ðö0ð Ðrcóf‡‡‡—t|«ŠtŠtŠ|rJ‚|r ˆˆˆfd„}|Sˆˆˆfd„}|S)z"Returns a sizer for a bytes field.có^•—‰t|«z}|D]}‰|«}|‰|«|zz }Œ|Sr/r0rNs €€€rr2z%BytesSizer..RepeatedFieldSizeësAø€Øœ#˜e›*Ñ$€fÛˆ'Ù �gÓ ˆØÑ" 1Ó%¨Ñ)Ñ)‰ðð€mrcó0•—‰|«}‰‰|«z|zSr/rrSs €€€rr4zBytesSizer..FieldSizeós#ø€Ù �EÓ €aØ Ñ(¨Ó+Ñ +¨aÑ /Ð/rrTrUs @@@rÚ BytesSizerr[ãrWrcóH‡—t|«dzŠ|rJ‚|rˆfd„}|Sˆfd„}|S)z"Returns a sizer for a group field.rcóX•—‰t|«z}|D]}||j«z }Œ|Sr/©r1ÚByteSize)rr(r)r,s €rr2z%GroupSizer..RepeatedFieldSizeÿs3ø€Øœ#˜e›*Ñ$€fÛˆ'Ø�'×"Ñ"Ó$Ñ$‰ðà €mrcó*•—‰|j«zSr/©r_)rr,s €rr4zGroupSizer..FieldSizesø€Ø ˜Ÿ™Ó(Ñ (Ð(r)r#)r"r6r7r2r4r,s @rÚ GroupSizerrbùs7ø€ô�lÓ # aÑ '€(٠ЈÙôð Ðô)à ÐrcóT‡‡—t|«ŠtŠ|rJ‚|rˆˆfd„}|Sˆˆfd„}|S)z$Returns a sizer for a message field.cón•—‰t|«z}|D] }|j«}|‰|«|zz }Œ"|Sr/r^)rr(r)rOr+r,s €€rr2z'MessageSizer..RepeatedFieldSizesEø€Øœ#˜e›*Ñ$€fÛˆ'Ø × Ñ Ó ˆØÑ" 1Ó%¨Ñ)Ñ)‰ðð€mrcó@•—|j«}‰‰|«z|zSr/ra)rrOr+r,s €€rr4zMessageSizer..FieldSizes%ø€Ø �.‰.Ó €aØ Ñ(¨Ó+Ñ +¨aÑ /Ð/rr5)r"r6r7r2r4r+r,s @@rÚ MessageSizerrf s:ù€ô�lÓ #€(Ü Ð٠ЈÙõð Ðõ0ð Ðrc󆇇—td«dztd«zt|«ztd«zŠtŠˆˆfd„}|S)zìReturns a sizer for extensions of MessageSet. The message set message looks like this: message MessageSet { repeated group Item = 1 { required int32 type_id = 2; required string message = 3; } } rrr có@•—|j«}‰‰|«z|zSr/ra)rrOr+Ú static_sizes €€rr4z&MessageSetItemSizer..FieldSize3s%ø€Ø �‰Ó€AØ Ñ)¨!Ó,Ñ ,¨qÑ 0Ð0rr5)r"r4r+ris @@rÚMessageSetItemSizerrj$sDù€ô˜!“˜q‘¤8¨A£;Ñ.´¸\Ó1JÑJܘ!“ñ€+ä Ðõ1ð Ðrcó`‡‡‡—|jŠt|jdd«Šˆˆˆfd„}|S)z Returns a sizer for a map field.Fc󆕗d}|D]8}||}‰j||¬«}|‰|«z }‰sŒ)|j«Œ:|S)Nr©Úkeyr)Ú_concrete_classr_)Ú map_valueÚtotalrnrÚ entry_msgÚis_message_mapÚ message_sizerÚ message_types €€€rr4zMapSizer..FieldSizeFsUø€Ø €Eۈؘ‰n€eð ×.Ñ.°3¸eÐ.ÓD€iØ ‰}˜YÓ'Ñ'€eÚ Ø �‰Õðð €Lr)rurfÚnumber)Úfield_descriptorrsr4rtrus ` @@rÚMapSizerrx>s2ú€ð "×.Ñ.€,ÜÐ/×6Ñ6¸¸uÓE€-ö ð ÐrcóR‡—tjd«jŠdˆfd„ }|S)zBReturn an encoder for a basic varint value (does not include tag).ú>Bcót•—|dz}|dz}|r|‰d|z««|dz}|dz}|rŒ|‰|««S)Nrré€r©ÚwriterÚunused_deterministicÚbitsÚlocal_int2bytes €rÚ EncodeVarintz$_VarintEncoder..EncodeVarint`sRø€Ø �4‰<€DØ ˆa�K€EÙ Ù ‰N˜4 ™9Ó %Ô&Ø �T‰\€dØ ��k€eò ñ ‘ Ó%Ó &Ð&rr/©ÚstructÚStructÚpack)r‚r�s @rÚ_VarintEncoderr‡[s&ø€ô—=‘= Ó&×+Ñ+€.õ'ð ÐrcóR‡—tjd«jŠdˆfd„ }|S)zKReturn an encoder for a basic signed varint value (does not include tag).rzc󈕗|dkr|dz }|dz}|dz}|r|‰d|z««|dz}|dz}|rŒ|‰|««S)Nrlrrr|rr}s €rÚEncodeSignedVarintz0_SignedVarintEncoder..EncodeSignedVarintrscø€Ø ˆq‚yØ �Ñ€eØ �4‰<€DØ ˆa�K€EÙ Ù ‰N˜4 ™9Ó %Ô&Ø �T‰\€dØ ��k€eò ñ ‘ Ó%Ó &Ð&rr/rƒ)rŠr�s @rÚ_SignedVarintEncoderr‹ls&ø€ô—=‘= Ó&×+Ñ+€.õ 'ð ÐrcóV—g}t|j|d«dj|«S)z€Encode the given integer as a varint and return the bytes. This is only called at startup time so it doesn't need to be fast.Tr)Ú _EncodeVarintÚappendÚjoin)rÚpiecess rÚ _VarintBytesr‘„s(€ð €&Ü�— ‘ ˜u dÔ+Ø �‰�&Ó ÐrcóR—tttj||«««S)zCEncode the given tag and return the bytes. Only called at startup.)Úbytesr‘rr!)r"Ú wire_types rÚTagBytesr•�s!€ô Œ|œK×/Ñ/° ¸iÓHÓIÓ JÐJrc󇇇—ˆˆˆfd„}|S)a_Return a constructor for an encoder for fields of a particular type. Args: wire_type: The field's wire type, for encoding tags. encode_value: A function which encodes an individual value, e.g. _EncodeVarint(). compute_value_size: A function which computes the size of an individual value, e.g. _VarintSize(). c󴕇‡—|r*t|tj«ŠtŠˆˆ ˆˆfd„}|S|rt|‰ «Šˆ ˆfd„}|St|‰ «Šˆ ˆfd„}|S)Ncót•—|‰«d}|D] }|‰|«z }Œ‰|||«|D] }‰|||«Œyr'r) r~rÚ deterministicÚsizer)r*Ú encode_valueÚlocal_EncodeVarintÚ tag_bytess €€€€rÚEncodePackedFieldzB_SimpleEncoder..SpecificEncoder..EncodePackedField¦sLø€Ù ˆiÔØˆÛˆGØ Ñ$ WÓ-Ñ -‰$ðá˜5 $¨ Ô6ÛˆGÙ �u˜g }Õ 5ñrcó8•—|D]}|‰«‰|||«Œyr/r)r~rr™r)r›r�s €€rÚEncodeRepeatedFieldzD_SimpleEncoder..SpecificEncoder..EncodeRepeatedField±s!ø€ÛˆGÙ � Ô Ù �u˜g }Õ 5ñrcó(•—|‰«‰|||«Sr/r)r~rr™r›r�s €€rÚ EncodeFieldz<_SimpleEncoder..SpecificEncoder..EncodeField¸sø€Ù ˆiÔÙ˜E 5¨-Ó8Ð8r©r•rÚWIRETYPE_LENGTH_DELIMITEDr�) r"r6r7ržr r¢rœr�r*r›r”s @@€€€rÚSpecificEncoderz'_SimpleEncoder..SpecificEncoder¢s`ú€Ùܘ<¬×)NÑ)NÓO€iÜ(Ð÷6ðÐ٠ܘ<¨Ó3€iõ6ð!Ð ä˜<¨Ó3€iõ9ðÐrr)r”r›r*r¥s``` rÚ_SimpleEncoderr¦—sú€öð6 Ðrc󇇇‡—ˆˆˆˆfd„}|S)z“Like SimpleEncoder but additionally invokes modify_value on every value before passing it to encode_value. Usually modify_value is ZigZagEncode.c󺕇‡—|r+t|tj«ŠtŠˆˆ ˆˆ ˆfd„}|S|rt|‰ «Šˆ ˆ ˆfd„}|St|‰ «Šˆ ˆ ˆfd„}|S)Nc󌕗|‰ «d}|D]}|‰‰|««z }Œ‰|||«|D]}‰|‰|«|«Œyr'r) r~rr™ršr)r*r›rœr=r�s €€€€€rržzD_ModifiedEncoder..SpecificEncoder..EncodePackedFieldÈsVø€Ù ˆiÔØˆÛˆGØ Ñ$¡\°'Ó%:Ó;Ñ ;‰$ðá˜5 $¨ Ô6ÛˆGÙ �u™l¨7Ó3°]Õ CñrcóD•—|D]}|‰«‰|‰|«|«Œyr/r)r~rr™r)r›r=r�s €€€rr zF_ModifiedEncoder..SpecificEncoder..EncodeRepeatedFieldÓs&ø€ÛˆGÙ � Ô Ù �u™l¨7Ó3°]Õ Cñrcó4•—|‰«‰|‰|«|«Sr/r)r~rr™r›r=r�s €€€rr¢z>_ModifiedEncoder..SpecificEncoder..EncodeFieldÚsø€Ù ˆiÔÙ˜E¡<°Ó#6¸ ÓFÐFrr£) r"r6r7ržr r¢rœr�r*r›r=r”s @@€€€€rr¥z)_ModifiedEncoder..SpecificEncoderÄsiú€Ùܘ<¬×)NÑ)NÓO€iÜ(Ð÷DðDðÐ٠ܘ<¨Ó3€iöDð!Ð ä˜<¨Ó3€iöGðÐrr)r”r›r*r=r¥s```` rÚ_ModifiedEncoderr¬Àsû€÷ð6 ÐrcóD‡‡‡—tj‰«Šˆˆˆfd„}|S)z¿Return a constructor for an encoder for a fixed-width field. Args: wire_type: The field's wire type, for encoding tags. format: The format string to pass to struct.pack(). cóà•‡‡‡—tjŠ|r+t|tj«Št Šˆ ˆˆˆˆ fd„}|S|rt|‰ «Šdˆ ˆˆfd„ }|St|‰ «Šdˆ ˆˆfd„ }|S)Ncón•—|‰«‰|t|«‰z|«|D]}|‰‰|««Œyr/r0) r~rr™r)ÚformatrœÚlocal_struct_packr�rDs €€€€€rržzF_StructPackEncoder..SpecificEncoder..EncodePackedFieldñs:ø€Ù ˆiÔÙ˜5¤# e£*¨zÑ"9¸=ÔIÛˆGÙ Ñ! &¨'Ó2Õ 3ñrcóB•—|D]}|‰«|‰‰|««Œyr/r)r~rrr)r°r±r�s €€€rr zH_StructPackEncoder..SpecificEncoder..EncodeRepeatedFieldùs%ø€ÛˆGÙ � Ô Ù Ñ! &¨'Ó2Õ 3ñrcó2•—|‰«|‰‰|««Sr/r)r~rrr°r±r�s €€€rr¢z@_StructPackEncoder..SpecificEncoder..EncodeFieldsø€Ù ˆiÔÙÑ& v¨uÓ5Ó6Ð6rr/©r„r†r•rr¤r�) r"r6r7ržr r¢rœr±r�r°rDr”s @@@€€€rr¥z+_StructPackEncoder..SpecificEncoderìsoû€ÜŸ ™ ÐÙܘ<¬×)NÑ)NÓO€iÜ(Ð÷4ð4ð Ð٠ܘ<¨Ó3€i÷4ð!Ð ä˜<¨Ó3€i÷7ðÐr)r„Úcalcsize)r”r°r¥rDs`` @rÚ_StructPackEncoderr¶âs ú€ô�‰˜vÓ&€*öð2 Ðrc󈇇‡‡—tj‰«Š‰dk(rd„Šn‰dk(rd„Šntd‰z«‚ˆˆˆˆfd„}|S)aqReturn a constructor for an encoder for float fields. This is like StructPackEncoder, but catches errors that may be due to passing non-finite floating-point values to struct.pack, and makes a second attempt to encode those values. Args: wire_type: The field's wire type, for encoding tags. format: The format string to pass to struct.pack(). r cóh—|tk(r |d«y|tk(r |d«y||k7r |d«y‚)Ns€s€ÿsÀ©Ú_POS_INFÚ_NEG_INF©r~rs rÚEncodeNonFiniteOrRaisez5_FloatingPointEncoder..EncodeNonFiniteOrRaises7€à ”(Ò Ù Ð!Õ"Ø ”HÒ Ù Ð!Õ"Ø �EŠ>Ù Ð!Õ"à rrcóh—|tk(r |d«y|tk(r |d«y||k7r |d«y‚)Nsðsðÿsør¹r¼s rr½z5_FloatingPointEncoder..EncodeNonFiniteOrRaise!s7€Ø ”(Ò Ù Ð1Õ2Ø ”HÒ Ù Ð1Õ2Ø �EŠ>Ù Ð1Õ2à rzGCan't encode floating-point values that are %d bytes long (only 4 or 8)c󿕇‡‡—tjŠ|r,t|tj«Št Šˆ ˆ ˆˆˆˆ fd„}|S|rt|‰ «Šdˆ ˆ ˆˆfd„ }|St|‰ «Šdˆ ˆ ˆˆfd„ }|S)Ncó •—|‰«‰|t|«‰ z|«|D]} |‰‰|««Œy#t$r ‰||«YŒ*wxYwr/)r1Ú SystemError) r~rr™r)r½r°rœr±r�rDs €€€€€€rržzI_FloatingPointEncoder..SpecificEncoder..EncodePackedField3sZø€Ù ˆiÔÙ˜5¤# e£*¨zÑ"9¸=ÔIÛˆGð 3Ù Ñ# F¨GÓ4Õ 5ñ øô ò 3Ù " 5¨'Ö 2ð 3ús¦8¸A Á A cót•—|D]}|‰« |‰‰|««Œy#t$r ‰||«YŒ2wxYwr/©rÁ)r~rrr)r½r°r±r�s €€€€rr zK_FloatingPointEncoder..SpecificEncoder..EncodeRepeatedField@sEø€ÛˆGÙ � Ô ð 3Ù Ñ# F¨GÓ4Õ 5ñøôò 3Ù " 5¨'Ö 2ð 3ús �"¢7¶7cóf•—|‰« |‰‰|««y#t$r ‰||«YywxYwr/rÃ)r~rrr½r°r±r�s €€€€rr¢zC_FloatingPointEncoder..SpecificEncoder..EncodeFieldJs9ø€Ù ˆiÔð /Ù Ñ! &¨%Ó0Õ 1øÜò /Ù  ¨Ö .ð /ús ‹›0¯0r/r´) r"r6r7ržr r¢rœr±r�r½r°rDr”s @@@€€€€rr¥z._FloatingPointEncoder..SpecificEncoder.syû€ÜŸ ™ ÐÙܘ<¬×)NÑ)NÓO€iÜ(Ð÷ 3ñ 3ðÐ٠ܘ<¨Ó3€i÷3ð3ð!Ð ä˜<¨Ó3€i÷/ð/ð Ðr)r„rµÚ ValueError)r”r°r¥r½rDs`` @@rÚ_FloatingPointEncoderrÆsZû€ô�‰˜vÓ&€*Ø�1‚_ó ð�Q‚óô ð3Ø5?ñ@ó AðA÷"ðH Ðrz.EncodePackedFieldxs8ø€Ù ˆIÔÙ˜¤ E£ ¨MÔ:Ûˆ'Ù Ù � Õ á � Õ ñ rcóJ•—|D]}|‰«|r |‰«Œ|‰«Œyr/r)r~rrr)rËr�rÌs €€€rr z(BoolEncoder..EncodeRepeatedFieldƒs(ø€Ûˆ'Ù ˆiÔÙ Ù � Õ á � Õ ñ rcó8•—|‰«|r|‰«S|‰«Sr/r)r~rrrËr�rÌs €€€rr¢z BoolEncoder..EncodeField�s$ø€Ù ˆIÔÙ Ù�YÓÐÙ �:Ó Ðrr/)r•rr¤r�ÚWIRETYPE_VARINT) r"r6r7ržr r¢rËrœr�rÌs @@@@rÚ BoolEncoderrÐpsxû€ð€*Ø€)Ùܘ¤{×'LÑ'LÓM€IÜ&Ð÷ð ÐÙܘ¤{×'BÑ'BÓC€I÷ð Ð䘤{×'BÑ'BÓC€I÷ð Ðrc󄇇‡—t|tj«ŠtŠtŠ|rJ‚|r ˆˆˆfd„}|Sˆˆˆfd„}|S)z&Returns an encoder for a string field.cóv•—|D]3}|jd«}|‰«‰|‰|«|«||«Œ5yrLrR)r~rr™r)ÚencodedrœrPÚtags €€€rr z*StringEncoder..EncodeRepeatedField�s:ø€Ûˆ'Ø—.‘. Ó)ˆÙ ˆcŒ Ù˜5¡)¨GÓ"4°mÔDÙ ˆg�ñ rcóf•—|jd«}|‰«‰|‰|«|«||«SrLrR)r~rr™rÓrœrPrÔs €€€rr¢z"StringEncoder..EncodeField¥s3ø€Ø— ‘ ˜WÓ%€gÙ ˆC„jÙ˜¡ ¨'Ó 2°MÔBÙ �7‹^Ðr©r•rr¤r�r1©r"r6r7r r¢rœrPrÔs @@@rÚ StringEncoderrØ•sGú€ô �œ{×DÑDÓE€#Ü$ÐÜ€)٠ЈÙöð Ðöð Ðrc󄇇‡—t|tj«ŠtŠtŠ|rJ‚|r ˆˆˆfd„}|Sˆˆˆfd„}|S)z%Returns an encoder for a bytes field.cóT•—|D]"}|‰«‰|‰|«|«||«Œ$yr/r)r~rr™r)rœrPrÔs €€€rr z)BytesEncoder..EncodeRepeatedFieldµs,ø€Ûˆ'Ù ˆcŒ Ù˜5¡)¨GÓ"4°mÔDÙ ˆg�ñrcóD•—|‰«‰|‰|«|«||«Sr/r)r~rr™rœrPrÔs €€€rr¢z!BytesEncoder..EncodeField¼s%ø€Ù ˆC„jÙ˜¡ ¨%Ó 0°-Ô@Ù �5‹\ÐrrÖr×s @@@rÚ BytesEncoderrÜ­sGú€ô �œ{×DÑDÓE€#Ü$ÐÜ€)٠ЈÙöð Ðöð Ðrc󚇇—t|tj«Št|tj«Š|rJ‚|rˆˆfd„}|Sˆˆfd„}|S)z%Returns an encoder for a group field.cóX•—|D]$}|‰«|j||«|‰«Œ&yr/©Ú_InternalSerialize)r~rr™r)Úend_tagÚ start_tags €€rr z)GroupEncoder..EncodeRepeatedFieldÊs,ø€Ûˆ'Ù ˆiÔØ×"Ñ" 5¨-Ô8Ù ˆg�ñrcóH•—|‰«|j||«|‰«Sr/rß)r~rr™rárâs €€rr¢z!GroupEncoder..EncodeFieldÑs%ø€Ù ˆIÔØ ×јu mÔ4Ù �7‹^Ðr)r•rÚWIRETYPE_START_GROUPÚWIRETYPE_END_GROUP)r"r6r7r r¢rárâs @@rÚ GroupEncoderræÃsNù€ô�|¤[×%EÑ%EÓF€)Ü �\¤;×#AÑ#AÓ B€'٠ЈÙõð Ðõð Ðrcór‡‡—t|tj«ŠtŠ|rJ‚|rˆˆfd„}|Sˆˆfd„}|S)z'Returns an encoder for a message field.cóx•—|D]4}|‰«‰||j«|«|j||«Œ6yr/©r_rà)r~rr™r)rœrÔs €€rr z+MessageEncoder..EncodeRepeatedFieldßs9ø€Ûˆ'Ù ˆcŒ Ù˜5 '×"2Ñ"2Ó"4°mÔDØ×"Ñ" 5¨-Õ8ñrcóh•—|‰«‰||j«|«|j||«Sr/ré)r~rr™rœrÔs €€rr¢z#MessageEncoder..EncodeFieldæs0ø€Ù ˆC„jÙ˜ §¡Ó 0°-Ô@Ø × %Ñ % e¨]Ó ;Ð;rr£)r"r6r7r r¢rœrÔs @@rÚMessageEncoderrëØsBù€ô �œ{×DÑDÓE€#Ü$Ð٠ЈÙõ9ð Ðõ<ð Ðrc ó&‡‡‡—djtdtj«tdtj«t |«tdtj «g«Štdtj«ŠtŠˆˆˆfd„}|S)zäEncoder for extensions of MessageSet. The message set message looks like this: message MessageSet { repeated group Item = 1 { required int32 type_id = 2; required string message = 3; } } rrrr cóx•—|‰«‰||j«|«|j||«|‰«Sr/ré)r~rr™Ú end_bytesrœÚ start_bytess €€€rr¢z*MessageSetItemEncoder..EncodeFields9ø€Ù ˆ+ÔÙ�u˜eŸn™nÓ.° Ô>Ø ×јU MÔ2Ù �Ó Ðr) r�r•rrärÏr‘r¤rår�)r"r¢rîrœrïs @@@rÚMessageSetItemEncoderrðñswú€ð—‘܈q”+×2Ñ2Ó3܈q”+×-Ñ-Ó.Ü�<Ó Üˆq”+×7Ñ7Ó8ð :ó;€+ô �qœ+×8Ñ8Ó9€)Ü$Ðöð Ðrcó\‡‡—|jŠt|jdd«Šˆˆfd„}|S)zÅEncoder for extensions of MessageSet. Maps always have a wire format like this: message MapEntry { key_type key = 1; value_type value = 2; } repeated MapEntry map = N; FcóŽ•—|rt|j««n|}|D]"}‰j|||¬«}‰|||«Œ$y)Nrm)ÚsortedÚkeysro)r~rr™Ú value_keysrnrrÚencode_messagerus €€rr¢zMapEncoder..EncodeField sFø€Ù)6”˜Ÿ ™ › Ô%¸E€JÛˆØ×.Ñ.°3¸eÀC¹jÐ.ÓI€iÙ�U˜I }Õ5ñr)rurërv)rwr¢rörus @@rÚ MapEncoderr÷s2ù€ð"×.Ñ.€,Ü!Ð"2×"9Ñ"9¸5À%ÓH€.õ6ð Ðr)CÚ__doc__Ú __author__r„Úgoogle.protobuf.internalrrºr»rrr#r9r@rIÚ Int32SizerÚ Int64SizerÚ EnumSizerÚ UInt32SizerÚ UInt64SizerÚ ZigZagEncodeÚ SInt32SizerÚ SInt64SizerÚ Fixed32SizerÚ SFixed32SizerÚ FloatSizerÚ Fixed64SizerÚ SFixed64SizerÚ DoubleSizerÚ BoolSizerrVr[rbrfrjrxr‡r‹r�Ú_EncodeSignedVarintr‘r•r¦r¬r¶rÆrÏÚ Int32EncoderÚ Int64EncoderÚ EnumEncoderÚ UInt32EncoderÚ UInt64EncoderÚ SInt32EncoderÚ SInt64EncoderÚWIRETYPE_FIXED32ÚFixed32EncoderÚWIRETYPE_FIXED64ÚFixed64EncoderÚSFixed32EncoderÚSFixed64EncoderÚ FloatEncoderÚ DoubleEncoderrÐrØrÜrærërðr÷rrrÚrsðñ"ðH0€ ã å0ð €Ø ˆ9€ò  ò  ò;òò:ò:ñB'3Ð3DÓ&EÐE€ ÐEˆZ˜)á(¨Ó5Ð5€ ˆká*Ø�{×/Ñ/ó1ð1€ ˆkñ.9¸«^Ð;€ Ð;ˆ}˜zÙ-8¸«^Ð;€ Ð;ˆ}˜{á ˜‹N€ òò,ò,ò$ò2ò4ò:ò"ñ(Ó € Ù*Ó,ÐòòKò&òRòD#òLJñd-;Ø×ÑÐ!4Ð6Gó-IðI€ ðIˆ|˜kñ!/Ø×Ñ ° ó!=ð=€ � ñ!1Ø×Ñ ° Ø×Ñó!ð€ � ñ% [×%AÑ%AÀ4ÓH€Ù$ [×%AÑ%AÀ4ÓH€Ù$ [×%AÑ%AÀ4ÓH€Ù$ [×%AÑ%AÀ4ÓH€Ù'¨ ×(DÑ(DÀdÓK€ Ù'¨ ×(DÑ(DÀdÓK€ ò"òJò0ò,ò*ò2ó@r