+
    Tjg                    $   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ R	IHtHtHt ^ R
IHt ^ RIHtH t  ^ RI!H"t" ^ RI#H$t$ ^ RI%H&t&H't'H(t(H)t) ^ RI*H+t+ ^ RI,H-t-H.t.H/t/H0t0 ^ RI1H2t2H3t3 ^ RI4H5t5H6t6 ^ RI7H8t8H9t9 ^ RI:H;t; ^ RI<H=t> . RNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5Nt? ! R6 R#4      t@ ! R7 R*4      tARc.tBR8 tCR9 tDR: tE] ! R; R$] 4      4       tF ! R< R]F4      tG ! R= R]F4      tH ! R> R]H4      tIR? tJR@ tK ! RA RB4      tL ! RC R]L]F4      tM ! RD R]M4      tN ! RE R ]F4      tO ! RF R!]F4      tP ! RG R"]H4      tQ ! RH R%]F4      tR ! RI R&]F4      tS ! RJ R)]F4      tT ! RK R]T4      tU ! RL R1]T4      tV ! RM R(]F4      tW ! RN R']F4      tX ! RO R+]G4      tY ! RP RQ4      tZ ! RR R,]Z]U4      t[ ! RS R-]Z]T4      t\ ! RT R.]Z]V4      t] ! RU R/]H4      t^ ! RV R2]F4      t_ ! RW R3]L]F4      t` ! RX R4]H4      ta ! RY R]F4      tb ! RZ R5]F4      tc ! R[ R\4      td ! R] R^]e4      tf ! R_ R]d]T]fR`7      tg ! Ra R]d]U4      th ! Rb R0]d]V4      tiR# )d    N)	b64decode	b64encode)Iterable)partialmethodtotal_ordering)forms)apps)settings)checks
exceptions
validators)
connectionconnectionsrouter)
LOOKUP_SEP)DeferredAttributeRegisterLookupMixinNotSupportedError)timezone)BlankChoiceIteratorCallableChoiceIteratorflatten_choicesnormalize_choices)DictWrapper)
parse_dateparse_datetimeparse_duration
parse_time)duration_microsecondsduration_string)Promisecached_property)MAX_IPV6_ADDRESS_LENGTHclean_ipv6_address)capfirst)gettext_lazy	AutoFieldBLANK_CHOICE_DASHBigAutoFieldBigIntegerFieldBinaryFieldBooleanField	CharFieldCommaSeparatedIntegerField	DateFieldDateTimeFieldDecimalFieldDurationField
EmailFieldEmptyFieldFilePathField
FloatFieldGenericIPAddressFieldIPAddressFieldIntegerFieldNOT_PROVIDEDNullBooleanFieldPositiveBigIntegerFieldPositiveIntegerFieldPositiveSmallIntegerField	SlugFieldSmallAutoFieldSmallIntegerField	TextField	TimeFieldURLField	UUIDFieldc                       ] tR t^KtRtR# )r5    N__name__
__module____qualname____firstlineno____static_attributes__rI       U/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/models/fields/__init__.pyr5   r5   K       rP   c                       ] tR t^OtRtR# )r<   rI   NrJ   rI   rP   rQ   r<   r<   O   rR   rP   c                 `    \         P                  ! W4      P                  P                  V4      # N)r	   	get_model_meta	get_field)	app_label
model_name
field_names   &&&rQ   _load_fieldr\   X   s"    >>)066@@LLrP   c                 &    \        4       pWn        V# rU   )r5   	__class__)of_clsnews   & rQ   _emptyra   l   s    
'CMJrP   c                      R # rU   rI   rI   rP   rQ   return_Nonerc   r   s    rP   c                   t  a a ] tR t^vt oRtRt]! ]P                  4      t	^ t
RUt. tR]! R4      R]! R4      R]! R4      R	]! R
4      R]! R4      /tRtRtRVtRtRtRtRtRtRtRt]tR t]! ]4      tRRRRRRRRR]RRRRRRRRRRRWRR]3R ltV 3R lt R t!R t"R t#]$R 4       t%R t&RXR lt'R t(RXR lt)R t*RXR lt+R t,R t-RXR lt.]R  4       t/]/P`                  R! 4       t/]1R" 4       t2R# t3R$ t4R% t5R& t6R' t7R( t8R) t9R* t:R+ t;R, t<R- t=]1R. 4       t>]1R/ 4       tR0 t?R1 t@R2 tAR3 tBR4 tCR5 tDR6 tER7 tFR8 tGR9 tHR: tI]1R; 4       tJ]R< 4       tK]R= 4       tLR> tMRYR? ltNR@ tORA tPRB tQRC tRRD tSRE tTRYRF ltURG tVRH tWRI tXRJ tY]1RK 4       tZ]1RL 4       t[R]\RRW3RM lt]RN t^]RO 4       t_RP t`RZRQ ltaRR tbRS tcRTtdVteV ;tf# )[r6   zBase class for all field typesTinvalid_choicez&Value %(value)r is not a valid choice.nullzThis field cannot be null.blankzThis field cannot be blank.uniquez8%(model_name)s with this %(field_label)s already exists.unique_for_datezH%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s.NFc                R    \        R 4      RV P                  P                  /,          # )zField of type: %(field_type)s
field_type)_r^   rK   selfs   &rQ   _descriptionField._description   s)    01$..115
 
 	
rP    c                ^   W n         Wn        Wn        W0n        WEuV n        V n        WguV n        V n        Wn        V P                  R JV n	        Wn
        VV n        Wn        Wn        Wn        Wn        Wn        VV n        VV n        Wn        VV n        VV n        VV n        VV n        V'       d4   \0        P2                  V n        \0        ;P2                  ^,          un        M2\0        P4                  V n        \0        ;P4                  ^,          un        \7        V4      V n        VV n        R # rU   )nameverbose_name_verbose_nameprimary_key
max_length_uniquerg   rf   remote_fieldis_relationdefault
db_defaulteditable	serializeri   unique_for_monthunique_for_yearchoices	help_textdb_index	db_column
db_comment_db_tablespaceauto_createdr6   auto_creation_countercreation_counterlist_validators_error_messages)rn   rt   rs   rv   rw   rh   rg   rf   r   relr{   r}   r~   ri   r   r   r   r   r   db_tablespacer   r   error_messagesr   r|   s   &&&&&&&&&&&&&&&&&&&&&&&&&rQ   __init__Field.__init__   s   6 	()&(2% %
DI,,D8$ ". 0." "$+( $)$?$?D!''1,'$)$:$:D!""a'"
+-rP   c                   < \        V R4      '       g   \        SV `	  4       # V P                  pVP                  P
                  : RV P                  : 2# )zJ
Return "app_label.model_label.field_name" for fields attached to
models.
model.)hasattrsuper__str__r   rW   labelrs   )rn   r   r^   s   & rQ   r   Field.__str__   sA    
 tW%%7?$$

++++TYY77rP   c                    V P                   P                  : RV P                   P                  : 2p\        V RR4      pVe   RV: RV: R2# RV,          # )z1Display the module, class, and name of the field.r   rs   N<z: >z<%s>)r^   rL   rM   getattr)rn   pathrs   s   &  rQ   __repr__Field.__repr__  sI    ..33T^^5P5PQtVT*!%t,,}rP   c                2   . V P                  4       OV P                  4       OV P                  ! R/ VB OV P                  4       OV P                  ! R/ VB OV P                  4       OV P                  ! R/ VB OV P                  4       OV P                  4       O# NrI   )	_check_field_name_check_choices_check_db_default_check_db_index_check_db_comment$_check_null_allowed_for_primary_keys_check_backend_specific_checks_check_validators_check_deprecation_detailsrn   kwargss   &,rQ   checkField.check
  s    

##%

  "

 ##-f-

 !!#	


 ##-f-

 668

 00:6:

 ##%

 ,,.

 
	
rP   c                f   V P                   f   . # V P                   P                  R4      '       d   \        P                  ! RV RR7      .# \        V P                   9   d&   \        P                  ! R\        ,          V RR7      .# V P                   R8X  d   \        P                  ! RV R	R7      .# . # )
zu
Check if field name is valid, i.e. 1) does not end with an
underscore, 2) does not contain "__" and 3) is not "pk".
rl   z,Field names must not end with an underscore.zfields.E001objidz"Field names must not contain "%s".zfields.E002pkz<'pk' is a reserved word that cannot be used as a field name.zfields.E003)rs   endswithr   Errorr   rm   s   &rQ   r   Field._check_field_name  s    
 99I99c""B$  499$8:E$  YY$R$  IrP   c                h    \        V\        \        34      ;'       g    \        V\        4      '       * # rU   )
