???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ó
÷hc           @   s­  d  Z  d Z d d l Z d d l Z e j r6 e Z n  d d l m Z d d l m	 Z	 d d l m
 Z
 d d l m Z d d l m Z e j Z d	   Z d
   Z d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ i e   e j 6e   e j 6e   e j 6e   e j 6e d e j   e j! 6e d e j   e j" 6e e# e$ e j%  e j& 6e d e'  e j( 6Z) i e j* e j+ 6e j, e j- 6e j. e j/ 6e j0 e j1 6e j2 e j3 6e j4 e j5 6e j6 e j7 6e j8 e j9 6e j: e j; 6e j< e j= 6e j> e j? 6e j@ e jA 6e jB e jC 6e jD e jE 6e jF e jG 6e jH e jI 6e jJ e jK 6e jL e jM 6ZN i e
 jO e j+ 6e
 jP e j- 6e
 jQ e j/ 6e
 jR e j1 6e
 jS e j3 6e
 jT e j5 6e
 jU e j7 6e
 jV e j9 6e
 jW e j; 6e
 jX e j= 6e
 jY e j? 6e
 jZ e jA 6e
 j[ e jC 6e
 j\ e jE 6e
 j] e jG 6e
 j^ e jI 6e
 j_ e jK 6e
 j` e jM 6Za i e
 jb e j+ 6e
 jc e j- 6e
 jd e j/ 6e
 je e j1 6e
 jf e j3 6e
 jg e j5 6e
 jh e j7 6e
 ji e j9 6e
 jj e j; 6e
 jk e j= 6e
 jl e j? 6e
 jm e jA 6e
 jn e jC 6e
 jo e jE 6e
 jp e jG 6e
 jq e jI 6e
 jr e jK 6e
 js e jM 6Zt i e	 ju e j+ 6e	 jv e j- 6e	 jw e j/ 6e	 jx e j1 6e	 jy e j3 6e	 jz e j5 6e	 j{ e j7 6e	 j| e j9 6e	 j} e j; 6e	 j~ e j= 6e	 j e j? 6e	 j e jA 6e	 j e jC 6e	 j e jE 6e	 j e jG 6e	 j e jI 6e	 j e jK 6e	 j e jM 6Z i e j e j+ 6e j e j- 6e j e j/ 6e j e j1 6e j e j3 6e j e j5 6e j e j7 6e j e j9 6e j e j; 6e j e j= 6e j e j? 6e j e jA 6e j e jC 6e j e jE 6e j e jG 6e j e jI 6e j e jK 6e j e jM 6Z d S(   s  Provides type checking routines.

This module defines type checking utilities in the forms of dictionaries:

VALUE_CHECKERS: A dictionary of field types and a value validation object.
TYPE_TO_BYTE_SIZE_FN: A dictionary with field types and a size computing
  function.
TYPE_TO_SERIALIZE_METHOD: A dictionary with field types and serialization
  function.
FIELD_TYPE_TO_WIRE_TYPE: A dictionary with field typed and their
  coresponding wire types.
TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization
  function.
s#   robinson@google.com (Will Robinson)i’’’’N(   t   api_implementation(   t   decoder(   t   encoder(   t   wire_format(   t
   descriptorc         C   s   |  j  j d k S(   Nt   proto3(   t   containing_typet   syntax(   t   field_descriptor(    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt   SupportsOpenEnums>   s    c         C   so   |  j  t j k r+ |  j t j k r+ t   S|  j  t j k rd t |   rT t t j	 St
 |  j  Sn  t |  j  S(   s
  Returns a type checker for a message field of the specified types.

  Args:
    field: FieldDescriptor object for this field.

  Returns:
    An instance of TypeChecker which can be used to verify the types
    of values assigned to a field of the specified type.
  (   t   cpp_typet   _FieldDescriptort   CPPTYPE_STRINGt   typet   TYPE_STRINGt   UnicodeValueCheckert   CPPTYPE_ENUMR	   t   _VALUE_CHECKERSt   CPPTYPE_INT32t   EnumValueCheckert	   enum_type(   t   field(    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt   GetTypeCheckerA   s    
t   TypeCheckerc           B   s    e  Z d  Z d   Z d   Z RS(   s   Type checker used to catch type errors as early as possible
  when the client is setting scalar fields in protocol messages.
  c         G   s   | |  _  d  S(   N(   t   _acceptable_types(   t   selft   acceptable_types(    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt   __init__b   s    c         C   sA   t  | |  j  s= d | t |  |  j f } t |   n  | S(   su   Type check the provided value and return it.

    The returned value might have been normalized to another type.
    s,   %.1024r has type %s, but expected one of: %s(   t
   isinstanceR   R   t	   TypeError(   R   t   proposed_valuet   message(    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt
   CheckValuee   s
    (   t   __name__t
   __module__t   __doc__R   R    (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR   \   s   	t   TypeCheckerWithDefaultc           B   s   e  Z d    Z d   Z RS(   c         G   s   t  j |  |  | |  _ d  S(   N(   R   R   t   _default_value(   R   t   default_valueR   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR   s   s    c         C   s   |  j  S(   N(   R%   (   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt   DefaultValuew   s    (   R!   R"   R   R'   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR$   q   s   	t   IntValueCheckerc           B   s    e  Z d  Z d   Z d   Z RS(   sF   Checker used for integer fields.  Performs type-check and range check.c         C   s   t  | t j  s= d | t |  t j f } t |   n  |  j t |  k o` |  j	 k n sx t
 d |   n  |  j |  } | S(   Ns,   %.1024r has type %s, but expected one of: %ss   Value out of range: %d(   R   t   numberst   IntegralR   t   sixt   integer_typesR   t   _MINt   intt   _MAXt
   ValueErrort   _TYPE(   R   R   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR       s    (c         C   s   d S(   Ni    (    (   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'      s    (   R!   R"   R#   R    R'   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR(   }   s   	R   c           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   sC   Checker used for enum fields.  Performs type-check and range check.c         C   s   | |  _  d  S(   N(   t
   _enum_type(   R   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR      s    c         C   sl   t  | t j  s= d | t |  t j f } t |   n  t |  |  j j	 k rh t
 d |   n  | S(   Ns,   %.1024r has type %s, but expected one of: %ss   Unknown enum value: %d(   R   R)   R*   R   R+   R,   R   R.   R2   t   values_by_numberR0   (   R   R   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR       s    c         C   s   |  j  j d j S(   Ni    (   R2   t   valuest   number(   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'   ¢   s    (   R!   R"   R#   R   R    R'   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR      s   			R   c           B   s    e  Z d  Z d   Z d   Z RS(   sg   Checker used for string fields.

  Always returns a unicode value, even if the input is of type str.
  c         C   s   t  | t t j f  sI d | t |  t t j f f } t |   n  t  | t  r y | j d  } Wq t k
 r t d |   q Xn  | S(   Ns,   %.1024r has type %s, but expected one of: %ss   utf-8s   %.1024r has type bytes, but isn't valid UTF-8 encoding. Non-UTF-8 strings must be converted to unicode objects before being added.(	   R   t   bytesR+   t	   text_typeR   R   t   decodet   UnicodeDecodeErrorR0   (   R   R   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR    ­   s    c         C   s   d S(   Nu    (    (   R   (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'   ¾   s    (   R!   R"   R#   R    R'   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR   ¦   s   	t   Int32ValueCheckerc           B   s   e  Z d  Z d Z e Z RS(   i   i’’’(   R!   R"   R-   R/   R.   R1   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR:   Ā   s   t   Uint32ValueCheckerc           B   s   e  Z d  Z d Z e Z RS(   i    i   i    l        l   ’’ (   R!   R"   R-   R/   R.   R1   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR;   Ź   s   t   Int64ValueCheckerc           B   s   e  Z d Z d Z e Z RS(   i   i?   l            lū’’’         l            l   ’’’’ (   R!   R"   R-   R/   t   longR1   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR<   Š   s   t   Uint64ValueCheckerc           B   s   e  Z d  Z d Z e Z RS(   i    i   i@   l            l   ’’’’ (   R!   R"   R-   R/   R=   R1   (    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR>   Ö   s   g        t    (   R#   t
   __author__R)   R+   t   PY3R.   R=   t   google.protobuf.internalR    R   R   R   t   google.protobufR   t   FieldDescriptorR   R	   R   t   objectR   R$   R(   R   R   R:   R;   R<   R>   R   t   CPPTYPE_INT64t   CPPTYPE_UINT32t   CPPTYPE_UINT64t   Realt   CPPTYPE_DOUBLEt   CPPTYPE_FLOATt   Falset   boolR*   t   CPPTYPE_BOOLR6   R   R   t   DoubleByteSizet   TYPE_DOUBLEt   FloatByteSizet
   TYPE_FLOATt   Int64ByteSizet
   TYPE_INT64t   UInt64ByteSizet   TYPE_UINT64t   Int32ByteSizet
   TYPE_INT32t   Fixed64ByteSizet   TYPE_FIXED64t   Fixed32ByteSizet   TYPE_FIXED32t   BoolByteSizet	   TYPE_BOOLt   StringByteSizeR   t   GroupByteSizet
   TYPE_GROUPt   MessageByteSizet   TYPE_MESSAGEt   BytesByteSizet
   TYPE_BYTESt   UInt32ByteSizet   TYPE_UINT32t   EnumByteSizet	   TYPE_ENUMt   SFixed32ByteSizet   TYPE_SFIXED32t   SFixed64ByteSizet   TYPE_SFIXED64t   SInt32ByteSizet   TYPE_SINT32t   SInt64ByteSizet   TYPE_SINT64t   TYPE_TO_BYTE_SIZE_FNt   DoubleEncodert   FloatEncodert   Int64Encodert   UInt64Encodert   Int32Encodert   Fixed64Encodert   Fixed32Encodert   BoolEncodert   StringEncodert   GroupEncodert   MessageEncodert   BytesEncodert   UInt32Encodert   EnumEncodert   SFixed32Encodert   SFixed64Encodert   SInt32Encodert   SInt64Encodert   TYPE_TO_ENCODERt   DoubleSizert
   FloatSizert
   Int64Sizert   UInt64Sizert
   Int32Sizert   Fixed64Sizert   Fixed32Sizert	   BoolSizert   StringSizert
   GroupSizert   MessageSizert
   BytesSizert   UInt32Sizert	   EnumSizert   SFixed32Sizert   SFixed64Sizert   SInt32Sizert   SInt64Sizert   TYPE_TO_SIZERt   DoubleDecodert   FloatDecodert   Int64Decodert   UInt64Decodert   Int32Decodert   Fixed64Decodert   Fixed32Decodert   BoolDecodert   StringDecodert   GroupDecodert   MessageDecodert   BytesDecodert   UInt32Decodert   EnumDecodert   SFixed32Decodert   SFixed64Decodert   SInt32Decodert   SInt64Decodert   TYPE_TO_DECODERt   WIRETYPE_FIXED64t   WIRETYPE_FIXED32t   WIRETYPE_VARINTt   WIRETYPE_LENGTH_DELIMITEDt   WIRETYPE_START_GROUPt   FIELD_TYPE_TO_WIRE_TYPE(    (    (    sJ   /usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt   <module>,   s  					