Files
ServerSync/lib/nacl/__pycache__/public.cpython-314.pyc

212 lines
21 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
u<10>i<EFBFBD>9<00><00>J<00>^RIHtHtHtHtHt^RIt^RIHt^RIH t
^RI H t ^RI HtHtHt!RR]P"]4t!R R
]P"]4t]!R R R 7t!RR ]P"]4t]!R]]4t!RR]],]P"]4tR#)<12>)<05>ClassVar<61>Generic<69>Optional<61>Type<70>TypeVarN)<01>encoding)<01>
exceptions)<01>Encoder)<03>EncryptedMessage<67> StringFixer<65>randomc<00><>a<00>]tRt^toRt]P Pt] P3V3RlRllt V3RlRlt V3RlRlt V3RlR ltV3R
lR ltV3R ltR tVtR#)<0F> PublicKeya%
The public key counterpart to an Curve25519 :class:`nacl.public.PrivateKey`
for encrypting messages.
:param public_key: [:class:`bytes`] Encoded Curve25519 public key
:param encoder: A class that is able to decode the `public_key`
:cvar SIZE: The size that the public key is required to be
c<00>:<<01>V^8<>dQhRS[RS[P/#)<03><00>
public_key<EFBFBD>encoder<65><03>bytesrr
)<02>format<61> __classdict__s"<22><>2/tmp/pip-target-zhdecbcm/lib/python/nacl/public.py<70> __annotate__<5F>PublicKey.__annotate__$s%<00><><00><0E><0E><19><0E><1A>!<21>!<21><0E>c<08>D<00>VPV4Vn\VP\4'g\P
!R4h\ VP4VP8wd0\P!RPVP44hR#)z'PublicKey must be created from 32 bytesz,The public key must be exactly {} bytes longN)
<EFBFBD>decode<64> _public_key<65>
isinstancer<00>exc<78> TypeError<6F>len<65>SIZE<5A>
ValueErrorr)<03>selfrrs&&&r<00>__init__<5F>PublicKey.__init__$sz<00><00>
#<23>><3E>><3E>*<2A>5<><04><18><19>$<24>*<2A>*<2A>E<EFBFBD>2<>2<><15>-<2D>-<2D> I<>J<> J<> <0E>t<EFBFBD><1F><1F> <20>D<EFBFBD>I<EFBFBD>I<EFBFBD> -<2D><15>.<2E>.<2E>><3E>E<>E<><18>I<EFBFBD>I<EFBFBD><12><0E> <0E> .rc<00> <<01>V^8<>dQhRS[/#<00>r<00>return<72>r)rrs"<22>rrr4<00><00><><00> <20> <20>5<EFBFBD> rc<08><00>VP#<00>N<>r<00>r%s&r<00> __bytes__<5F>PublicKey.__bytes__4<00><00><00><13><1F><1F>rc<00> <<01>V^8<>dQhRS[/#r)<00><01>int)rrs"<22>rrr7s<00><><00>!<21>!<21>#<23>!rc<08>*<00>\\V44#r.)<02>hashrr0s&r<00>__hash__<5F>PublicKey.__hash__7s<00><00><13>E<EFBFBD>$<24>K<EFBFBD> <20> rc<00>&<<01>V^8<>dQhRS[RS[/#<00>r<00>otherr*<00><02>object<63>bool)rrs"<22>rrr:s<00><><00>F<01>F<01>F<EFBFBD>F<01>t<EFBFBD>Frc<08><><00>\WP4'gR#\PP \ V4\ V44#<00>F)r<00> __class__<5F>nacl<63>bindings<67> sodium_memcmpr<00>r%r=s&&r<00>__eq__<5F>PublicKey.__eq__:s3<00><00><19>%<25><1E><1E>0<>0<><18><13>}<7D>}<7D>*<2A>*<2A>5<EFBFBD><14>;<3B><05>e<EFBFBD> <0C>E<>Erc<00>&<<01>V^8<>dQhRS[RS[/#r<r>)rrs"<22>rrr?<00><00><><00>#<23>#<23>F<EFBFBD>#<23>t<EFBFBD>#rc<08> <00>W8X*#r.<00>rGs&&r<00>__ne__<5F>PublicKey.__ne__?<00> <00><00><18>"<22>"rc<00>6<<01>V^8<>dQh/S[S[,;R&#)rr#<00>rr6)rrs"<22>rrrs<00><><00><00> <13>3<EFBFBD>-<2D>A<>rr/N)<13>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__rDrE<00>crypto_box_PUBLICKEYBYTESr#r<00>
RawEncoderr&r1r9rHrN<00>__annotate_func__<5F>__static_attributes__<5F>__classdictcell__<5F>rs@rrrsb<00><><00><00><08><1F>-<2D>-<2D>A<>A<>D<EFBFBD>
%-<2D>$7<>$7<><0E><0E>  <20> <20>!<21>!<21>F<01>F<01>
#<23>#<23>Q<01>rrc<00>Na<00>]tRt^CtoRt]P Pt]P Pt
] P3V3RlRllt ]] P3V3RlRll4tV3RlRltV3RlR ltV3R
lR ltV3R lR lt]V3RlRl4tV3RltRtVtR#)<13>
PrivateKeyaO
Private key for decrypting messages using the Curve25519 algorithm.
.. warning:: This **must** be protected and remain secret. Anyone who
knows the value of your :class:`~nacl.public.PrivateKey` can decrypt
any message encrypted by the corresponding
:class:`~nacl.public.PublicKey`
:param private_key: The private key used to decrypt messages
:param encoder: The encoder class used to decode the given keys
:cvar SIZE: The size that the private key is required to be
:cvar SEED_SIZE: The size that the seed used to generate the
private key is required to be
c<00>:<<01>V^8<>dQhRS[RS[P/#)r<00> private_keyrr)rrs"<22>rr<00>PrivateKey.__annotate__Ws%<00><><00>4<>4<><1A>4<><1A>!<21>!<21>4rc<08>P<00>VPV4p\V\4'd\V4VP8Xg0\
P !RPVP44h\PPV4pWn \V4Vn R#)z>PrivateKey must be created from a {} bytes long raw secret keyN)rrrr"r#r r!rrDrE<00>crypto_scalarmult_base<73> _private_keyrr)r%rar<00>raw_public_keys&&& rr&<00>PrivateKey.__init__Ws{<00><00> <1E>n<EFBFBD>n<EFBFBD>[<5B>1<> <0B> <17>{<7B>E<EFBFBD> *<2A> *<2A>s<EFBFBD>;<3B>/?<3F>4<EFBFBD>9<EFBFBD>9<EFBFBD>/L<><15>-<2D>-<2D>T<><18>&<26><14><19><19>#<23><0E> <0E> <1E><1D><1D>=<3D>=<3D>k<EFBFBD>J<><0E>'<27><19>#<23>N<EFBFBD>3<><04>rc<00>><<01>V^8<>dQhRS[RS[PRR/#)r<00>seedrr*r_r)rrs"<22>rrrbns/<00><><00> <1B> <1B><13> <1B><1A>!<21>!<21> <1B>
<16> rc <0C>4<00>VPV4p\V\4'd\V4VP8Xg0\
P !RPVP44h\PPV4wr4V!V4#)a
Generate a PrivateKey using a deterministic construction
starting from a caller-provided seed
.. warning:: The seed **must** be high-entropy; therefore,
its generator **must** be a cryptographic quality
random function like, for example, :func:`~nacl.utils.random`.
.. warning:: The seed **must** be protected and remain secret.
Anyone who knows the seed is really in possession of
the corresponding PrivateKey.
:param seed: The seed used to generate the private key
:rtype: :class:`~nacl.public.PrivateKey`
z7PrivateKey seed must be a {} bytes long binary sequence) rrrr"<00> SEED_SIZEr r!rrDrE<00>crypto_box_seed_keypair)<05>clsrir<00>raw_pk<70>raw_sks&&& r<00> from_seed<65>PrivateKey.from_seedmsr<00><00>,<17>~<7E>~<7E>d<EFBFBD>#<23><04><1A>4<EFBFBD><15>'<27>'<27>C<EFBFBD><04>I<EFBFBD><13><1D><1D>,F<><15>-<2D>-<2D>M<><18>&<26><13><1D><1D>'<27><0E> <0E> <1E><1D><1D>><3E>><3E>t<EFBFBD>D<><0E><06><12>6<EFBFBD>{<7B>rc<00> <<01>V^8<>dQhRS[/#r)r+)rrs"<22>rrrb<00>s<00><><00>!<21>!<21>5<EFBFBD>!rc<08><00>VP#r.)rer0s&rr1<00>PrivateKey.__bytes__<5F>s<00><00><13> <20> <20> rc<00> <<01>V^8<>dQhRS[/#r)r5)rrs"<22>rrrb<00>s<00><><00>:<3A>:<3A>#<23>:rc<08>T<00>\\V4\VP434#r.)r8<00>typerrr0s&rr9<00>PrivateKey.__hash__<5F>s<00><00><13>T<EFBFBD>$<24>Z<EFBFBD><15>t<EFBFBD><EFBFBD><EFBFBD>!7<>8<>9<>9rc<00>&<<01>V^8<>dQhRS[RS[/#r<r>)rrs"<22>rrrb<00>s<00><><00>3<>3<>F<EFBFBD>3<>t<EFBFBD>3rc<08>n<00>\WP4'gR#VPVP8H#rB)rrCrrGs&&rrH<00>PrivateKey.__eq__<5F>s)<00><00><19>%<25><1E><1E>0<>0<><18><13><EFBFBD><EFBFBD>%<25>"2<>"2<>2<>2rc<00>&<<01>V^8<>dQhRS[RS[/#r<r>)rrs"<22>rrrb<00>rKrc<08> <00>W8X*#r.rMrGs&&rrN<00>PrivateKey.__ne__<5F>rPrc<00><<01>V^8<>dQhRR/#)rr*r_rM)rrs"<22>rrrb<00>s<00><><00>I<01>I<01><1C>Irc <0C>`<00>V!\\P4\PR7#)zf
Generates a random :class:`~nacl.public.PrivateKey` object
:rtype: :class:`~nacl.public.PrivateKey`
<EFBFBD>r)r r_r#rrY)rms&r<00>generate<74>PrivateKey.generate<74>s <00><00><13>6<EFBFBD>*<2A>/<2F>/<2F>*<2A>H<EFBFBD>4G<34>4G<34>H<>Hrc<00>R<<01>V^8<>dQh/S[S[,;R&S[S[,;R&#)rr#rkrR)rrs"<22>rrrbCs'<00><><00><00>" <13>3<EFBFBD>-<2D>A<>#<01>$<18><03>}<7D>A<>%r)rerN)rSrTrUrVrWrDrE<00>crypto_box_SECRETKEYBYTESr#<00>crypto_box_SEEDBYTESrkrrYr&<00> classmethodrpr1r9rHrNr<>rZr[r\r]s@rr_r_Cs<><00><><00><00><08> <1F>-<2D>-<2D>A<>A<>D<EFBFBD>#<23>}<7D>}<7D>A<>A<>I<EFBFBD>
%-<2D>$7<>$7<>4<>4<>,<11>%-<2D>$7<>$7<> <1B> <1B><11> <1B>D!<21>!<21>:<3A>:<3A>3<>3<>
#<23>#<23><11>I<01><11>I<01>y<01>rr_<00>_Box<6F>Box)<01>boundc<00>$a<00>]tRt^<5E>toRt]P PtV3RlRlt V3RlRlt
] ] P3V3RlRll4tR] P3V3R lR
lltR] P3V3R lR lltV3R lRltV3RltRtVtR#)r<>a<>
The Box class boxes and unboxes messages between a pair of keys
The ciphertexts generated by :class:`~nacl.public.Box` include a 16
byte authenticator which is checked as part of the decryption. An invalid
authenticator will cause the decrypt function to raise an exception. The
authenticator is not a signature. Once you've decrypted the message you've
demonstrated the ability to create arbitrary valid message, so messages you
send are repudiable. For non-repudiable messages, sign them after
encryption.
:param private_key: :class:`~nacl.public.PrivateKey` used to encrypt and
decrypt messages
:param public_key: :class:`~nacl.public.PublicKey` used to encrypt and
decrypt messages
:cvar NONCE_SIZE: The size that the nonce is required to be.
c<00>&<<01>V^8<>dQhRS[RS[/#)rrar)r_r)rrs"<22>rr<00>Box.__annotate__<5F>s<00><><00>

<EFBFBD>

<EFBFBD>J<EFBFBD>

<EFBFBD>I<EFBFBD>

rc<08>L<00>\V\4'd\V\4'g\P!R4h\
P PVP\PR7VP\PR74Vn R#)z5Box must be created from a PrivateKey and a PublicKeyr<79>N) rr_rr r!rDrE<00>crypto_box_beforenm<6E>encoderrY<00> _shared_key)r%rars&&&rr&<00> Box.__init__<5F>s}<00><00><19>+<2B>z<EFBFBD>2<>2<>*<2A> <16> <09>;
<EFBFBD>;
<EFBFBD><16>-<2D>-<2D>G<><0E> <0E> <20>=<3D>=<3D><<3C><<3C> <16> <1D> <1D>h<EFBFBD>&9<>&9<> <1D> :<3A> <17> <1E> <1E>x<EFBFBD>':<3A>':<3A> <1E> ;<3B>
<EFBFBD><04>rc<00> <<01>V^8<>dQhRS[/#r)r+)rrs"<22>rrr<><00>r,rc<08><00>VP#r.<00>r<>r0s&rr1<00> Box.__bytes__<5F>r3rc<00>B<<01>V^8<>dQhRS[S[,RS[RS[RS[/#)rrm<00>encodedrr*)rr<>rr
)rrs"<22>rrr<><00>s1<00><><00> <13> <13> <11>$<24>Z<EFBFBD> <13>"'<27> <13>29<32> <13> <0A> rc <0C>T<00>VPV4pVPV4VnV#)zK
Alternative constructor. Creates a Box from an existing Box's shared key.
)<03>__new__rr<>)rmr<>r<00>boxs&&& rr<00>
Box.decode<64>s)<00><00><18>K<EFBFBD>K<EFBFBD><03>$<24><03>"<22>.<2E>.<2E><17>1<><03><0F><12>
rNc<00>V<<01>V^8<>dQhRS[RS[S[,RS[PRS[/#)r<00> plaintext<78>noncerr*)rrrr
r )rrs"<22>rrr<><00>s=<00><><00>)
<EFBFBD>)
<EFBFBD><18>)
<EFBFBD><18><05><EFBFBD>)
<EFBFBD><1A>!<21>!<21> )
<EFBFBD>
<1A> )
rc <0C><><00>Vf\VP4p\V4VP8wd(\P!RVP,4h\
P PVVVP4pVPV4pVPV4p\P!VVVPW$,44#)aW
Encrypts the plaintext message using the given `nonce` (or generates
one randomly if omitted) and returns the ciphertext encoded with the
encoder.
.. warning:: It is **VITALLY** important that the nonce is a nonce,
i.e. it is a number used only once for any given key. If you fail
to do this, you compromise the privacy of the messages encrypted.
:param plaintext: [:class:`bytes`] The plaintext message to encrypt
:param nonce: [:class:`bytes`] The nonce to use in the encryption
:param encoder: The encoder to use to encode the ciphertext
:rtype: [:class:`nacl.utils.EncryptedMessage`]
<EFBFBD>'The nonce must be exactly %s bytes long) r <00>
NONCE_SIZEr"r r$rDrE<00>crypto_box_easy_afternmr<6D>r<>r <00> _from_parts)r%r<>r<>r<00>
ciphertext<EFBFBD> encoded_nonce<63>encoded_ciphertexts&&&& r<00>encrypt<70> Box.encrypt<70>s<><00><00>( <11>=<3D><1A>4<EFBFBD>?<3F>?<3F>+<2B>E<EFBFBD> <0E>u<EFBFBD>:<3A><14><1F><1F> (<28><15>.<2E>.<2E>9<>D<EFBFBD>O<EFBFBD>O<EFBFBD>K<><0E> <0E><1A>]<5D>]<5D>:<3A>:<3A> <15> <11> <10> <1C> <1C>
<EFBFBD>
<EFBFBD>  <20><0E><0E>u<EFBFBD>-<2D> <0A>$<24>^<5E>^<5E>J<EFBFBD>7<><1A><1F>+<2B>+<2B> <19> <1E> <13>N<EFBFBD>N<EFBFBD>5<EFBFBD>-<2D> .<2E>
<EFBFBD>
rc<00>V<<01>V^8<>dQhRS[RS[S[,RS[PRS[/#)rr<>r<>rr*)rrrr
)rrs"<22>rrr<> s=<00><><00>$<19>$<19><19>$<19><18><05><EFBFBD>$<19><1A>!<21>!<21> $<19>
<0F> $rc <0C>B<00>VPV4pVfVRVPpWPRp\V4VP8wd(\P!RVP,4h\
P PVVVP4pV#)a<>
Decrypts the ciphertext using the `nonce` (explicitly, when passed as a
parameter or implicitly, when omitted, as part of the ciphertext) and
returns the plaintext message.
:param ciphertext: [:class:`bytes`] The encrypted message to decrypt
:param nonce: [:class:`bytes`] The nonce used when encrypting the
ciphertext
:param encoder: The encoder used to decode the ciphertext.
:rtype: [:class:`bytes`]
Nr<EFBFBD>) rr<>r"r r$rDrE<00>crypto_box_open_easy_afternmr<6D>)r%r<>r<>rr<>s&&&& r<00>decrypt<70> Box.decrypt s<><00><00>$<1D>^<5E>^<5E>J<EFBFBD>/<2F>
<EFBFBD> <10>=<3D><1E>0<><14><1F><1F>1<>E<EFBFBD>#<23>O<EFBFBD>O<EFBFBD>$5<>6<>J<EFBFBD> <0E>u<EFBFBD>:<3A><14><1F><1F> (<28><15>.<2E>.<2E>9<>D<EFBFBD>O<EFBFBD>O<EFBFBD>K<><0E> <0E><19>M<EFBFBD>M<EFBFBD>><3E>><3E> <16> <11> <10> <1C> <1C>
<EFBFBD> <09> <19>rc<00> <<01>V^8<>dQhRS[/#r)r+)rrs"<22>rrr<>1s<00><><00>  <20>  <20>E<EFBFBD>  rc <0C><00>VP#)ag
Returns the Curve25519 shared secret, that can then be used as a key in
other symmetric ciphers.
.. warning:: It is **VITALLY** important that you use a nonce with your
symmetric cipher. If you fail to do this, you compromise the
privacy of the messages encrypted. Ensure that the key length of
your cipher is 32 bytes.
:rtype: [:class:`bytes`]
r<EFBFBD>r0s&r<00>
shared_key<EFBFBD>Box.shared_key1s<00><00><14><1F><1F>rc<00>B<<01>V^8<>dQh/S[S[,;R&S[;R&#)rr<>r<>)rr6r)rrs"<22>rrr<><00>s#<00><><00><00>(<19><13> <0A>C<>)<01>*<17><16>+rr<>)rSrTrUrVrWrDrE<00>crypto_box_NONCEBYTESr<53>r&r1r<>rrYrr<>r<>r<>rZr[r\r]s@rr<>r<><00>s<><00><><00><00><08>&!%<25> <0A> <0A> C<> C<>J<EFBFBD>

<EFBFBD>

<EFBFBD> <20> <20><11><D<><O<><O<> <13> <13><11> <13>""&<26>$,<2C>$7<>$7<> )
<EFBFBD>)
<EFBFBD>\"&<26>$,<2C>$7<>$7<> $<19>$<19>L  <20>  <20>M<01>r<00>_Keyc<00><>a<00>]tRtRtoRtV3RlRltV3RlRlt]P3V3RlRllt ]P3V3R lR
llt
V3R lt R t Vt R #)<0E> SealedBoxiCa0
The SealedBox class boxes and unboxes messages addressed to
a specified key-pair by using ephemeral sender's key pairs,
whose private part will be discarded just after encrypting
a single plaintext message.
The ciphertexts generated by :class:`~nacl.public.SecretBox` include
the public part of the ephemeral key before the :class:`~nacl.public.Box`
ciphertext.
:param recipient_key: a :class:`~nacl.public.PublicKey` used to encrypt
messages and derive nonces, or a :class:`~nacl.public.PrivateKey` used
to decrypt messages.
.. versionadded:: 1.2
c<00> <<01>V^8<>dQhRS[/#)r<00> recipient_key)r<>)rrs"<22>rr<00>SealedBox.__annotate__Xs<00><><00><0E><0E>d<EFBFBD>rc<08><><00>\V\4'd/VP\PR7VnRVnR#\V\4'dWVP\PR7VnVPP\PR7VnR#\P!R4h)r<>Nz:SealedBox must be created from a PublicKey or a PrivateKey) rrr<>rrYrrer_rr r!)r%r<>s&&rr&<00>SealedBox.__init__Xs<><00><00> <15>m<EFBFBD>Y<EFBFBD> /<2F> /<2F>,<2C>3<>3<> <20>+<2B>+<2B> 4<> <0E>D<EFBFBD> <1C>!%<25>D<EFBFBD> <1D> <17> <0A>z<EFBFBD> 2<> 2<> -<2D> 4<> 4<> <20>+<2B>+<2B>!5<>!<0E>D<EFBFBD> <1D> -<2D>7<>7<>><3E>><3E> <20>+<2B>+<2B> ?<3F> <0E>D<EFBFBD> <1C><16>-<2D>-<2D>L<><0E> rc<00> <<01>V^8<>dQhRS[/#r)r+)rrs"<22>rrr<>jr,rc<08><00>VP#r.r/r0s&rr1<00>SealedBox.__bytes__jr3rc<00>@<<01>V^8<>dQhRS[RS[PRS[/#)rr<>rr*r)rrs"<22>rrr<>ms/<00><><00>"<22>"<22><18>"<22><1A>!<21>!<21>"<22>
<0F> "rc <0C>z<00>\PPWP4pVP V4pV#)a#
Encrypts the plaintext message using a random-generated ephemeral
key pair and returns a "composed ciphertext", containing both
the public part of the key pair and the ciphertext proper,
encoded with the encoder.
The private part of the ephemeral key-pair will be scrubbed before
returning the ciphertext, therefore, the sender will not be able to
decrypt the generated ciphertext.
:param plaintext: [:class:`bytes`] The plaintext message to encrypt
:param encoder: The encoder to use to encode the ciphertext
:return bytes: encoded ciphertext
)rDrE<00>crypto_box_sealrr<>)r%r<>rr<>r<>s&&& rr<><00>SealedBox.encryptms3<00><00>(<1A>]<5D>]<5D>2<>2<>9<EFBFBD>>N<>>N<>O<>
<EFBFBD>$<24>^<5E>^<5E>J<EFBFBD>7<><1A>!<21>!rc<00>D<<01>V^8<>dQhRRRS[RS[PRS[/#)rr%zSealedBox[PrivateKey]r<>rr*r)rrs"<22>rrr<><00>s7<00><><00><19><19>%<25><19><19><19><1A>!<21>!<21><19>
<0F> rc <0C><><00>VPV4pVPf \R4h\PP VVP VP4pV#)a<>
Decrypts the ciphertext using the ephemeral public key enclosed
in the ciphertext and the SealedBox private key, returning
the plaintext message.
:param ciphertext: [:class:`bytes`] The encrypted message to decrypt
:param encoder: The encoder used to decode the ciphertext.
:return bytes: The original plaintext
:raises TypeError: if this SealedBox was created with a
:class:`~nacl.public.PublicKey` rather than a
:class:`~nacl.public.PrivateKey`.
z4SealedBoxes created with a public key cannot decrypt)rrer!rDrE<00>crypto_box_seal_openr)r%r<>rr<>s&&& rr<><00>SealedBox.decrypt<70>sa<00><00>$<1D>^<5E>^<5E>J<EFBFBD>/<2F>
<EFBFBD> <0F> <1C> <1C> $<24><1B>F<><0E> <0E><19>M<EFBFBD>M<EFBFBD>6<>6<> <16> <10> <1C> <1C> <10> <1D> <1D>
<EFBFBD> <09> <19>rc<00>B<<01>V^8<>dQh/S[;R&S[S[,;R&#)rrre)rr)rrs"<22>rrr<>Cs#<00><><00><00>$<17><16>%<01>&<1B>5<EFBFBD>/<2F>!<21>'r)rerN)rSrTrUrVrWr&r1rrYr<>r<>rZr[r\r]s@rr<>r<>CsP<00><><00><00><08>(<0E><0E>$ <20> <20> %-<2D>$7<>$7<>"<22>"<22>:%-<2D>$7<>$7<><19><19>I<01>rr<>)<18>typingrrrrr<00> nacl.bindingsrDrr r <00> nacl.encodingr
<00>
nacl.utilsr r r <00> Encodablerr_r<>r<>r<>r<>rMrr<00><module>r<>s<><00><01>><3E>=<3D><14><19>"<22>!<21><<3C><<3C>)#<23><08>"<22>"<22>K<EFBFBD>)#<23>XbI<01><18>#<23>#<23>[<5B>bI<01>J<0F>v<EFBFBD>U<EFBFBD>#<23><04>R <20>(<28>
<1C>
<1C>k<EFBFBD>R <20>j<0F>v<EFBFBD>y<EFBFBD>*<2A>-<2D><04>b<19><07><04> <0A>x<EFBFBD>1<>1<>;<3B>br