isinstancestrr"   r   )clsvalues   &&rQ   _choices_is_valueField._choices_is_value9  s%    %#w0SS
5(8S4SSrP   c                  a  S P                   '       g   . # \        S P                   \        4      '       d!   \        S P                   \        4      '       d   \        P
                  ! R S RR7      .# ^ pS P                    F  p Vw  r4 \        ;QJ d    T 3R lT 4       F  '       d   K   RM	  RM! T 3R lT 4       4      '       g    MS P                  e   T'       d   \        T.R T 4       O4      p\        T\        4      '       g   K   MD	  S P                  e3   VS P                  8  d"   \        P
                  ! RV,          S RR7      .# . # \        P
                  ! R	S R
R7      .#   \        \        3 d      K/  i ; i  \        \        3 dr    Y4reS P                  T4      '       d   S P                  T4      '       g     Kx  S P                  e,   \        T\        4      '       d   \        T\        T4      4      p ELi ; i)zV'choices' must be a mapping (e.g. a dictionary) or an iterable (e.g. a list or tuple).zfields.E004r   c              3   |   <"   T F1  w  rSP                  V4      ;'       d    SP                  V4      x  K3  	  R # 5irU   )r   ).0r   
human_namern   s   &  rQ   	<genexpr>'Field._check_choices.<locals>.<genexpr>T  s<      -:) **51XXd6L6LZ6XX-:s   <<FTc              3   l   "   T F*  w  r\        V\        4      '       g   K  \        V4      x  K,  	  R # 5irU   )r   r   len)r   r   rl   s   &  rQ   r   r   ]  s+      0=HE#-eS#9 !+E

0=s   44zP'max_length' is too small to fit the longest value in 'choices' (%d characters).zfields.E009z'choices' must be a mapping of actual values to human readable names or an iterable containing (actual value, human readable name) tuples.zfields.E005)r   r   r   r   r   r   	TypeError
ValueErrorallrw   maxr   r   )rn   choice_max_lengthchoices_group
group_namegroup_choicesr   r   s   f      rQ   r   Field._check_choices=  s   |||I$,,11Zc5R5R.$	  !\\M,9)
Ks -:sss -:   ??.=(+-0=	)%* ---G *J */@4??/RLL8:KL (	  I LLX 	
 	
[ z* ( z* K$.z--e44D<R<R= = ??.:eS3I3I(+,=s5z(J%KsC   E,
FF)F	FF,FFA H
9HHc           	        ^ RI Hp V P                  4       '       d=   \        V P                  V4      '       g!   \        V P                  R4      '       d   Vf   . # . pV EF#  p\        P                  ! WPP                  4      '       g   K,  \        V,          p\        V P                  RR4      '       gS   VP                  P                  '       d7   V P                   R2pVP                  \        P                   ! WpRR7      4       VP                  P                  '       d   K  RV P                  P"                  P$                  9   d   K  VP&                   R	2pVP                  \        P                   ! WpR
R7      4       EK&  	  V# )r   Valueresolve_expressionallowed_defaultFz cannot be used in db_default.zfields.E012r   supports_expression_defaultszH does not support default database values with expressions (db_default).zfields.E011)django.db.models.expressionsr   has_db_defaultr   r|   r   r   allow_migrate_modelr   r   r   _db_default_expressionfeaturesr   appendr   r   rW   required_db_featuresdisplay_name)rn   	databasesr   r   errorsdbr   msgs   &&,     rQ   r   Field._check_db_default  s1   6 ##%%4??E22t0DEE IB--b**==$RJ4668I5QQ##@@@))GHfll3]KL ##@@@1::##889 "../ 0< <  fll3]KL) * rP   c                \    V P                   R9  d   \        P                  ! RV RR7      .# . # )Nz''db_index' must be None, True or False.zfields.E006r   )NTF)r   r   r   rm   s   &rQ   r   Field._check_db_index  s5    == 33=$  IrP   c           	        V P                   '       d	   V'       g   . # . pV F  p\        P                  ! W@P                  4      '       g   K+  \        V,          pVP
                  P                  '       d   KV  R V P                  P                  P                  9   d   K}  VP                  \        P                  ! VP                   R2V RR7      4       K  	  V# )supports_commentsz3 does not support comments on columns (db_comment).zfields.W163r   )r   r   r   r   r   r   r   rW   r   r   r   Warningr   )rn   r   r   r   r   r   s   &&,   rQ   r   Field._check_db_comment  s    iIB--b**==$RJ##555&$***:*:*O*OONN%223 40 1 (	   rP   c                    V P                   '       dN   V P                  '       d<   \        P                  P                  '       g   \
        P                  ! R RV RR7      .# . # )z%Primary keys must not have null=True.zASet null=False on the field, or remove primary_key=True argument.zfields.E007hintr   r   )rv   rf   r   r   !interprets_empty_strings_as_nullsr   r   rm   s   &rQ   r   *Field._check_null_allowed_for_primary_keys  sX    			''III ;< $
 
 IrP   c                    Vf   . # . pV Fb  p\         P                  ! W@P                  4      '       g   K+  VP                  \        V,          P
                  P                  ! V 3/ VB 4       Kd  	  V# rU   )r   r   r   extendr   
validationcheck_field)rn   r   r   r   aliass   &&,  rQ   r   $Field._check_backend_specific_checks  s`    IE))%<<k%0;;GGWPVWX  rP   c                    . p\        V P                  4       F[  w  r#\        V4      '       d   K  VP                  \        P
                  ! R RP                  V\        V4      R7      V RR7      4       K]  	  V# )z"All 'validators' must be callable.zKvalidators[{i}] ({repr}) isn't a function or instance of a validator class.)ireprzfields.E008r   )	enumerater   callabler   r   r   formatr   )rn   r   r   	validators   &   rQ   r   Field._check_validators  sp    %doo6LAI&&LL<==CV"#%))_ >D >
 !( 7  rP   c           	     J   V P                   e   \        P                  ! V P                   P                  RRV P                  P
                  ,          4      V P                   P                  R4      V V P                   P                  RR4      R7      .# V P                  e   \        P                  ! V P                  P                  RRV P                  P
                  ,          4      V P                  P                  R4      V V P                  P                  RR4      R7      .# . # )	Nr   z@%s has been removed except for support in historical migrations.r   r   zfields.EXXXr   z%s has been deprecated.zfields.WXXX)system_check_removed_detailsr   r   getr^   rK   system_check_deprecated_detailsr   rm   s   &rQ   r    Field._check_deprecation_details   s   ,,85599&(,(?(?@
 ::>>vF88<<T=Q	  11=88<<84>>;R;RR ==AA&I;;??mT	 	 	rP   c                    WP                   P                  P                  8X  d   Ve   W 8X  d   V P                  # ^ RIHp V! WV4      # )NCol)r   rW   db_table
cached_colr   r  )rn   r   output_fieldr  s   &&& rQ   get_colField.get_col  s=    JJ$$--- L$8??"45--rP   c                    V P                   # rU   )_choicesrm   s   &rQ   r   Field.choices$  s    }}rP   c                &    \        V4      V n        R # rU   )r   r
  rn   r   s   &&rQ   r   r  (  s    )%0rP   c                \    ^ RI Hp V! V P                  P                  P                  V 4      # )r   r  )r   r  r   rW   r  )rn   r  s   & rQ   r  Field.cached_col,  s"    44::##,,d33rP   c                    W#3# )z
Custom format for select clauses. For example, GIS columns need to be
selected as AsText(table.col) on MySQL as the table.col data can't be
used by Django.
rI   )rn   compilersqlparamss   &&&&rQ   select_formatField.select_format2  s     {rP   c                l   / p/ RRbRRbRRbRRbRRbRRbR	RbR
\         bR\         bRRbRRbRRbRRbRRbRRbRRbRRbRRRRRRR. RR/CpRRRRRRRRRR/pRR0pVP                  4        F`  w  rV\        WP                  WU4      4      p\	        V\
        4      '       d   VP                  pWT9   d   Wv8w  d   WqV&   KS  KU  WvJg   K\  WqV&   Kb  	  V P                  P                  : R V P                  P                  : 2pVP                  R!4      '       d   VP                  R!R"4      pMVP                  R#4      '       d   VP                  R#R"4      pMVP                  R$4      '       d   VP                  R$R"4      pMVP                  R%4      '       d   VP                  R%R"4      pM}VP                  R&4      '       d   VP                  R&R"4      pMSVP                  R'4      '       d   VP                  R'R"4      pM)VP                  R(4      '       d   VP                  R(R"4      pV P                  V. V3# ))a  
Return enough information to recreate the field as a 4-tuple:

 * The name of the field on the model, if contribute_to_class() has
   been run.
 * The import path of the field, including the class, e.g.
   django.db.models.IntegerField. This should be the most portable
   version, so less specific may be better.
 * A list of positional arguments.
 * A dict of keyword arguments.

Note that the positional or keyword arguments must contain values of
the following types (including inner values of collection types):

 * None, bool, str, int, float, complex, set, frozenset, list, tuple,
   dict
 * UUID
 * datetime.datetime (naive), datetime.date
 * top-level classes, top-level functions - will be referenced by their
   full import path
 * Storage instances - these have their own deconstruct() method

This is because the values here must be serialized into a text format
(possibly new Python code, possibly JSON) and these are the only types
with encoding handlers defined.

There's no need to return the exact way the field was instantiated this
time, just ensure that the resulting field is the same - prefer keyword
arguments over positional ones, and omit parameters with their default
values.
rt   Nrv   Frw   rh   rg   rf   r   r{   r|   r}   Tr~   ri   r   r   r   r   rq   r   r   r   r   r   r   rx   r   r   ru   r   r   zdjango.db.models.fields.relatedzdjango.db.modelszdjango.db.models.fields.filesz!django.db.models.fields.generatedzdjango.db.models.fields.jsonzdjango.db.models.fields.proxyz!django.db.models.fields.compositezdjango.db.models.fields)r<   itemsr   r   r   r   funcr^   rL   rM   
startswithreplacers   )	rn   keywords	possiblesattr_overridesequals_comparisonrs   r{   r   r   s	   &        rQ   deconstructField.deconstruct:  s   B 
D
5
 $
 e	

 U
 E
 
 |
 ,
 
 
 t
 
 t
 t
  !
" #
$ $TE"d-
	2 i/-O-
 '5&__.MDD"4"4T"@AE%!788

(#%*TN $ '%*TN / ..33T^^5P5PQ??<==<< ACUVD__<==<< ?ASTD__@AA<< CEWXD__;<<<< >@RSD__<==<< ?ASTD__@AA<< CEWXD__677<< 9;MND		4X..rP   c                L    V P                  4       w  rr4V P                  ! V/ VB # )zp
Uses deconstruct() to clone a new copy of this Field.
Will not preserve any class attachments/attribute names.
)r  r^   )rn   rs   r   argsr   s   &    rQ   cloneField.clone  s+    
 $(#3#3#5 D~~t.v..rP   c                    \        V\        4      '       d=   V P                  VP                  8H  ;'       d    \        V R R4      \        VR R4      8H  # \        # )r   N)r   r6   r   r   NotImplementedrn   others   &&rQ   __eq__Field.__eq__  s[    eU##((E,B,BB / /wgtH.H/ / rP   c                F   \        V\        4      '       Ed   V P                  VP                  8w  g%   \        V R 4      '       g,   \        VR 4      '       g   V P                  VP                  8  # \        V R 4      \        VR 4      8w  d   \        V R 4      '       * # V P                  P
                  P                  V P                  P
                  P                  3VP                  P
                  P                  VP                  P
                  P                  38  # \        # )r   )	r   r6   r   r   r   rW   rY   rZ   r&  r'  s   &&rQ   __lt__Field.__lt__  s     eU##%%)?)??tW--w//,,u/E/EEEw'75'+BB"4111 

((22DJJ4D4D4O4OPKK%%//KK%%00T   rP   c                ,    \        V P                  4      # rU   )hashr   rm   s   &rQ   __hash__Field.__hash__  s    D))**rP   c                F   \         P                   ! V 4      pV P                  '       dl   \         P                   ! V P                  4      Vn        \        V P                  R 4      '       d+   V P                  P                  V J d   W"P                  n        W!\	        V 4      &   V# field)copyry   r   r4  r   )rn   memodictr   s   && rQ   __deepcopy__Field.__deepcopy__  sx     iio#yy):):;Ct(('22t7H7H7N7NRV7V),  & D
rP   c                z    \        4       pV P                  Vn        V P                  P                  4       Vn        V# rU   )r5   r^   __dict__r5  rn   r   s   & rQ   __copy__Field.__copy__  s/     g}}))+
rP   c                H   \        V R4      '       gA   V P                  P                  4       pVP                  RR4       \        V P
                  3V3# \        V P                  P                  P                  V P                  P                  P                  V P                  33# )z
Pickling should return the model._meta.fields instance of the field,
not a new copy of that field. So, use the app registry to load the
model and then the field back.
r   _get_defaultN)r   r:  r5  popra   r^   r\   r   rW   rY   object_namers   )rn   states   & rQ   
__reduce__Field.__reduce__  s     tW%% MM&&(E IInd+DNN,e33JJ&&JJ((II
 
 	
rP   c                J    V P                   '       d   V P                  4       # R# )z
Hook to generate new PK values on save. This method is called when
saving instances with no primary key value set. If this method returns
something else than None, then the returned value is used when saving
the new instance.
N)r{   get_default)rn   instances   &&rQ   get_pk_value_on_saveField.get_pk_value_on_save  s     <<<##%%rP   c                    V# )z
Convert the input value into the expected Python data type, raising
django.core.exceptions.ValidationError if the data can't be converted.
Return the converted value. Subclasses should override this.
rI   r  s   &&rQ   	to_pythonField.to_python  s	     rP   c                    / p\        V P                  P                  4       F  pVP                  \	        VR / 4      4       K!  	  TP                  V P
                  ;'       g    / 4       V# )default_error_messages)reversedr^   __mro__updater   r   )rn   messagescs   &  rQ   r   Field.error_messages  sU    $..001AOOGA'?DE 2,,223rP   c                6    . V P                   OV P                  O# )z
Some validators can't be created at field initialization time.
This method provides a way to delay their creation until required.
)default_validatorsr   rm   s   &rQ   r   Field.validators  s      =((<4+;+;<<rP   c                   WP                   9   d   R # . pV P                   F  p V! V4       K  	  V'       d   \        P                  ! V4      hR #   \        P                   dv   p\	        TR4      '       d>   TP
                  T P                  9   d#   T P                  TP
                  ,          Tn        TP                  TP                  4        R p?K  R p?ii ; i)Ncode)
empty_valuesr   r   ValidationErrorr   rY  r   messager   
error_list)rn   r   r   ves   &&   rQ   run_validatorsField.run_validators  s    %%%A,% ! ,,V44  -- ,1f%%!&&D4G4G*G $ 3 3AFF ;AIall++,s   AC&A*CCc                |   V P                   '       g   R# V P                  e   WP                  9  d~   V P                   FA  w  r4\        V\        \
        34      '       d   V F  w  rVW8X  g   K    R# 	  K8  W8X  g   K@   R# 	  \        P                  ! V P                  R,          RRV/R7      hVf<   V P                  '       g*   \        P                  ! V P                  R,          RR7      hV P                  '       g<   WP                  9   d*   \        P                  ! V P                  R,          RR7      hR# R# )zu
Validate value and raise ValidationError if necessary. Subclasses
should override this to provide validation logic.
Nre   r   rY  r  rf   )rY  rg   )r}   r   rZ  r   r   tupler   r[  r   rf   rg   )rn   r   model_instance
option_keyoption_valueoptgroup_keyoptgroup_values   &&&    rQ   validateField.validate  s   
 }}}<<#5F5F(F,0LL(
lT5M:: 9E4 0" 9E ( -9 ,,##$45%'  =,,T-@-@-HvVVzzze'8'88,,T-@-@-IPWXX 9zrP   c                l    V P                  V4      pV P                  W4       V P                  V4       V# )z
Convert the value's type and run validation. Validation errors
from to_python() and validate() are propagated. Return the correct
value if no error is raised.
)rK  rj  r`  rn   r   re  s   &&&rQ   cleanField.clean=  s1     u%e,E"rP   c                X    \        V P                  VP                  P                  R 4      # )qn_)r   r:  ops
quote_namern   r   s   &&rQ   db_type_parametersField.db_type_parametersH  s    4==*..*C*CUKKrP   c                    V P                  V4      p VP                  V P                  4       ,          V,          #   \         d     R# i ; i)z
Return the database column check constraint for this field, for the
provided connection. Works the same way as db_type() for the case that
get_internal_type() does not map to a preexisting model field.
N)ru  data_type_check_constraintsget_internal_typeKeyError)rn   r   datas   && rQ   db_checkField.db_checkK  sO     &&z2	66t7M7M7OPSWW  		s   '; A
	A
c                    V P                  V4      p VP                  V P                  4       ,          p\        V4      '       d	   V! V4      # W2,          #   \         d     R# i ; i)zS
Return the database column data type for this field, for the provided
connection.
N)ru  
data_typesry  r   rz  )rn   r   r{  column_types   &&  rQ   db_typeField.db_typeY  sg    ( &&z2	&$//0F0F0HIK
 $$"4((%%  		s   !A A$#A$c                $    V P                  V4      # )z
Return the data type that a related field pointing to this field should
use. For example, this method is called by ForeignKey and OneToOneField
to determine its data type.
)r  rt  s   &&rQ   rel_db_typeField.rel_db_typex  s     ||J''rP   c                    VP                   P                  P                  V P                  4       4      pV'       d   W P	                  V4      ,          # V P                  V4      # )z3Return the data type to use in the Cast() function.)rr  cast_data_typesr   ry  ru  r  )rn   r   r  s   && rQ   cast_db_typeField.cast_db_type  sK    ..0044T5K5K5MN44Z@@@||J''rP   c                R    V P                  V4      pV P                  V4      pRVRV/# )z
Extension of db_type(), providing a range of different return values
(type, checks). This will look at db_type(), allowing custom model
fields to override it.
typer   )r  r|  )rn   r   type_stringcheck_strings   &&  rQ   db_parametersField.db_parameters  s4     ll:.}}Z0K\
 	
rP   c                T    VP                   P                  V P                  4       4      # rU   )data_types_suffixr   ry  rt  s   &&rQ   db_type_suffixField.db_type_suffix  s"    ++//0F0F0HIIrP   c                D    \        V R 4      '       d   V P                  .# . # )from_db_value)r   r  rt  s   &&rQ   get_db_convertersField.get_db_converters  s#    4))&&''	rP   c                B    V P                   ;'       g    V P                  # rU   )rx   rv   rm   s   &rQ   rh   Field.unique  s    ||//t///rP   c                J    V P                   ;'       g    \        P                  # rU   )r   r
   DEFAULT_INDEX_TABLESPACErm   s   &rQ   r   Field.db_tablespace  s    ""GGh&G&GGrP   c                "    V P                  4       # )z6Private API intended only to be used by Django itself.)r   rm   s   &rQ   db_returningField.db_returning  s     ""$$rP   c                &   V P                   ;'       g    TV n         V P                  4       w  V n        V n        V P                  R JV n        V P
                  f8   V P                   '       d$   V P                   P                  RR4      V n        R # R # R # )Nrl    )rs   get_attname_columnattnamecolumnconcretert   r  )rn   rs   s   &&rQ   set_attributes_from_nameField.set_attributes_from_name  sq    II%%	$($;$;$=!dk4/$ $		 1 1#s ;D *3$rP   c           	        V P                  V4       Wn        VP                  P                  WR7       V P                  '       d&   \        WP                  V P                  V 4      4       V P                  eZ   RV P                  ,          VP                  9  d6   \        VRV P                  ,          \        VP                  V R7      4       R# R# R# )z
Register the field with the model class it belongs to.

If private_only is True, create a separate instance of this field
for every subclass of cls, even if cls is not an abstract model.
)privateNzget_%s_displayr3  )r  r   rW   	add_fieldr  setattrr  descriptor_classr   rs   r:  r   _get_FIELD_display)rn   r   rs   private_onlys   &&&&rQ   contribute_to_classField.contribute_to_class  s     	%%d+
		D7;;;Ct'<'<T'BC<<#
  $))+3<<?$tyy0!#"8"8E @ $rP   c                D    V P                   \        WP                  4      /# )z
Return a dict that when passed as kwargs to self.model.filter(), would
yield all instances having the same value for this field as obj has.
)rs   r   r  r;  s   &&rQ   get_filter_kwargs_for_object"Field.get_filter_kwargs_for_object  s    
 		73566rP   c                    V P                   # rU   )rs   rm   s   &rQ   get_attnameField.get_attname  s    yyrP   c                T    V P                  4       pV P                  ;'       g    TpW3# rU   )r  r   )rn   r  r  s   &  rQ   r  Field.get_attname_column  s)    ""$**7rP   c                .    V P                   P                  # rU   )r^   rK   rm   s   &rQ   ry  Field.get_internal_type  s    ~~&&&rP   c                ,    \        WP                  4      # )z(Return field's value just before saving.r   r  )rn   re  adds   &&&rQ   pre_saveField.pre_save  s    ~||44rP   c                R    \        V\        4      '       d   VP                  4       pV# )zAPerform preliminary non-db specific value checks and conversions.)r   r"   _proxy____castr  s   &&rQ   get_prep_valueField.get_prep_value  s"    eW%%((*ErP   c                8    V'       g   V P                  V4      pV# )z
Return field's value prepared for interacting with the database
backend.

Used by the default implementations of get_db_prep_save().
)r  rn   r   r   prepareds   &&&&rQ   get_db_prep_valueField.get_db_prep_value  s     ''.ErP   c                P    \        VR4      '       d   V# V P                  WRR7      # )z9Return field's value prepared for saving into a database.as_sqlF)r   r  )r   r  )rn   r   r   s   &&&rQ   get_db_prep_saveField.get_db_prep_save  s*    5(##L%%eU%SSrP   c                &    V P                   \        J# )z;Return a boolean of whether this field has a default value.)r{   r<   rm   s   &rQ   has_defaultField.has_default  s    ||<//rP   c                &    V P                   \        J# )z>Return a boolean of whether this field has a db_default value.)r|   r<   rm   s   &rQ   r   Field.has_db_default  s    l22rP   c                "    V P                  4       # )z(Return the default value for this field.)r?  rm   s   &rQ   rF  Field.get_default  s      ""rP   c                r  a a S P                  4       '       d.   \        S P                  4      '       d   S P                  # V 3R  l# S P                  4       '       d   ^ RIHo VV 3R l# S P                  '       d3   S P                  '       d'   \        P                  P                  '       g   \        # \        # )c                     < S P                   # rU   )r{   rm   s   rQ   <lambda>$Field._get_default.<locals>.<lambda>  s	    4<<rP   )DatabaseDefaultc                  ,   < S ! SP                   SR 7      # ))r  )r   )r  rn   s   rQ   r  r    s    ?++$rP   )r  r   r{   r   r   r  empty_strings_allowedrf   r   r   r   rc   r   )rn   r  s   f@rQ   r?  Field._get_default  s    %%||#''  D 
 ***yyy''III
rP   c                    V P                   pV P                  4       '       d!   \        VR 4      '       g   ^ RIHp V! W4      pV# )r   r   )r|   r   r   r   r   )rn   r|   r   s   &  rQ   r   Field._db_default_expression  s:    __
  =Q)R)R:z0JrP   c                T   V P                   e+   V'       d   \        V P                   V4      # V P                   # V P                  P                  pT;'       g    V P	                  4       p\
        P                  ! \        V P                  R4      '       d%   V P                  P                  4       P                  MR4      pVP                  P                  V4      pV'       d   VP                  ! V!  pV'       d   TM. V Uu. uF  q! V4      \        V4      3NK  	  up,           # u upi )zc
Return choices with a default blank choices included, for use
as <select> choices for this field.
get_related_fieldr   )r   r   ry   r   get_limit_choices_tooperator
attrgetterr   r  r  _default_managercomplex_filterorder_byr   )	rn   include_blankblank_choicelimit_choices_toordering	rel_modelchoice_funcqsxs	   &&&&&    rQ   get_choicesField.get_choices   s     <<#*4<<FF<<%%++	+JJt/H/H/J))t((*=>> //199

 ''667GHh'B -2.0:
.0[^SV$b:
 
 	
 :
s   D%c                6    \        V P                  V4      4      # )zg
Return a string value of this field from the passed obj.
This is used by the serialization framework.
)r   value_from_objectr;  s   &&rQ   value_to_stringField.value_to_string=  s    
 4))#.//rP   c                >    \        \        V P                  4      4      # )z#Flattened version of choices tuple.)r   r   r   rm   s   &rQ   flatchoicesField.flatchoicesD  s     ODLL122rP   c                2    \        WP                  V4       R # rU   )r  rs   )rn   rG  r{  s   &&&rQ   save_form_dataField.save_form_dataI  s    ))T*rP   c                   RV P                   '       * R\        V P                  4      RV P                  /pV P	                  4       '       dD   \        V P                  4      '       d   V P                  VR&   RVR&   MV P                  4       VR&   V P                  e   V P                   ;'       g#    V P	                  4       ;'       g    RV9   '       * pV P                  VR7      VR	&   V P                  VR
&   V P                  '       d   RVR&   Ve   TpM\        P                  p\        V4       F  pVR9  g   K  W6 K  	  VP                  V4       Vf   \        P                   pV! R/ VB # )z4Return a django.forms.Field instance for this field.requiredr   r   initialTshow_hidden_initialNr  r   coerceempty_value)r  r   r   r  widgetr   r  r   r   r  disabledrI   )rg   r&   rt   r   r  r   r{   rF  r   r  rK  rf   r   TypedChoiceFieldr   rQ  r.   )rn   
form_classchoices_form_classr   defaultsr  ks   &&&,   rQ   	formfieldField.formfieldL  sV    DJJXd//0

 %%&*ll#26./&*&6&6&8#<<# JJ    "99i6&9+M #'"2"2"2"OHY!%HXyyy*.'!-/
"33
 &\   	 " 	J%H%%rP   c                ,    \        WP                  4      # )z;Return the value of this field in the given model instance.r  r;  s   &&rQ   r  Field.value_from_object}  s    sLL))rP   c                    \        R4      h)zReturn a slice of this field.z$This field does not support slicing.r   )rn   
expressionstartlengths   &&&&rQ   slice_expressionField.slice_expression  s     FGGrP   ) r
  r   r   rx   r   ru   r  r   rg   r   r  r  r   r   r   r|   r   r{   r}   r   rz   rw   r   rs   rf   rv   ry   r~   ri   r   r   rt   )rg   r   r   r}   r   r   r  	on_deleterelated_namerelated_query_namer   rt   rI   rU   FNN)grK   rL   rM   rN   __doc__r  r   r   EMPTY_VALUESrZ  r   r   rV  rl   rN  r   r   non_db_attrshiddenmany_to_manymany_to_oneone_to_many
one_to_onerelated_model	generatedr   r  ro   propertydescriptionr<   r   r   r   r   r   classmethodr   r   r   r   r   r   r   r   r   r  r   setterr#   r  r  r  r#  r)  r,  r0  r7  r<  rC  rH  rK  r   r`  rj  rn  ru  r|  r  r  r  r  r  r  rh   r   r  r  r  r  r  r  ry  r  r  r  r  r  r   rF  r?  r   r)   r  r  r  r  r  r  r  rO   __classdictcell____classcell__r^   __classdict__s   @@rQ   r6   r6   v   s>    ( !
//0L
 !DE./01!NO14
 '+##' L" FLKKJMI(

 <(K 3<.|8
 D T TG
R"H
,.(6.   ^^1 1 4 4
^/@/(+	
.	   = =5 Y>	L&>((
J
 0 0 H H % %<07
'5	T03#  *   &
:0 3 3+/&b*H HrP   c                      a a ] tR tRt oRtR]! R4      R]! R4      /t]! R4      tR tR	 t	V 3R
 lt
V 3R ltRtVtV ;t# )r-   i  Finvalidu3   “%(value)s” value must be either True or False.invalid_nullableu:   “%(value)s” value must be either True, False, or None.zBoolean (Either True or False)c                    R # )r-   rI   rm   s   &rQ   ry  BooleanField.get_internal_type      rP   c                   V P                   '       d   WP                  9   d   R # VR9   d   \        V4      # VR9   d   R# VR	9   d   R# \        P                  ! V P
                  V P                   '       d   RMR,          RRV/R7      h)
NTFr,  r+  r   rc  )TF)tTrue1)fFalse0)rf   rZ  boolr   r[  r   r  s   &&rQ   rK  BooleanField.to_python  sz    999"3"33M!;&&''((diii 2YOU#
 	
rP   c                P   < \         SV `  V4      pVf   R # V P                  V4      # rU   r   r  rK  rn   r   r^   s   &&rQ   r  BooleanField.get_prep_value  s)    &u-=~~e$$rP   c                &  < V P                   e8   V P                  4       ;'       g    RV9   '       * pRV P                  VR7      /pM8V P                  '       d   \        P
                  M\        P                  pRVRR/p\        SV `   ! R/ / VCVCB # )Nr  r   r  r  r  FrI   )	r   r  r  rf   r   r=   r-   r   r  )rn   r   r  r  r  r^   s   &,   rQ   r  BooleanField.formfield  s    <<#!%!1!1!3!J!JyF7JKM!4#3#3-#3#PQH37999//%BTBTJ %j*eDHw :#9h#9&#9::rP   rI   )rK   rL   rM   rN   r  rl   rN  r#  ry  rK  r  r  rO   r&  r'  r(  s   @@rQ   r-   r-     sO     !1JKAZ[ 45K
 %
; 
;rP   c                      a a ] tR tRt oRR/V 3R llt]R 4       tV 3R ltR tR t	V 3R	 lt
V 3R
 ltR tR tV 3R ltV 3R ltV 3R ltR tRtVtV ;t# )r.   i  db_collationNc                  < \         SV `  ! V/ VB  Wn        V P                  e<   V P                  P                  \        P                  ! V P                  4      4       R # R # rU   )r   r   r@  rw   r   r   MaxLengthValidatorrn   r@  r"  r   r^   s   &$*,rQ   r   CharField.__init__  sK    $)&)(??&OO"":#@#@#QR 'rP   c                J    V P                   e   \        R4      # \        R4      # )NzString (up to %(max_length)s)zString (unlimited))rw   rl   rm   s   &rQ   r#  CharField.description  s$    ??&455)**rP   c                   < VP                  R 4      ;'       g    . p. \        SV `  ! R/ VB OV P                  V4      OV P                  ! R/ VB O# r   rI   )r   r   r   _check_db_collation_check_max_length_attributern   r   r   r^   s   &, rQ   r   CharField.check  sb    JJ{+11r	
W]$V$
%%i0
 --77
 	
rP   c                   V P                   fb   \        P                  P                  '       g&   RV P                  P
                  P                  9   d   . # \        P                  ! RV RR7      .# \        V P                   \        4      '       d2   \        V P                   \        4      '       g   V P                   ^ 8:  d   \        P                  ! RV RR7      .# . # )Nsupports_unlimited_charfieldz0CharFields must define a 'max_length' attribute.zfields.E120r   z('max_length' must be a positive integer.zfields.E121)rw   r   r   rN  r   rW   r   r   r   r   intr7  r   s   &,rQ   rJ  %CharField._check_max_length_attribute  s    ??"##@@@1::##889 	F$  4??C00$//400!# >$  IrP   c           	        . pV F  p\         P                  ! W0P                  4      '       g   K+  \        V,          pV P                  f   KH  RV P                  P
                  P                  9   d   Ko  VP                  P                  '       d   K  VP                  \        P                  ! RVP                  ,          V RR7      4       K  	  V# )Nsupports_collation_on_charfieldz7%s does not support a database collation on CharFields.fields.E190r   )r   r   r   r   r@  rW   r   r   rR  r   r   r   r   rn   r   r   r   r   s   &&   rQ   rI  CharField._check_db_collation      B--b**==$RJ!!)4::##889&&FFFLL&(2(?(?@ (	 $ rP   c                j   < V P                   f   VP                  P                  # \        SV `  V4      # rU   )rw   rr  "cast_char_field_without_max_lengthr   r  )rn   r   r^   s   &&rQ   r  CharField.cast_db_type  s-    ??">>DDDw#J//rP   c                D   < \         SV `  V4      pV P                  VR &   V# 	collationr   r  r@  rn   r   	db_paramsr^   s   && rQ   r  CharField.db_parameters  (    G)*5	!%!2!2	+rP   c                    R # )r.   rI   rm   s   &rQ   ry  CharField.get_internal_type      rP   c                P    \        V\        4      '       g   Vf   V# \        V4      # rU   r   r   r  s   &&rQ   rK  CharField.to_python  "    eS!!U]L5zrP   c                D   < \         SV `  V4      pV P                  V4      # rU   r:  r;  s   &&rQ   r  CharField.get_prep_value  !    &u-~~e$$rP   c                   < R V P                   /pV P                  '       d&   \        P                  P                  '       g   RVR&   VP                  V4       \        SV `  ! R/ VB # )rw   Nr   rI   )rw   rf   r   r   r   rQ  r   r  )rn   r   r  r^   s   &, rQ   r  CharField.formfield  sV     !$//2999Z00RRR&*H]#w ,8,,rP   c                p   < \         SV `  4       w  rr4V P                  '       d   V P                  VR &   WW43# r@  r   r  r@  rn   rs   r   r"  r   r^   s   &    rQ   r  CharField.deconstruct  <    #(7#6#8 D%)%6%6F>"4''rP   c                     ^ RI Hp V! WV4      # r   )Substrdjango.db.models.functionsrv  rn   r  r  r  rv  s   &&&& rQ   r  CharField.slice_expression%      5j00rP   ro  )rK   rL   rM   rN   r   r"  r#  r   rJ  rI  r  r  ry  rK  r  r  r  r  rO   r&  r'  r(  s   @@rQ   r.   r.     sc     S4 S + +
<,0


%	-(1 1rP   c                   P    ] tR tRt]P
                  .t]! R4      tRRRRRR/t	R	t
R
# )r/   i+  zComma-separated integersr   zRCommaSeparatedIntegerField is removed except for support in historical migrations.r   zJUse CharField(validators=[validate_comma_separated_integer_list]) instead.r   zfields.E901rI   N)rK   rL   rM   rN   r   %validate_comma_separated_integer_listrV  rl   r#  r   rO   rI   rP   rQ   r/   r/   +  s=    $JJK./K% 	 	m
$ rP   c                     \         P                  ! V 4      '       d&   \         P                  ! V \        P                  4      p V # rU   )r   is_aware
make_naivedatetimeUTC)r   s   &rQ   	_to_naiver  ;  s.    ##E8<<8LrP   c                  >    \        \        P                  ! 4       4      # rU   )r  r   nowrI   rP   rQ   _get_naive_nowr  A  s    X\\^$$rP   c                   H   a a ] tR tRt oV 3R ltR tR tRR ltRtVt	V ;t
# )DateTimeCheckMixiniE  c                h   < . \         SV `  ! R/ VB OV P                  4       OV P                  4       O# r   )r   r   !_check_mutually_exclusive_options_check_fix_default_valuern   r   r^   s   &,rQ   r   DateTimeCheckMixin.checkF  sE    
W]$V$
335
 **,
 	
rP   c                    V P                   V P                  V P                  4       .pV Uu. uF  q"R9  NK	  	  upP                  R4      pV^8  d   \        P
                  ! RV RR7      .# . # u upi )NTzqThe options auto_now, auto_now_add, and default are mutually exclusive. Only one of these options may be present.zfields.E160r   )NF)auto_now_addauto_nowr  countr   r   )rn   mutually_exclusive_optionsoptionenabled_optionss   &   rQ   r  4DateTimeCheckMixin._check_mutually_exclusive_optionsM  s    
 MM&
" 7Q
6PF-'6P

%+ 	 Q& $  I
s   A.c                    . # rU   rI   rm   s   &rQ   r  +DateTimeCheckMixin._check_fix_default_valuef  s    	rP   c                   Vf   \        4       p\        P                  ! ^
R7      pW#,
          pW#,           p\        V\        P                  4      '       d   \	        V4      pMB\        V\        P
                  4      '       g   Q hVP                  4       pVP                  4       pYAu;8:  d   V8:  d    M . # \        P                  ! RRV RR7      .# . # )a	  
Check if the given value appears to have been provided as a "fixed"
time value, and include a warning in the returned list if it does. The
value argument must be a date object or aware/naive datetime object. If
now is provided, it must be a naive datetime object.
)secondszFixed default value provided.zIt seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`zfields.W161r   )r  r  	timedeltar   r  dater   r   )rn   r   r  offsetloweruppers   &&&   rQ   _check_if_value_fixed(DateTimeCheckMixin._check_if_value_fixedk  s     ; "C##B/eX..//e$EeX]]3333JJLEJJLE"U" 	 3F
 $
  	rP   rI   rU   )rK   rL   rM   rN   r   r  r  r  rO   r&  r'  r(  s   @@rQ   r  r  E  s     
2
   rP   r  c                      a a ] tR tRt oRtR]! R4      R]! R4      /t]! R4      tRV 3R lltR	 t	V 3R
 lt
R tR tV 3R ltV 3R ltV 3R ltRR ltR tV 3R ltRtVtV ;t# )r0   i  Fr+  uR   “%(value)s” value has an invalid date format. It must be in YYYY-MM-DD format.invalid_dateT   “%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid date.zDate (without time)c                z   < W4uV n         V n        V'       g	   V'       d   R VR&   RVR&   \        SV `  ! W3/ VB  R# Fr}   Trg   Nr  r  r   r   rn   rt   rs   r  r  r   r^   s   &&&&&,rQ   r   DateField.__init__  >     ,4(t(|!&F:"F7O6v6rP   c                &   V P                  4       '       g   . # V P                  p\        V\        P                  4      '       d   \	        V4      P                  4       pM#\        V\        P
                  4      '       d   M. # V P                  V4      # l
Warn that using an actual date or datetime value is probably wrong;
it's only evaluated on server startup.
)r  r{   r   r  r  r  r  r  s   & rQ   r  "DateField._check_fix_default_value  ss    
 !!IeX..//e$))+Ex}}-- I))%00rP   c                   < \         SV `  4       w  rr4V P                  '       d   R VR&   V P                  '       d   R VR&   V P                  '       g   V P                  '       d   VR VR WW43# )Tr  r  r}   rg   r   r  r  r  rq  s   &    rQ   r  DateField.deconstruct  sl    #(7#6#8 D===!%F:%)F>"===D---z"w4''rP   c                    R # )r0   rI   rm   s   &rQ   ry  DateField.get_internal_type  rd  rP   c                `   Vf   V# \        V\        P                  4      '       dn   \        P                  '       dH   \        P
                  ! V4      '       d,   \        P                  ! 4       p\        P                  ! W4      pVP                  4       # \        V\        P                  4      '       d   V#  \        V4      pVe   V#  \        P                  ! T P                  R,          RRT/R7      h  \         d.    \        P                  ! T P                  R,          RRT/R7      hi ; i)Nr  r   rc  r+  )r   r  r
   USE_TZr   r  get_default_timezoner  r  r   r   r   r[  r   )rn   r   default_timezoneparseds   &&  rQ   rK  DateField.to_python  s   =LeX..//8#4#4U#;#; $,#@#@#B  ++ED::<eX]]++L		&F! " ((	*U#
 	
  	,,##N3#' 	s   7C5 58D-c                   < V P                   '       g   V P                  '       d?   V'       d7   \        P                  P	                  4       p\        WP                  V4       V# \        SV `!  W4      # rU   )	r  r  r  r  todayr  r  r   r  rn   re  r  r   r^   s   &&& rQ   r  DateField.pre_save  sN    ===T...3MM'')ENLL%8L7#N88rP   c           
     "  < \         SV `  ! W3/ VB  V P                  '       gk   \        VR V P                  ,          \        VP                  V RR7      4       \        VRV P                  ,          \        VP                  V RR7      4       R# R# )zget_next_by_%sT)r4  is_nextzget_previous_by_%sFN)r   r  rf   r  rs   r   _get_next_or_previous_by_FIELDrn   r   rs   r   r^   s   &&&,rQ   r  DateField.contribute_to_class  s}    #C88yyy 499,66dD $tyy066dE rP   c                D   < \         SV `  V4      pV P                  V4      # rU   r:  r;  s   &&rQ   r  DateField.get_prep_value  rk  rP   c                j    V'       g   V P                  V4      pVP                  P                  V4      # rU   )r  rr  adapt_datefield_valuer  s   &&&&rQ   r  DateField.get_db_prep_value  *    ''.E~~33E::rP   c                P    V P                  V4      pVf   R# VP                  4       # Nrq   r  	isoformatrn   r   vals   && rQ   r  DateField.value_to_string  '    $$S)[r5cmmo5rP   c                H   < \         SV `  ! R/ R \        P                  /VCB # r  rI   )r   r  r   r0   r  s   &,rQ   r  DateField.formfield  0    w  
eoo
 	
rP   r  r  NNFFr  )rK   rL   rM   rN   r  rl   rN  r#  r   r  r  ry  rK  r  r  r  r  r  r  rO   r&  r'  r(  s   @@rQ   r0   r0     s|     !1$
 	)
	 )*K71&	(
<9$%;6
 
rP   c                      a a ] tR tRt oRtR]! R4      R]! R4      R]! R4      /t]! R	4      tR
 tR t	R t
V 3R ltV 3R ltRR ltR tV 3R ltRtVtV ;t# )r1   i  Fr+  ue   “%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format.r  r  invalid_datetimeuq   “%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) but it is an invalid date/time.zDate (with time)c                    V P                  4       '       g   . # V P                  p\        V\        P                  \        P                  34      '       d   V P                  V4      # . # r  )r  r{   r   r  r  r  r  s   & rQ   r  &DateTimeField._check_fix_default_value*  sS    
 !!Ieh//?@@--e44	rP   c                    R # )r1   rI   rm   s   &rQ   ry  DateTimeField.get_internal_type8      rP   c                2   Vf   V# \        V\        P                  4      '       d   V# \        V\        P                  4      '       d   \        P                  ! VP                  VP                  VP
                  4      p\        P                  '       dt    V P                  P                   RV P                   2p\        P                  ! RV RV R2\        4       \        P                   ! 4       p\        P"                  ! W4      pV#  \%        V4      pVe   V#   \/        T4      pTe7   \        P                  ! TP                  TP                  TP
                  4      #  \(        P*                  ! T P,                  R
,          R
RT/R7      h  \         d    Rp Li ; i  \&         d.    \(        P*                  ! T P,                  R,          RRT/R7      hi ; i  \&         d.    \(        P*                  ! T P,                  R	,          R	RT/R7      hi ; i)Nr   	(unbound)DateTimeField  received a naive datetime ($) while time zone support is active.r  r   rc  r  r+  )r   r  r  yearmonthdayr
   r  r   rK   rs   AttributeErrorwarningswarnRuntimeWarningr   r  
make_awarer   r   r   r[  r   r   )rn   r   rs   r  r  s   &&   rQ   rK  DateTimeField.to_python;  s   =LeX..//LeX]]++%%ejj%++uyyIE
'"jj112!DII;?D $TF*Fug N3 3"
 $,#@#@#B  ++EDL		#E*F! "		&F!((fllFJJOO " ((	*U#
 	
C & '&D'  	,,##$67'' 	  	,,##N3#' 	s+   %F F# AG F F #8G8Hc                   < V P                   '       g   V P                  '       d6   V'       d.   \        P                  ! 4       p\	        WP
                  V4       V# \        SV `  W4      # rU   )r  r  r   r  r  r  r   r  r  s   &&& rQ   r  DateTimeField.pre_savep  sG    ===T...3LLNENLL%8L7#N88rP   c                  < \         SV `  V4      pV P                  V4      pVe   \        P                  '       d   \
        P                  ! V4      '       dx    V P                  P                  : RV P                  : 2p\        P                  ! RV: RV: R2\        4       \
        P                  ! 4       p\
        P                  ! W4      pV#   \         d    Rp L`i ; i)Nr   r  r  r  r  )r   r  rK  r
   r  r   is_naiver   rK   rs   r  r  r  r  r  r  )rn   r   rs   r  r^   s   &&  rQ   r  DateTimeField.get_prep_value{  s    &u-u%X5F5Fu5M5M#"&**"5"5tyyA MM9=uF
  (<<>''@E " #"#s   'C C! C!c                j    V'       g   V P                  V4      pVP                  P                  V4      # rU   )r  rr  adapt_datetimefield_valuer  s   &&&&rQ   r  DateTimeField.get_db_prep_value  s*    ''.E~~77>>rP   c                P    V P                  V4      pVf   R# VP                  4       # r  r  r  s   && rQ   r  DateTimeField.value_to_string  r  rP   c                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   r1   r  s   &,rQ   r  DateTimeField.formfield  2    w  
e11
 	
rP   rI   r  )rK   rL   rM   rN   r  rl   rN  r#  r  ry  rK  r  r  r  r  r  rO   r&  r'  r(  s   @@rQ   r1   r1     s     !19
 	6
 	A.
 &'K3
j9(?6
 
rP   c                      a a ] tR tRt oRtR]! R4      /t]! R4      tRV 3R lltV 3R lt	R t
R	 tR
 t]V 3R l4       t]R 4       tV 3R ltR tR tRV 3R lltV 3R ltV 3R ltRtVtV ;t# )r2   i  Fr+  u/   “%(value)s” value must be a decimal number.zDecimal numberc                F   < W4uV n         V n        \        SV `  ! W3/ VB  R # rU   )
max_digitsdecimal_placesr   r   )rn   rt   rs   r  r  r   r^   s   &&&&&,rQ   r   DecimalField.__init__  s&     0:,,6v6rP   c                   < \         SV `  ! R/ VB p. V P                  4       OV P                  4       OpV'       g$   VP	                  V P
                  ! R/ VB 4       V# VP	                  V4       V# r   )r   r   _check_decimal_places_check_max_digitsr   $_check_decimal_places_and_max_digits)rn   r   r   digits_errorsr^   s   &,  rQ   r   DecimalField.check  sv    ((
'')
##%
 MM$CCMfMN  MM-(rP   c                     \        V P                  4      pV^ 8  d   \        4       h . #   \         d    \        P
                  ! RT RR7      .u # \         d    \        P
                  ! RT RR7      .u # i ; i)r   z7DecimalFields must define a 'decimal_places' attribute.zfields.E130r   z0'decimal_places' must be a non-negative integer.zfields.E131)rO  r  r   r   r   r   )rn   r  s   & rQ   r  "DecimalField._check_decimal_places  s    	 !4!45N! l" "& I#  	M$   	F$ 	   &+ %A9A9A98A9c                     \        V P                  4      pV^ 8:  d   \        4       h . #   \         d    \        P
                  ! RT RR7      .u # \         d    \        P
                  ! RT RR7      .u # i ; i)r   z3DecimalFields must define a 'max_digits' attribute.zfields.E132r   z('max_digits' must be a positive integer.zfields.E133)rO  r  r   r   r   r   )rn   r  s   & rQ   r  DecimalField._check_max_digits  s    	T__-JQ l" & I#  	I$   	>$ 	r  c                    \        V P                  4      \        V P                  4      8  d   \        P                  ! R V RR7      .# . # )z:'max_digits' must be greater or equal to 'decimal_places'.zfields.E134r   )rO  r  r  r   r   r   s   &,rQ   r   1DecimalField._check_decimal_places_and_max_digits  sD    t""#c$//&::P$  	rP   c                r   < . \         SV `  O\        P                  ! V P                  V P                  4      N# rU   )r   r   DecimalValidatorr  r  )rn   r^   s   &rQ   r   DecimalField.validators  s9    
W
''9L9LM
 	
rP   c                D    \         P                  ! V P                  R 7      # ))prec)decimalContextr  rm   s   &rQ   contextDecimalField.context  s    DOO44rP   c                   < \         SV `  4       w  rr4V P                  e   V P                  VR&   V P                  e   V P                  VR&   WW43# )Nr  r  )r   r  r  r  rq  s   &    rQ   r  DecimalField.deconstruct  sU    #(7#6#8 D??&#'??F< *'+':':F#$4''rP   c                    R # )r2   rI   rm   s   &rQ   ry  DecimalField.get_internal_type  r/  rP   c                   Vf   V#  \        V\        4      '       d   V P                  P                  V4      pM\        P
                  ! V4      p VP                  4       '       g-   \        P                  ! V P                  R,          RRV/R7      hV#   \        P                  \        \        3 d.    \        P                  ! T P                  R,          RRT/R7      hi ; iNr+  r   rc  )r   floatr  create_decimal_from_floatr  DecimalInvalidOperationr   r   r   r[  r   	is_finite)rn   r   decimal_values   && rQ   rK  DecimalField.to_python  s    =L
	%'' $ F Fu M ' 6 &&((,,##I.' 
  (()Z@ 	,,##I.' 	s   1B B AC"c                   < \         SV `  WV4      pVP                  P                  V P	                  V4      V P
                  V P                  4      # rU   )r   r  rr  adapt_decimalfield_valuerK  r  r  rn   r   r   r  r^   s   &&&&rQ   r  DecimalField.get_db_prep_value(  sE    )%XF~~66NN5!4??D4G4G
 	
rP   c                D   < \         SV `  V4      pV P                  V4      # rU   r:  r;  s   &&rQ   r  DecimalField.get_prep_value.  rk  rP   c           
     x   < \         SV `  ! R/ R V P                  RV P                  R\        P
                  /VCB # )r  r  r  rI   )r   r  r  r  r   r2   r  s   &,rQ   r  DecimalField.formfield2  sH    w  
doo $"5"5e00 	
 	
rP   )r  r  )NNNNr  )rK   rL   rM   rN   r  rl   rN  r#  r   r   r  r  r   r#   r   r  r  ry  rK  r  r  r  rO   r&  r'  r(  s   @@rQ   r2   r2     s     !1FG $%K	700	 
 
 5 5(,
%
 
rP   c                      a a ] tR tRt oRtRtR]! R4      /t]! R4      tR t	R t
RR	 ltV 3R
 ltR tV 3R ltRtVtV ;t# )r3   i=  z
Store timedelta objects.

Use interval on PostgreSQL, INTERVAL DAY TO SECOND on Oracle, and bigint
of microseconds on other databases.
Fr+  u]   “%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[.uuuuuu] format.Durationc                    R # )r3   rI   rm   s   &rQ   ry  DurationField.get_internal_typeN  r  rP   c                    Vf   V# \        V\        P                  4      '       d   V#  \        V4      pVe   V#  \
        P                  ! V P                  R,          RRV/R7      h  \         d     L9i ; ir  )r   r  r  r   r   r   r[  r   rn   r   r  s   && rQ   rK  DurationField.to_pythonQ  s    =LeX//00L	#E*F ! " ((	*U#
 	
  		s   A( (A65A6c                `    VP                   P                  '       d   V# Vf   R # \        V4      # rU   )r   has_native_duration_fieldr    r  s   &&&&rQ   r  DurationField.get_db_prep_valued  s,    888L=$U++rP   c                   < . pVP                   P                  '       g&   VP                  VP                  P                  4       V\
        SV `  V4      ,           # rU   )r   r0  r   rr  convert_durationfield_valuer   r  )rn   r   
convertersr^   s   && rQ   r  DurationField.get_db_convertersk  sG    
""<<<jnnHHIEG5jAAArP   c                F    V P                  V4      pVf   R# \        V4      # r  )r  r!   r  s   && rQ   r  DurationField.value_to_stringq  s&    $$S)[r:oc&::rP   c                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   r3   r  s   &,rQ   r  DurationField.formfieldu  r  rP   rI   r  )rK   rL   rM   rN   r  r  rl   rN  r#  ry  rK  r  r  r  r  rO   r&  r'  r(  s   @@rQ   r3   r3   =  sX      "11
 J-K
&,B;
 
rP   c                   t   a a ] tR tRt o]P
                  .t]! R4      tV 3R lt	V 3R lt
V 3R ltRtVtV ;t# )r4   i~  zEmail addressc                L   < VP                  R ^4       \        SV `  ! V/ VB  R# rw   N
setdefaultr   r   rn   r"  r   r^   s   &*,rQ   r   EmailField.__init__  s%    ,,$)&)rP   c                .   < \         SV `  4       w  rr4WW43# rU   r   r  rq  s   &    rQ   r  EmailField.deconstruct  s"    #(7#6#8 D 4''rP   c                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   r4   r  s   &,rQ   r  EmailField.formfield  s4     w  
e..
 	
rP   rI   )rK   rL   rM   rN   r   validate_emailrV  rl   r#  r   r  r  rO   r&  r'  r(  s   @@rQ   r4   r4   ~  s2     $334O$K*
(
 
rP   c                      a a ] tR tRt o]! R4      tRV 3R lltV 3R ltR tV 3R lt	V 3R lt
V 3R ltR	 tR
tVtV ;t# )r7   i  z	File pathc                   < W4VuV n         V n        V n        WguV n        V n        VP                  R ^d4       \        S	V `  ! W3/ VB  R# r<  )r   match	recursiveallow_filesallow_foldersr>  r   r   )
rn   rt   rs   r   rI  rJ  rK  rL  r   r^   s
   &&&&&&&&,rQ   r   FilePathField.__init__  sK     15Y-	4:t~/:,$,,,6v6rP   c                L   < . \         SV `  ! R/ VB OV P                  ! R/ VB O# r   )r   r    _check_allowing_files_or_foldersr  s   &,rQ   r   FilePathField.check  s7    
W]$V$
22<V<
 	
rP   c                    V P                   '       g-   V P                  '       g   \        P                  ! R V RR7      .# . # )zMFilePathFields must have either 'allow_files' or 'allow_folders' set to True.zfields.E140r   )rK  rL  r   r   r   s   &,rQ   rO  .FilePathField._check_allowing_files_or_folders  sA    (:(:(:#$	  	rP   c                  < \         SV `  4       w  rr4V P                  R 8w  d   V P                  VR&   V P                  e   V P                  VR&   V P                  RJd   V P                  VR&   V P
                  RJd   V P
                  VR&   V P                  RJd   V P                  VR&   VP                  R4      ^d8X  d   VR WW43# )	rq   r   rI  FrJ  TrK  rL  rw   )r   r  r   rI  rJ  rK  rL  r   rq  s   &    rQ   r  FilePathField.deconstruct  s    #(7#6#8 D99?!YYF6N::!"jjF7O>>&"&..F;4'$($4$4F=!U*&*&8&8F?#::l#s*|$4''rP   c                D   < \         SV `  V4      pVf   R # \        V4      # rU   r   r  r   r;  s   &&rQ   r  FilePathField.get_prep_value  $    &u-=5zrP   c                  < \         SV `  ! R/ R \        V P                  4      '       d   V P                  4       MV P                  RV P                  RV P
                  R\        P                  RV P                  RV P                  /VCB # )r   rI  rJ  r  rK  rL  rI   )
r   r  r   r   rI  rJ  r   r7   rK  rL  r  s   &,rQ   r  FilePathField.formfield  s{    w  

x		':':				T^^e11t//!3!3 

 
	
rP   c                    R # )r7   rI   rm   s   &rQ   ry  FilePathField.get_internal_type  r  rP   )rK  rL  rI  r   rJ  )NNrq   NFTF)rK   rL   rM   rN   rl   r#  r   r   rO  r  r  r  ry  rO   r&  r'  r(  s   @@rQ   r7   r7     s6     K.K7 

( 
 rP   c                   r   a a ] tR tRt oRtR]! R4      /t]! R4      tV 3R ltR t	R t
V 3R	 ltR
tVtV ;t# )r8   i  Fr+  u&   “%(value)s” value must be a float.zFloating point numberc                   < \         SV `  V4      pVf   R #  \        V4      #   \        \        3 d+   pTP                  RT P                  : RT: R24      ThR p?ii ; iNzField 'z' expected a number but got r   )r   r  r  r   r   r^   rs   rn   r   r_  r^   s   && rQ   r  FloatField.get_prep_value  s^    &u-=	<:& 	++>BiiO	   
# A%AAc                    R # )r8   rI   rm   s   &rQ   ry  FloatField.get_internal_type  s    rP   c                    Vf   V#  \        V4      #   \        \        3 d.    \        P                  ! T P
                  R,          RRT/R7      hi ; ir  )r  r   r   r   r[  r   r  s   &&rQ   rK  FloatField.to_python  s[    =L	<:& 	,,##I.' 		   
 >Ac                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   r8   r  s   &,rQ   r  FloatField.formfield  s2    w  
e..
 	
rP   rI   )rK   rL   rM   rN   r  rl   rN  r#  r  ry  rK  r  rO   r&  r'  r(  s   @@rQ   r8   r8     sD     !1=> +,K	

 
rP   c                      a a ] tR tRt oRtR]! R4      /t]! R4      tV 3R ltR t	]
V 3R l4       tV 3R	 ltRV 3R
 lltR tR tV 3R ltRtVtV ;t# )r;   i  Fr+  u)   “%(value)s” value must be an integer.Integerc                H   < . \         SV `  ! R/ VB OV P                  4       O# r   )r   r   _check_max_length_warningr  s   &,rQ   r   IntegerField.check  s2    
W]$V$
++-
 	
rP   c                    V P                   e7   \        P                  ! RV P                  P                  ,          RV RR7      .# . # )Nz*'max_length' is ignored when used with %s.zRemove 'max_length' from fieldzfields.W122r   )rw   r   r   r^   rK   rm   s   &rQ   rm  &IntegerField._check_max_length_warning  sG    ??&@nn--.9$  	rP   c                (  <aa \         SV `  pV P                  4       p\        P                  P                  V4      w  ooSef   \        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       g&   VP                  \        P                  ! S4      4       Sef   \        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       g&   VP                  \        P                  ! S4      4       V# )Nc              3      <"   T Fa  p\        V\        P                  4      ;'       d;    \        VP                  4      '       d   VP	                  4       MVP                  S8  x  Kc  	  R # 5irU   )r   r   MinValueValidatorr   limit_value)r   r   	min_values   & rQ   r   *IntegerField.validators.<locals>.<genexpr>/  j      -
 )	 9j&B&BC    	 5 566 ))+".. )   %A,AA,TFc              3      <"   T Fa  p\        V\        P                  4      ;'       d;    \        VP                  4      '       d   VP	                  4       MVP                  S8*  x  Kc  	  R # 5irU   )r   r   MaxValueValidatorr   rt  )r   r   	max_values   & rQ   r   rv  <  rw  rx  )
r   r   ry  r   rr  integer_field_rangeanyr   rs  rz  )rn   validators_internal_typer{  ru  r^   s   &  @@rQ   r   IntegerField.validators(  s     g(..0)~~AA-P	9  -
 )-
 -
 )-
 *
 *
 z;;IFG  -
 )-
 -
 )-
 *
 *
 z;;IFGrP   c                   < \         SV `  V4      pVf   R #  \        V4      #   \        \        3 d+   pTP                  RT P                  : RT: R24      ThR p?ii ; ir_  )r   r  rO  r   r   r^   rs   r`  s   && rQ   r  IntegerField.get_prep_valueK  s^    &u-=	u::& 	++>BiiO	rb  c                v   < \         SV `  WV4      pVP                  P                  WP	                  4       4      # rU   )r   r  rr  adapt_integerfield_valuery  r"  s   &&&&rQ   r  IntegerField.get_db_prep_valueV  s2    )%XF~~66u>T>T>VWWrP   c                    R # )r;   rI   rm   s   &rQ   ry  IntegerField.get_internal_typeZ  r/  rP   c                    Vf   V#  \        V4      #   \        \        3 d.    \        P                  ! T P
                  R,          RRT/R7      hi ; ir  )rO  r   r   r   r[  r   r  s   &&rQ   rK  IntegerField.to_python]  s[    =L	u::& 	,,##I.' 	rg  c                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   r;   r  s   &,rQ   r  IntegerField.formfieldi  s2    w  
e00
 	
rP   rI   r  )rK   rL   rM   rN   r  rl   rN  r#  r   rm  r#   r   r  r  ry  rK  r  rO   r&  r'  r(  s   @@rQ   r;   r;     sg     !1@A I,K
    D	X

 
rP   c                   L   a a ] tR tRt o]! R4      tRtR tV 3R ltRt	Vt
V ;t# )r+   ir  zBig (8 byte) integerl    c                    R # )r+   rI   rm   s   &rQ   ry  !BigIntegerField.get_internal_typev  s     rP   c                x   < \         SV `  ! R/ R \        P                  ) ^,
          R\        P                  /VCB # )ru  r{  rI   )r   r  r+   
MAX_BIGINTr  s   &,rQ   r  BigIntegerField.formfieldy  sG    w  
o8881<_77 
 	
rP   rI   )rK   rL   rM   rN   rl   r#  r  ry  r  rO   r&  r'  r(  s   @@rQ   r+   r+   r  s$     *+K$J!
 
rP   c                   6   a  ] tR tRt o ]! R4      tR tRtV tR# )rC   i  zSmall integerc                    R # )rC   rI   rm   s   &rQ   ry  #SmallIntegerField.get_internal_type  s    "rP   rI   N)	rK   rL   rM   rN   rl   r#  ry  rO   r&  r)  s   @rQ   rC   rC     s     O$K# #rP   c                   t   a a ] tR tRt oRt]! R4      tRRRRRR	/tV 3R
 ltV 3R lt	V 3R lt
R tRtVtV ;t# )r:   i  FzIPv4 addressr   zLIPAddressField has been removed except for support in historical migrations.r   z"Use GenericIPAddressField instead.r   zfields.E900c                2   < ^VR&   \         SV `  ! V/ VB  R# )   rw   Nr   r   r?  s   &*,rQ   r   IPAddressField.__init__  s    !|$)&)rP   c                4   < \         SV `  4       w  rr4VR  WW43# rw   rB  rq  s   &    rQ   r  IPAddressField.deconstruct  (    #(7#6#8 D< 4''rP   c                D   < \         SV `  V4      pVf   R # \        V4      # rU   rV  r;  s   &&rQ   r  IPAddressField.get_prep_value  rX  rP   c                    R # )r:   rI   rm   s   &rQ   ry   IPAddressField.get_internal_type      rP   rI   )rK   rL   rM   rN   r  rl   r#  r   r   r  r  ry  rO   r&  r'  r(  s   @@rQ   r:   r:     sK     !N#K% 	4m$ *(
   rP   c                      a a ] tR tRt oRt]! R4      tR]! R4      /tRV 3R lltV 3R lt	R t
V 3R	 ltR
 tR tRR ltV 3R ltV 3R ltRtVtV ;t# )r9   i  Fz
IP addressr+  z#Enter a valid %(protocol)s address.c                   < W@n         W0n        \        P                  ! W44      V n        \
        VR &   \        SV `  ! W.VO5/ VB  R# r<  )unpack_ipv4protocolr   ip_address_validatorsrV  r$   r   r   )rn   rt   rs   r  r  r"  r   r^   s   &&&&&*,rQ   r   GenericIPAddressField.__init__  sI     ' ","B"B#
  7|=d=f=rP   c                L   < . \         SV `  ! R/ VB OV P                  ! R/ VB O# r   )r   r   _check_blank_and_null_valuesr  s   &,rQ   r   GenericIPAddressField.check  s7    
W]$V$
..88
 	
rP   c                    \        V R R4      '       g.   \        V RR4      '       d   \        P                  ! RV RR7      .# . # )rf   Frg   zaGenericIPAddressFields cannot have blank=True if null=False, as blank values are stored as nulls.zfields.E150r   )r   r   r   r   s   &,rQ   r  2GenericIPAddressField._check_blank_and_null_values  sG    tVU++gu0M0M;$	  	rP   c                   < \         SV `  4       w  rr4V P                  R Jd   V P                  VR&   V P                  R8w  d   V P                  VR&   VP	                  R4      V P
                  8X  d   VR WW43# )Fr  bothr  rw   )r   r  r  r  r   rw   rq  s   &    rQ   r  !GenericIPAddressField.deconstruct  su    #(7#6#8 D5($($4$4F=!==F"!%F:::l#t6|$4''rP   c                    R # )r9   rI   rm   s   &rQ   ry  'GenericIPAddressField.get_internal_type  s    &rP   c                    Vf   R # \        V\        4      '       g   \        V4      pVP                  4       pRV9   d(   \        WP                  V P
                  R,          4      # V# )N:r+  )r   r   stripr%   r  r   r  s   &&rQ   rK  GenericIPAddressField.to_python  s\    =%%%JE%<%'')<)<Y)G  rP   c                j    V'       g   V P                  V4      pVP                  P                  V4      # rU   )r  rr  adapt_ipaddressfield_valuer  s   &&&&rQ   r  'GenericIPAddressField.get_db_prep_value  s*    ''.E~~88??rP   c                   < \         SV `  V4      pVf   R # V'       d   RV9   d    \        WP                  4      # \        V4      #   \        P
                   d     L"i ; i)Nr  )r   r  r%   r  r   r[  r   r;  s   &&rQ   r  $GenericIPAddressField.get_prep_value  s_    &u-=SE\)%1A1ABB 5z -- s   A AAc                `   < \         SV `  ! R/ R V P                  R\        P                  /VCB # )r  r  rI   )r   r  r  r   r9   r  s   &,rQ   r  GenericIPAddressField.formfield  s=    w  
DMMe99 
 	
rP   )rV  r  r  )NNr  Fr  )rK   rL   rM   rN   r  rl   r#  rN  r   r   r  r  ry  rK  r  r  r  rO   r&  r'  r(  s   @@rQ   r9   r9     sX     !L/K'+P)QR>"

('
@
	
 
rP   c                      a a ] tR tRt oR]! R4      R]! R4      /t]! R4      tRRRR	R
R/tV 3R ltV 3R lt	Rt
VtV ;t# )r=   i	  r+  u9   “%(value)s” value must be either None, True or False.r,  z$Boolean (Either True, False or None)r   zHNullBooleanField is removed except for support in historical migrations.r   z0Use BooleanField(null=True, blank=True) instead.r   zfields.E903c                <   < R VR&   R VR&   \         SV `  ! V/ VB  R# )Trf   rg   Nr  r?  s   &*,rQ   r   NullBooleanField.__init__	  s'    vw$)&)rP   c                :   < \         SV `  4       w  rr4VR  VR WW43# )rf   rg   rB  rq  s   &    rQ   r  NullBooleanField.deconstruct	  s.    #(7#6#8 D6N7O4''rP   rI   )rK   rL   rM   rN   rl   rN  r#  r   r   r  rO   r&  r'  r(  s   @@rQ   r=   r=   	  s\     1PQAYZ :;K 	Bm$ *
( (rP   c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )PositiveIntegerRelDbTypeMixini	  c                   < \         SV `  ! R/ VB  \        V R 4      '       g,   \        R V P                  R,           4       R4      V n        R# R# )integer_field_classc              3   V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5irU   )
issubclassr;   )r   parents   & rQ   r   BPositiveIntegerRelDbTypeMixin.__init_subclass__.<locals>.<genexpr>$	  s#      "1!&,7 F"1s   )
):   NNNrI   )r   __init_subclass__r   nextrP  r  )r   r   r^   s   &,rQ   r  /PositiveIntegerRelDbTypeMixin.__init_subclass__ 	  sM    !+F+s122&*"%++b/
 'C# 3rP   c                    VP                   P                  '       d   V P                  V4      # V P                  4       P                  VR7      # )aU  
Return the data type that a related field pointing to this field should
use. In most cases, a foreign key pointing to a positive integer
primary key will have an integer column data type but some databases
(e.g. MySQL) have an unsigned integer type. In that case
(related_fields_match_type=True), the primary key should return its
db_type.
r   )r   related_fields_match_typer  r  rt  s   &&rQ   r  )PositiveIntegerRelDbTypeMixin.rel_db_type,	  sB     888<<
++++-555LLrP   rI   )	rK   rL   rM   rN   r  r  rO   r&  r'  r(  s   @@rQ   r  r  	  s     
M MrP   r  c                   H   a a ] tR tRt o]! R4      tR tV 3R ltRtVt	V ;t
# )r>   i;	  zPositive big integerc                    R # )r>   rI   rm   s   &rQ   ry  )PositiveBigIntegerField.get_internal_type>	  s    (rP   c                ,   < \         SV `  ! R/ R ^ /VCB # ru  rI   r   r  r  s   &,rQ   r  !PositiveBigIntegerField.formfieldA	  ,    w  
Q
 	
rP   rI   rK   rL   rM   rN   rl   r#  ry  r  rO   r&  r'  r(  s   @@rQ   r>   r>   ;	  s     *+K)
 
rP   c                   H   a a ] tR tRt o]! R4      tR tV 3R ltRtVt	V ;t
# )r?   iJ	  zPositive integerc                    R # )r?   rI   rm   s   &rQ   ry  &PositiveIntegerField.get_internal_typeM	  s    %rP   c                ,   < \         SV `  ! R/ R ^ /VCB # r  r  r  s   &,rQ   r  PositiveIntegerField.formfieldP	  r  rP   rI   r  r(  s   @@rQ   r?   r?   J	  s     &'K&
 
rP   c                   H   a a ] tR tRt o]! R4      tR tV 3R ltRtVt	V ;t
# )r@   iY	  zPositive small integerc                    R # )r@   rI   rm   s   &rQ   ry  +PositiveSmallIntegerField.get_internal_type\	  s    *rP   c                ,   < \         SV `  ! R/ R ^ /VCB # r  r  r  s   &,rQ   r  #PositiveSmallIntegerField.formfield_	  r  rP   rI   r  r(  s   @@rQ   r@   r@   Y	  s     ,-K+
 
rP   c                      a a ] tR tRt o]P
                  .t]! R4      tR^2RRRR/V 3R llt	V 3R	 lt
R
 tV 3R ltRtVtV ;t# )rA   ih	  zSlug (up to %(max_length)s)rw   r   Tallow_unicodeFc                  < W0n         V P                   '       d   \        P                  .V n        \        SV `  ! VR VRV/VB  R# )rw   r   N)r  r   validate_unicode_slugrV  r   r   )rn   rw   r   r  r"  r   r^   s   &$$$*,rQ   r   SlugField.__init__l	  sD     +'1'G'G&HD#$S:SSFSrP   c                   < \         SV `  4       w  rr4VP                  R 4      ^28X  d   VR  V P                  RJ d   RVR&   MVR V P                  RJd   V P                  VR&   WW43# )rw   Fr   r  )r   r  r   r   r  rq  s   &    rQ   r  SlugField.deconstructt	  su    #(7#6#8 D::l#r)|$==E!!&F:z"U*&*&8&8F?#4''rP   c                    R # )rA   rI   rm   s   &rQ   ry  SlugField.get_internal_type	  rd  rP   c                `   < \         SV `  ! R/ R \        P                  RV P                  /VCB # )r  r  rI   )r   r  r   rA   r  r  s   &,rQ   r  SlugField.formfield	  s=    w  
eoo!3!3 
 	
rP   )r  rV  )rK   rL   rM   rN   r   validate_slugrV  rl   r#  r   r  ry  r  rO   r&  r'  r(  s   @@rQ   rA   rA   h	  sT     $22312KT "T-1TAFT
(
 
rP   c                      a a ] tR tRt o]! R4      tRR/V 3R lltV 3R ltR tV 3R lt	R	 t
R
 tV 3R ltV 3R ltV 3R ltR tRtVtV ;t# )rD   i	  Textr@  Nc               4   < \         SV `  ! V/ VB  Wn        R # rU   )r   r   r@  rC  s   &$*,rQ   r   TextField.__init__	  s    $)&)(rP   c                   < VP                  R 4      ;'       g    . p. \        SV `  ! R/ VB OV P                  V4      O# rH  )r   r   r   rI  rK  s   &, rQ   r   TextField.check	  sJ    JJ{+11r	
W]$V$
%%i0
 	
rP   c           	        . pV F  p\         P                  ! W0P                  4      '       g   K+  \        V,          pV P                  f   KH  RV P                  P
                  P                  9   d   Ko  VP                  P                  '       d   K  VP                  \        P                  ! RVP                  ,          V RR7      4       K  	  V# )Nsupports_collation_on_textfieldz7%s does not support a database collation on TextFields.rS  r   )r   r   r   r   r@  rW   r   r   r  r   r   r   r   rT  s   &&   rQ   rI  TextField._check_db_collation	  rV  rP   c                D   < \         SV `  V4      pV P                  VR &   V# r[  r]  r^  s   && rQ   r  TextField.db_parameters	  ra  rP   c                    R # )rD   rI   rm   s   &rQ   ry  TextField.get_internal_type	  rd  rP   c                P    \        V\        4      '       g   Vf   V# \        V4      # rU   rf  r  s   &&rQ   rK  TextField.to_python	  rh  rP   c                D   < \         SV `  V4      pV P                  V4      # rU   r:  r;  s   &&rQ   r  TextField.get_prep_value	  rk  rP   c                   < \         SV `  ! R/ R V P                  /V P                  e   / MR\        P
                  /CVCB # )rw   r  rI   )r   r  rw   r   r   Textarear  s   &,rQ   r  TextField.formfield	  sP     w  
doo12%..7Q 
 	
rP   c                p   < \         SV `  4       w  rr4V P                  '       d   V P                  VR &   WW43# ro  rp  rq  s   &    rQ   r  TextField.deconstruct	  rs  rP   c                     ^ RI Hp V! WV4      # ru  rw  ry  s   &&&& rQ   r  TextField.slice_expression	  r{  rP   ro  )rK   rL   rM   rN   rl   r#  r   r   rI  r  ry  rK  r  r  r  r  rO   r&  r'  r(  s   @@rQ   rD   rD   	  sL     F)K)4 )
,

%

(1 1rP   c                      a a ] tR tRt oRtR]! R4      R]! R4      /t]! R4      tRV 3R lltR	 t	V 3R
 lt
R tR tV 3R ltV 3R ltRR ltR tV 3R ltRtVtV ;t# )rE   i	  Fr+  uV   “%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] format.invalid_timeu]   “%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an invalid time.Timec                z   < W4uV n         V n        V'       g	   V'       d   R VR&   RVR&   \        SV `  ! W3/ VB  R# r  r  r  s   &&&&&,rQ   r   TimeField.__init__	  r  rP   c                j   V P                  4       '       g   . # V P                  p\        V\        P                  4      '       d   RpM[\        V\        P                  4      '       d:   \        4       p\        P                  P                  VP                  4       V4      pM. # V P                  WR7      # )r  N)r  )	r  r{   r   r  timer  combiner  r  )rn   r   r  s   &  rQ   r  "TimeField._check_fix_default_value	  s    
 !!IeX..//Cx}}-- "C %%--chhj%@E I))%)99rP   c                   < \         SV `  4       w  rr4V P                  R Jd   V P                  VR&   V P                  R Jd   V P                  VR&   V P                  '       g   V P                  '       d   VR VR WW43# )Fr  r  rg   r}   r  rq  s   &    rQ   r  TimeField.deconstruct
  s{    #(7#6#8 D==%!%F:E)%)%6%6F>"===D---wz"4''rP   c                    R # )rE   rI   rm   s   &rQ   ry  TimeField.get_internal_type
  rd  rP   c                   Vf   R # \        V\        P                  4      '       d   V# \        V\        P                  4      '       d   VP                  4       #  \        V4      pVe   V#  \
        P                  ! T P                  R,          RRT/R7      h  \         d.    \
        P                  ! T P                  R,          RRT/R7      hi ; i)Nr  r   rc  r+  )r   r  r  r   r   r   r[  r   r-  s   && rQ   rK  TimeField.to_python
  s    =eX]]++LeX..// ::<		&F! " ((	*U#
 	
  	,,##N3#' 	s   B 8Cc                  < V P                   '       g   V P                  '       dM   V'       dE   \        P                  P                  4       P	                  4       p\        WP                  V4       V# \        SV `!  W4      # rU   )	r  r  r  r  r  r  r  r   r  r  s   &&& rQ   r  TimeField.pre_save1
  sY    ===T...3%%))+002ENLL%8L7#N88rP   c                D   < \         SV `  V4      pV P                  V4      # rU   r:  r;  s   &&rQ   r  TimeField.get_prep_value9
  rk  rP   c                j    V'       g   V P                  V4      pVP                  P                  V4      # rU   )r  rr  adapt_timefield_valuer  s   &&&&rQ   r  TimeField.get_db_prep_value=
  r  rP   c                P    V P                  V4      pVf   R# VP                  4       # r  r  r  s   && rQ   r  TimeField.value_to_stringC
  r  rP   c                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   rE   r  s   &,rQ   r  TimeField.formfieldG
  r  rP   r  r  r  )rK   rL   rM   rN   r  rl   rN  r#  r   r  r  ry  rK  r  r  r  r  r  rO   r&  r'  r(  s   @@rQ   rE   rE   	  su     !1*
 	?
	 F)K7:,	(
89%;6
 
rP   c                      a a ] tR tRt o]P
                  ! 4       .t]! R4      tRV 3R llt	V 3R lt
V 3R ltRtVtV ;t# )rF   iP
  URLc                N   < VP                  R ^4       \        SV `  ! W3/ VB  R# r<  r=  )rn   rt   rs   r   r^   s   &&&,rQ   r   URLField.__init__T
  s%    ,,6v6rP   c                `   < \         SV `  4       w  rr4VP                  R 4      ^8X  d   VR  WW43# r  )r   r  r   rq  s   &    rQ   r  URLField.deconstructX
  s9    #(7#6#8 D::l#s*|$4''rP   c                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   rF   r  s   &,rQ   r  URLField.formfield^
  s2     w  
enn
 	
rP   rI   r  )rK   rL   rM   rN   r   URLValidatorrV  rl   r#  r   r  r  rO   r&  r'  r(  s   @@rQ   rF   rF   P
  s4     $1134E(K7(
 
rP   c                      a a ] tR tRt o]! R4      tRR.tV 3R ltV 3R ltR t	V 3R lt
R	 tR
 tV 3R ltRV 3R lltR tR tRtVtV ;t# )r,   ii
  zRaw binary dataNrP   c                   < VP                  R R4       \        SV `  ! V/ VB  V P                  e<   V P                  P                  \        P                  ! V P                  4      4       R# R# )r}   FN)r>  r   r   rw   r   r   rB  r?  s   &*,rQ   r   BinaryField.__init__m
  sU    *e,$)&)??&OO"":#@#@#QR 'rP   c                H   < . \         SV `  ! R/ VB OV P                  4       O# r   )r   r   _check_str_default_valuer  s   &,rQ   r   BinaryField.checks
  s(    K((K4+H+H+JKKrP   c                    V P                  4       '       d;   \        V P                  \        4      '       d   \        P
                  ! R V RR7      .# . # )zDBinaryField's default cannot be a string. Use bytes content instead.zfields.E170r   )r  r   r{   r   r   r   rm   s   &rQ   r2  $BinaryField._check_str_default_valuev
  sI    *T\\3"?"?'$	  	rP   c                d   < \         SV `  4       w  rr4V P                  '       d   R VR&   MVR WW43# )Tr}   )r   r  r}   rq  s   &    rQ   r  BinaryField.deconstruct
  s;    #(7#6#8 D===!%F:z"4''rP   c                    R # )r,   rI   rm   s   &rQ   ry  BinaryField.get_internal_type
  s    rP   c                8    VP                   P                  V4      # rU   )rr  binary_placeholder_sql)rn   r   r  r   s   &&&&rQ   get_placeholderBinaryField.get_placeholder
  s    ~~44U;;rP   c                   < V P                  4       '       d(   \        V P                  4      '       g   V P                  # \        SV `  4       pVR 8X  d   R# V# )rq   rP   )r  r   r{   r   rF  )rn   r{   r^   s   & rQ   rF  BinaryField.get_default
  sF    ht||&<&<<<'%'b=rP   c                f   < \         SV `  WV4      pVe   VP                  P                  V4      # V# rU   )r   r  DatabaseBinaryr"  s   &&&&rQ   r  BinaryField.get_db_prep_value
  s6    )%XF&&--e44rP   c                T    \        V P                  V4      4      P                  R4      # )z#Binary data is serialized as base64ascii)r   r  decoder;  s   &&rQ   r  BinaryField.value_to_string
  s#    //45<<WEErP   c                x    \        V\        4      '       d$   \        \        VP	                  R 4      4      4      # V# )rE  )r   r   
memoryviewr   encoder  s   &&rQ   rK  BinaryField.to_python
  s-    eS!!iW(=>??rP   rI   r  )rK   rL   rM   rN   rl   r#  rZ  r   r   r2  r  ry  r<  rF  r  r  rK  rO   r&  r'  r(  s   @@rQ   r,   r,   i
  sS     %&K#;LSL
(<F rP   c                      a a ] tR tRt oR]! R4      /t]! R4      tRtRV 3R lltV 3R lt	R t
V 3R	 ltRR
 ltR tV 3R ltRtVtV ;t# )rG   i
  r+  u$   “%(value)s” is not a valid UUID.zUniversally unique identifierFc                4   < ^ VR&   \         SV `  ! V3/ VB  R# )    rw   Nr  )rn   rt   r   r^   s   &&,rQ   r   UUIDField.__init__
  s    !|00rP   c                4   < \         SV `  4       w  rr4VR  WW43# r  rB  rq  s   &    rQ   r  UUIDField.deconstruct
  r  rP   c                    R # )rG   rI   rm   s   &rQ   ry  UUIDField.get_internal_type
  rd  rP   c                D   < \         SV `  V4      pV P                  V4      # rU   r:  r;  s   &&rQ   r  UUIDField.get_prep_value
  rk  rP   c                    Vf   R # \        V\        P                  4      '       g   V P                  V4      pVP                  P
                  '       d   V# VP                  # rU   )r   uuidUUIDrK  r   has_native_uuid_fieldhexr  s   &&&&rQ   r  UUIDField.get_db_prep_value
  sJ    =%++NN5)E444LyyrP   c                4   VeS   \        V\        P                  4      '       g3   \        V\        4      '       d   RMRp \        P                  ! R/ W!/B # V#   \        \
        3 d.    \        P                  ! T P                  R,          RRT/R7      hi ; i)NrO  rZ  r+  r   rc  rI   )	r   rW  rX  rO  r  r   r   r[  r   )rn   r   
input_forms   && rQ   rK  UUIDField.to_python
  s    Ztyy%A%A",UC"8"8eJyy7J#677  #J/  00''	2"#U+ s    A >Bc                H   < \         SV `  ! R/ R \        P                  /VCB # r  )r   r  r   rG   r  s   &,rQ   r  UUIDField.formfield
  r  rP   rI   rU   r  )rK   rL   rM   rN   rl   rN  r#  r  r   r  ry  r  r  rK  r  rO   r&  r'  r(  s   @@rQ   rG   rG   
  sS     1;< 34K!1(
%
 
rP   c                   v   a a ] tR tRt oRtV 3R ltV 3R ltR tV 3R ltR t	RR lt
V 3R	 ltR
 tRtVtV ;t# )AutoFieldMixini
  Tc                2   < R VR&   \         SV `  ! V/ VB  R# )Trg   Nr  r?  s   &*,rQ   r   AutoFieldMixin.__init__
  s    w$)&)rP   c                H   < . \         SV `  ! R/ VB OV P                  4       O# r   )r   r   _check_primary_keyr  s   &,rQ   r   AutoFieldMixin.check
  s2    
W]$V$
$$&
 	
rP   c                ^    V P                   '       g   \        P                  ! R V RR7      .# . # )z%AutoFields must set primary_key=True.zfields.E100r   )rv   r   r   rm   s   &rQ   rf  !AutoFieldMixin._check_primary_key
  s4    ;$  IrP   c                >   < \         SV `  4       w  rr4VR  RVR&   WW43# )rg   Trv   rB  rq  s   &    rQ   r  AutoFieldMixin.deconstruct
  s1    #(7#6#8 D7O $}4''rP   c                    R # rU   rI   rm  s   &&&rQ   rj  AutoFieldMixin.validate
  s    rP   c                n    V'       g-   V P                  V4      pVP                  P                  V4      pV# rU   )r  rr  validate_autopk_valuer  s   &&&&rQ   r   AutoFieldMixin.get_db_prep_value  s.    ''.ENN88?ErP   c                   < VP                   P                  '       d'   \        R VP                   P                  ,          4      h\        SV `  ! W3/ VB  WP                   n        R# )z7Model %s can't have more than one auto-generated field.N)rW   
auto_fieldr   r   r   r  r  s   &&&,rQ   r  "AutoFieldMixin.contribute_to_class  sQ    99I))//"  	#C88#		rP   c                    R # rU   rI   r   s   &,rQ   r  AutoFieldMixin.formfield  s    rP   rI   r  )rK   rL   rM   rN   r  r   r   rf  r  rj  r  r  r  rO   r&  r'  r(  s   @@rQ   rb  rb  
  s7     L*

($ rP   rb  c                   R   a a ] tR tRt oRt]R 4       tV 3R ltV 3R ltRt	Vt
V ;t# )AutoFieldMetai  a{  
Metaclass to maintain backward inheritance compatibility for AutoField.

It is intended that AutoFieldMixin become public API when it is possible to
create a non-integer automatically-generated field using column defaults
stored in the database.

In many areas Django also relies on using isinstance() to check for an
automatically-generated field as a subclass of AutoField. A new flag needs
to be implemented on Field to be used instead.

When these issues have been addressed, this metaclass could be used to
deprecate inheritance from AutoField and use of isinstance() with AutoField
for detecting automatically-generated fields.
c                    \         \        3# rU   )r*   rB   rm   s   &rQ   _subclassesAutoFieldMeta._subclasses&  s    n--rP   c                \   < \        WP                  4      ;'       g    \        SV `  V4      # rU   )r   ry  r   __instancecheck__)rn   rG  r^   s   &&rQ   r|  AutoFieldMeta.__instancecheck__*  /    ($4$45 
 
9R:
 	
rP   c                \   < \        WP                  4      ;'       g    \        SV `  V4      # rU   )r  ry  r   __subclasscheck__)rn   subclassr^   s   &&rQ   r  AutoFieldMeta.__subclasscheck__/  r~  rP   rI   )rK   rL   rM   rN   r  r"  ry  r|  r  rO   r&  r'  r(  s   @@rQ   rw  rw    s-       . .


 
rP   rw  c                   ,   a  ] tR tRt o R tR tRtV tR# )r(   i5  c                    R # )r(   rI   rm   s   &rQ   ry  AutoField.get_internal_type6  rd  rP   c                6    \        4       P                  VR 7      # r  )r;   r  rt  s   &&rQ   r  AutoField.rel_db_type9  s    ~%%%<<rP   rI   NrK   rL   rM   rN   ry  r  rO   r&  r  s   @rQ   r(   r(   5  s     = =rP   )	metaclassc                   ,   a  ] tR tRt o R tR tRtV tR# )r*   i=  c                    R # )r*   rI   rm   s   &rQ   ry  BigAutoField.get_internal_type>  r/  rP   c                6    \        4       P                  VR 7      # r  )r+   r  rt  s   &&rQ   r  BigAutoField.rel_db_typeA  s     ((J(??rP   rI   Nr  r  s   @rQ   r*   r*   =  s     @ @rP   c                   ,   a  ] tR tRt o R tR tRtV tR# )rB   iE  c                    R # )rB   rI   rm   s   &rQ   ry   SmallAutoField.get_internal_typeF  r  rP   c                6    \        4       P                  VR 7      # r  )rC   r  rt  s   &&rQ   r  SmallAutoField.rel_db_typeI  s     "**j*AArP   rI   Nr  r  s   @rQ   rB   rB   E  s      B BrP   )rq   z	---------)jr5  r  r  r  rW  r  base64r   r   collections.abcr   	functoolsr   r   djangor   django.appsr	   django.confr
   django.corer   r   r   	django.dbr   r   r   django.db.models.constantsr   django.db.models.query_utilsr   r   django.db.utilsr   django.utilsr   django.utils.choicesr   r   r   r   django.utils.datastructuresr   django.utils.dateparser   r   r   r   django.utils.durationr    r!   django.utils.functionalr"   r#   django.utils.ipv6r$   r%   django.utils.textr&   django.utils.translationr'   rl   __all__r5   r<   r)   r\   ra   rc   r6   r-   r.   r/   r  r  r  r0   r1   r2   r3   r4   r7   r8   r;   r+   rC   r:   r9   r=   r  r>   r?   r@   rA   rD   rE   rF   r,   rG   rb  r  rw  r(   r*   rB   rI   rP   rQ   <module>r     s         ' $ 3     6 6 5 5 1 O - !  4  I < I & 6!!! ! 	!
 ! ! ! !! ! ! ! ! ! ! !  !!" #!$ %!& '!( )!* +!, -!. /!0 1!2  3!4 5!6 7!8 9!: ;!< =!> ?!@ A!H	 		 	 '' M( LH LH LH^ +;5 +;\t1 t1n  %F FRD
"E D
NJ
I J
ZX
5 X
v>
E >
B
 
4IE IX'
 '
Ta
5 a
H
l 
"# # U  >X
E X
v(| (6M M8
;_ 

8, 

 =?P 
"
	 "
JJ1 J1Zs
"E s
l
y 
2=% =@4
 4
n2 2j
D 
@= =@>? @B^%6 BrP   