§
    Ï“Ùhì‡ ã                   ó€  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	Z	d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZ d d	lmZmZmZmZmZmZ d d
lmZm Z m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@mAZA d dlBmCZCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZK d dlLmMZN  G d„ d¦  «        ZO eO¦   «         ZPd„ ZQd„ ZR G d„ deS¦  «        ZT G d „ d!¦  «        ZU G d"„ d#¦  «        ZV G d$„ d%eCeT¬&¦  «        ZWd,d'„ZXd(„ ZYd)„ ZZd*„ Z[d+e[_\        dS )-é    N)Úpartialmethod)Úchain)Úsync_to_async)Úapps)Úsettings)Úchecks)ÚNON_FIELD_ERRORSÚFieldDoesNotExistÚ
FieldErrorÚMultipleObjectsReturnedÚObjectDoesNotExistÚValidationError)ÚDJANGO_VERSION_PICKLE_KEYÚDatabaseErrorÚ
connectionÚconnectionsÚrouterÚtransaction)ÚNOT_PROVIDEDÚExpressionWrapperÚIntegerFieldÚMaxÚValue©Ú
LOOKUP_SEP)ÚCheckConstraintÚUniqueConstraint)ÚCASCADEÚ	Collector)ÚRawSQL)ÚForeignObjectRelÚOneToOneFieldÚlazy_related_operationÚresolve_relation)ÚCoalesce)ÚManager)ÚOptions)ÚFÚQ)Úclass_preparedÚ	post_initÚ	post_saveÚpre_initÚpre_save)Ú
AltersDataÚmake_model_tuple)Ú	force_str)Úmake_hashable)ÚcapfirstÚget_text_list)Úgettext_lazyc                   ó   — e Zd Zd„ Zd„ ZdS )ÚDeferredc                 ó   — dS ©Nz<Deferred field>© ©Úselfs    úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/django/db/models/base.pyÚ__repr__zDeferred.__repr__;   ó   € Ø!Ð!ó    c                 ó   — dS r9   r:   r;   s    r=   Ú__str__zDeferred.__str__>   r?   r@   N)Ú__name__Ú
__module__Ú__qualname__r>   rB   r:   r@   r=   r7   r7   :   s2   € € € € € ð"ð "ð "ð"ð "ð "ð "ð "r@   r7   c                 ó>   — t          | |||j        ›d| ›�dœ¦  «        S )zï
    Create exception subclass. Used by ModelBase below.

    The exception is created in a way that allows it to be pickled, assuming
    that the returned exception class will be added as an attribute to the
    'attached_to' class.
    ú.)rD   rE   )ÚtyperE   )ÚnameÚbasesÚmoduleÚattached_tos       r=   Úsubclass_exceptionrM   E   s<   € õ ØØà Ø'2Ô'?Ð'?Ð'?ÀÀÐFð	
ð 	
ñô ð r@   c                 óL   — t          j        | ¦  «         ot          | d¦  «        S )NÚcontribute_to_class)ÚinspectÚisclassÚhasattr)Úvalues    r=   Ú_has_contribute_to_classrT   W   s%   € åŒ˜uÑ%Ô%Ð%ÐO­'°%Ð9NÑ*OÔ*OÐOr@   c                   óZ   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	ˆ xZ
S )Ú	ModelBasezMetaclass for all models.c                 ó°  •— t          ¦   «         j        }d„ |D ¦   «         }|s || |||¦  «        S |                     d¦  «        }d|i}|                     dd ¦  «        }	|	�|	|d<   |                     dd ¦  «        }
i }|                     ¦   «         D ]\  }}t	          |¦  «        r|||<   Œ|||<   Œ  || |||fi |¤Ž}t          |
dd¦  «        }|
pt          |dd ¦  «        }t          |dd ¦  «        }d }t          j        |¦  «        }t          |dd ¦  «        €"|€|st          d	|›d
|›d�¦  «        ‚n|j	        }| 
                    dt          ||¦  «        ¦  «         |s×| 
                    dt          dt          d„ |D ¦   «         ¦  «        pt          f||¬¦  «        ¦  «         | 
                    dt          dt          d„ |D ¦   «         ¦  «        pt          f||¬¦  «        ¦  «         |rI|j        sBt#          |d¦  «        s|j        |j        _        t#          |d¦  «        s|j        |j        _        |j        j        }|r#|r!|j        rt/          |›d|j        ›d�¦  «        ‚|                     ¦   «         D ]\  }}| 
                    ||¦  «         Œt1          |j        j        |j        j        |j        j        ¦  «        }d„ |D ¦   «         }|r°d }d„ |D ¦   «         D ]\}|j        j        r|j        j        rt/          d|z  ¦  «        ‚Œ-|€|}Œ2|j        j        |j        j        urt/          d|z  ¦  «        ‚Œ]|€t/          d|z  ¦  «        ‚|j                             |¦  «         |j        j        |j        _        n||j        _        i }t?          |g|z   ¦  «        D ]‚}t#          |d¦  «        sŒ||k    r|j        j        sŒ&|j        j        D ]O}tA          |tB          ¦  «        r8|j"        j#        r,tI          ||j"        j%        ¦  «        }||tM          |¦  «        <   ŒPŒƒtO          ¦   «         }| (                    ¦   «         D �]–}||vst#          |d¦  «        s| )                    |j*        ¦  «         Œ2|j        j        |j        j        z   }|j        j        sø|D ]H}|j+        |v r#tY          d|j+        ›d|›d|j-        ›d
�¦  «        ‚| .                    |j+        ¦  «         ŒI|j        j        }tM          |¦  «        }||v r	||         }nu|sqd|j        j/        z  }tC          |t`          |dd¬¦  «        }||v rtY          d |›d!|›d"|j-        ›d#�¦  «        ‚t#          ||¦  «        s| 
                    ||¦  «         nd }||j        j1        |<   n½|j        j1         2                    ¦   «         } |D ]}}|j+        |vrr|j+        |j*        vrd|j+        |vr[te          j3        |¦  «        }!| 
                    |j+        |!¦  «         |j4        r%|                      ¦   «         D ]\  }}"||"k    r|!| |<   ŒŒ~|j        j1         )                    | ¦  «         |j        j        D ]}}|j+        |v r0|j        j        s#tY          d|j+        ›d|›d|j-        ›d
�¦  «        ‚Œ;te          j3        |¦  «        }|j        j        sd|_5        | 
                    |j+        |¦  «         Œ~�Œ˜d$„ |j        j6        D ¦   «         |j        _6        |rd|
_        |
|_7        |S | 8                    ¦   «          |j        j         9                    |j        j:        |¦  «         |S )%Nc                 ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r:   )Ú
isinstancerV   )Ú.0Úbs     r=   ú
<listcomp>z%ModelBase.__new__.<locals>.<listcomp>d   s'   € Ð@Ð@Ð@˜¥z°!µYÑ'?Ô'?Ð@�1Ð@Ð@Ð@r@   rD   Ú__classcell__ÚMetaÚabstractFÚ_metaÚ	app_labelzModel class rG   zU doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.ÚDoesNotExistc              3   ó\   K  — | ]'}t          |d ¦  «        ¯|j        j        °|j        V — Œ(dS ©r`   N)rR   r`   r_   rb   ©rZ   Úxs     r=   ú	<genexpr>z$ModelBase.__new__.<locals>.<genexpr>•   sW   è è € ð ð àÝ" 1 gÑ.Ô.ðð 89´wÔ7GðØœðð ð ð ð ð r@   )rL   r   c              3   ó\   K  — | ]'}t          |d ¦  «        ¯|j        j        °|j        V — Œ(dS rd   )rR   r`   r_   r   re   s     r=   rg   z$ModelBase.__new__.<locals>.<genexpr>£   sX   è è € ð ð àÝ" 1 gÑ.Ô.ðð 89´wÔ7GðØÔ1ðð ð ð ð ð r@   ÚorderingÚget_latest_byz! cannot proxy the swapped model 'ú'.c                 ó   — h | ]	}|j         ’Œ
S r:   ©rI   ©rZ   Úfs     r=   ú	<setcomp>z$ModelBase.__new__.<locals>.<setcomp>Ê   s   € Ð2Ð2Ð2 !�q”vÐ2Ð2Ð2r@   c                 ó2   — g | ]}t          |d ¦  «        ¯|‘ŒS )r`   )rR   )rZ   Úklss     r=   r\   z%ModelBase.__new__.<locals>.<listcomp>Ï   s'   € ÐKÐKÐK 3µW¸SÀ'Ñ5JÔ5JÐK˜3ÐKÐKÐKr@   zOAbstract base class containing model fields not permitted for proxy model '%s'.zAProxy model '%s' has more than one non-abstract model base class.z6Proxy model '%s' has no non-abstract model base class.zLocal field z
 in class z5 clashes with field of the same name from base class z%s_ptrT)Ú	on_deleterI   Úauto_createdÚparent_linkzAuto-generated field 'z' in class z for parent_link to base class z. clashes with declared field of the same name.c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r:   )ÚcopyÚdeepcopy)rZ   Úidxs     r=   r\   z%ModelBase.__new__.<locals>.<listcomp>a  s/   € ð #
ð #
ð #
Ø#&�DŒM˜#ÑÔð#
ð #
ð #
r@   );ÚsuperÚ__new__ÚpopÚitemsrT   Úgetattrr   Úget_containing_app_configÚRuntimeErrorÚlabelÚadd_to_classr'   rM   Útupler   r   r_   rR   ri   r`   rj   ÚproxyÚswappedÚ	TypeErrorr   Úlocal_fieldsÚlocal_many_to_manyÚprivate_fieldsÚfieldsÚconcrete_modelÚsetup_proxyÚreversedrY   r"   Úremote_fieldru   r$   Úmodelr0   ÚsetÚmroÚupdateÚ__dict__rI   r   rC   ÚaddÚ
model_namer   Úparentsrw   rx   Ú
one_to_oneÚmti_inheritedÚindexesr^   Ú_prepareÚregister_modelra   )$ÚclsrI   rJ   ÚattrsÚkwargsÚ	super_newr–   rK   Ú	new_attrsÚ	classcellÚ	attr_metaÚcontributable_attrsÚobj_nameÚobjÚ	new_classr_   ÚmetaÚ	base_metara   Ú
app_configÚis_proxyÚ
new_fieldsÚfield_namesÚbaseÚparentÚparent_linksÚfieldÚrelatedÚinherited_attributesÚparent_fieldsÚbase_keyÚ	attr_nameÚbase_parentsÚ	new_fieldru   Ú	__class__s$                                      €r=   r{   zModelBase.__new___   sg	  ø€ Ý‘G”G”Oˆ	ð AÐ@˜eÐ@Ñ@Ô@ˆØð 	6Ø�9˜S $¨¨uÑ5Ô5Ð5ð —’˜<Ñ(Ô(ˆØ! 6Ð*ˆ	Ø—I’I˜o¨tÑ4Ô4ˆ	ØÐ Ø)2ˆI�oÑ&Ø—I’I˜f dÑ+Ô+ˆ	ð !ÐØ"Ÿ[š[™]œ]ð 	*ð 	*‰MˆH�cÝ'¨Ñ,Ô,ð *Ø03Ð# HÑ-Ð-à&)�	˜(Ñ#Ð#Ø�I˜c 4¨°	ÐDÐD¸VÐDÐDˆ	å˜9 j°%Ñ8Ô8ˆØÐ<�G I¨v°tÑ<Ô<ˆÝ˜I w°Ñ5Ô5ˆ	àˆ	õ Ô3°FÑ;Ô;ˆ
å�4˜ dÑ+Ô+Ð3ØÐ!Øð Ý&˜,ð .4¨V¨V°T°T°Tð;ñô ð ðð 'Ô,�	à×Ò˜w­°°iÑ(@Ô(@ÑAÔAÐAØð $	LØ×"Ò"ØÝ"Ø"Ýð ð à!(ðñ ô ñ ô ð -õ
 +Ð,ØØ )ð
ñ 
ô 
ñô ð ð ×"Ò"Ø)Ý"Ø-Ýð ð à!(ðñ ô ñ ô ð 2õ
 0Ð1ØØ )ð
ñ 
ô 
ñô ð ð ð L Ô!3ð Lõ ˜t ZÑ0Ô0ð BØ/8Ô/A�I”OÔ,Ý˜t _Ñ5Ô5ð LØ4=Ô4K�I”OÔ1à”?Ô(ˆð ð 	˜	ð 	 iÔ&7ð 	ÝØ=A¸T¸TÀ9ÔCTÐCTÐCTÐUñô ð ð 1×6Ò6Ñ8Ô8ð 	2ð 	2‰MˆH�cØ×"Ò" 8¨SÑ1Ô1Ð1Ð1õ ØŒOÔ(ØŒOÔ.ØŒOÔ*ñ
ô 
ˆ
ð
 3Ð2 zÐ2Ñ2Ô2ˆð ð 	7ØˆDØKÐK¨'ÐKÑKÔKð ð �Ø”<Ô(ð !Ø”|Ô*ð !Ý'ð>Ø@DñEñô ð ð
 !Ø�<Ø!�D�DØ”\Ô0¸¼
Ô8QÐQÐQÝ#ð!Ø#'ñ(ñô ð ð Rð
 ˆ|ÝØLÈtÑSñô ð ð ŒO×'Ò'¨Ñ-Ô-Ð-Ø-1¬ZÔ-FˆIŒOÔ*Ð*à-6ˆIŒOÔ*ð ˆÝ˜i˜[¨7Ñ2Ñ3Ô3ð 	Dð 	DˆDå˜4 Ñ)Ô)ð Øà�yÒ Ð ¨¬Ô)<Ð ØàœÔ0ð Dð D�Ý˜e¥]Ñ3Ô3ð D¸Ô8JÔ8Vð DÝ.¨y¸%Ô:LÔ:RÑSÔS�GØ>C�LÕ!1°'Ñ!:Ô!:Ñ;øðDõ  #™uœuÐà—M’M‘O”Oð c	>ñ c	>ˆDØ˜7Ð"Ð"­'°$¸Ñ*@Ô*@Ð"ð %×+Ò+¨D¬MÑ:Ô:Ð:Øà œJÔ3°d´jÔ6SÑSˆMØ”:Ô&ð G=ð +ð =ð =�EØ”z [Ð0Ð0Ý(˜jð !&¤
 
 
Ø $  Ø $¤  ðñô ð ð -×0Ò0°´Ñ<Ô<Ð<Ð<ð ”zÔ0�Ý+¨DÑ1Ô1�Ø˜|Ð+Ð+Ø(¨Ô2�E�EØ!ð !Ø (¨4¬:Ô+@Ñ @�IÝ)ØÝ")Ø&Ø%)Ø$(ðñ ô �Eð ! KÐ/Ð/Ý(˜jð
 !* 	 	Ø $  Ø $¤  ðñ	ô 	ð 	õ # 9¨iÑ8Ô8ð AØ!×.Ò.¨y¸%Ñ@Ô@Ð@øà �EØ05�	”Ô'¨Ñ-Ð-à#œzÔ1×6Ò6Ñ8Ô8�ð +ð Eð E�Eàœ
¨+Ð5Ð5Ø!œJ¨iÔ.@Ð@Ð@Ø!œJÐ.BÐBÐBå$(¤M°%Ñ$8Ô$8˜	Ø!×.Ò.¨u¬z¸9ÑEÔEÐEð !Ô+ð EØ7C×7IÒ7IÑ7KÔ7Kð Eð EÑ 3 ¨Ø#(¨KÒ#7Ð#7Ø;D L°Ñ$8øøð ”Ô'×.Ò.¨|Ñ<Ô<Ð<ð œÔ2ð >ð >�Ø”: Ð,Ð,Øœ:Ô.ð 	Ý(˜jð !&¤
 
 
Ø $  Ø $¤  ðñô ð ð	õ !œM¨%Ñ0Ô0�EØœ:Ô.ð 3Ø.2˜Ô+Ø×*Ò*¨5¬:°uÑ=Ô=Ð=Ð=ñ!>ð(#
ð #
Ø*3¬/Ô*Að#
ñ #
ô #
ˆ	ŒÔð ð 	ð "'ˆIÔØ&ˆIŒNØÐà×ÒÑÔÐØŒÔ×+Ò+¨I¬OÔ,EÀyÑQÔQÐQØÐr@   c                 óv   — t          |¦  «        r|                     | |¦  «         d S t          | ||¦  «         d S ©N)rT   rO   Úsetattr)rœ   rI   rS   s      r=   r‚   zModelBase.add_to_classq  sF   € Ý# EÑ*Ô*ð 	&Ø×%Ò% c¨4Ñ0Ô0Ð0Ð0Ð0å�C˜˜uÑ%Ô%Ð%Ð%Ð%r@   c                 óT  — | j         }|                     | ¦  «         |j        rkt          | j        d¬¦  «        | _        t          | j        d¬¦  «        | _        |j        j        r)|j        }|j        j        }t          t          | |¦  «         | j        €4| j        ›dd                     d„ |j        D ¦   «         ¦  «        ›d�| _        t          j                             |j        ¦  «        }|rt'          | d	|¦  «         |j        s`t+          d
„ |j        D ¦   «         ¦  «        rt-          d| j        z  ¦  «        ‚t/          ¦   «         }d|_        |                      d|¦  «         | j         j        D ]}|j        s|                     | ¦  «         Œt;          j        | ¬¦  «         dS )z7Create some methods once self._meta has been populated.T)Úis_nextFNú(ú, c              3   ó$   K  — | ]}|j         V — Œd S rº   rm   rn   s     r=   rg   z%ModelBase._prepare.<locals>.<genexpr>’  s$   è è € Ð6Ð6 Q˜!œ&Ð6Ð6Ð6Ð6Ð6Ð6r@   ú)Úget_absolute_urlc              3   ó,   K  — | ]}|j         d k    V — ŒdS )ÚobjectsNrm   rn   s     r=   rg   z%ModelBase._prepare.<locals>.<genexpr>œ  s)   è è € Ð<Ð<¨1�1”6˜YÒ&Ð<Ð<Ð<Ð<Ð<Ð<r@   zOModel %s must specify a custom Manager, because it has a field named 'objects'.rÄ   )Úsender)r`   rš   Úorder_with_respect_tor   Ú_get_next_or_previous_in_orderÚget_next_in_orderÚget_previous_in_orderrŽ   r�   r#   Úmake_foreign_order_accessorsÚ__doc__rC   ÚjoinrŠ   r   ÚABSOLUTE_URL_OVERRIDESÚgetÚlabel_lowerr»   ÚmanagersÚanyÚ
ValueErrorr&   rt   r‚   r™   rI   Úset_name_with_modelr*   Úsend)rœ   ÚoptsÚwrtÚremoteÚget_absolute_url_overrideÚmanagerÚindexs          r=   rš   zModelBase._preparew  sä  € àŒyˆØ�Š�cÑÔÐàÔ%ð 	RÝ$1ØÔ2¸Dð%ñ %ô %ˆCÔ!õ )6ØÔ2¸Eð)ñ )ô )ˆCÔ%ð Ô)Ô6ð RØÔ0�ØÔ)Ô/�Ý&Õ'CÀSÈ&ÑQÔQÐQð Œ;Ðà”��Ø—	’	Ð6Ð6¨$¬+Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6ðˆCŒKõ
 %-Ô$C×$GÒ$GØÔñ%
ô %
Ð!ð %ð 	HÝ�CÐ+Ð-FÑGÔGÐGàŒ}ð 	1ÝÐ<Ð<°´Ð<Ñ<Ô<Ñ<Ô<ð Ý ð-Ø/2¬|ñ<ñô ð õ ‘i”iˆGØ#'ˆGÔ Ø×Ò˜Y¨Ñ0Ô0Ð0ð
 ”YÔ&ð 	/ð 	/ˆEØ”:ð /Ø×)Ò)¨#Ñ.Ô.Ð.øåÔ 3Ð'Ñ'Ô'Ð'Ð'Ð'r@   c                 ó   — | j         j        S rº   )r`   Úbase_manager©rœ   s    r=   Ú_base_managerzModelBase._base_manager®  s   € àŒyÔ%Ð%r@   c                 ó   — | j         j        S rº   )r`   Údefault_managerrÝ   s    r=   Ú_default_managerzModelBase._default_manager²  s   € àŒyÔ(Ð(r@   )rC   rD   rE   rË   r{   r‚   rš   ÚpropertyrÞ   rá   r]   ©r¸   s   @r=   rV   rV   \   s™   ø€ € € € € Ø#Ð#ðPð Pð Pð Pð Pðd&ð &ð &ð5(ð 5(ð 5(ðn ð&ð &ñ „Xð&ð ð)ð )ñ „Xð)ð )ð )ð )ð )r@   rV   c                   ó   — e Zd Zdd„ZdS )ÚModelStateFieldsCacheDescriptorNc                 ó    — |€| S i x}|_         |S rº   )Úfields_cache)r<   Úinstancerœ   Úress       r=   Ú__get__z'ModelStateFieldsCacheDescriptor.__get__¸  s   € ØÐØˆKØ&(Ð(ˆˆhÔ#Øˆ
r@   rº   )rC   rD   rE   rê   r:   r@   r=   rå   rå   ·  s(   € € € € € ðð ð ð ð ð r@   rå   c                   ó.   — e Zd ZdZdZdZ e¦   «         ZdS )Ú
ModelStatezStore model instance state.NT)rC   rD   rE   rË   ÚdbÚaddingrå   rç   r:   r@   r=   rì   rì   ¿  s.   € € € € € Ø%Ð%à	€Bð
 €FØ2Ð2Ñ4Ô4€L€L€Lr@   rì   c                   óš  ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ ZdCd„Zd„ Z eee¦  «        Zd„ ZdDd„ZdDd„Zd„ Z	 dEd„Zde_        	 dEd„Zde_        	 	 	 	 	 dFd„Zde_        d„ Z	 	 	 	 	 	 dGd„Zd„ Zd„ ZdCd„ZdHd„Zde_        dHd„Zde_        d„ Z d„ Z!d„ Z"dCd „Z#d!„ Z$d"„ Z%dCd#„Z&dHd$„Z'd%„ Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,dCd*„Z-dId+„Z.dCd,„Z/ed-„ ¦   «         Z0ed.„ ¦   «         Z1ed/„ ¦   «         Z2ed0„ ¦   «         Z3ed1„ ¦   «         Z4ed2„ ¦   «         Z5ed3„ ¦   «         Z6ed4„ ¦   «         Z7ed5„ ¦   «         Z8ed6„ ¦   «         Z9ed7„ ¦   «         Z:ed8„ ¦   «         Z;ed9„ ¦   «         Z<ed:„ ¦   «         Z=ed;„ ¦   «         Z>ed<„ ¦   «         Z?ed=„ ¦   «         Z@ed>„ ¦   «         ZAed?„ ¦   «         ZBed@„ ¦   «         ZCedA„ ¦   «         ZDedB„ ¦   «         ZEˆ xZFS )JÚModelc                 óÞ  •— | j         }| j        }t          }t          }|j        rt          d¦  «        ‚t          j        |||¬¦  «         t          ¦   «         | _	        t          |¦  «        t          |j        ¦  «        k    rt          d¦  «        ‚|sBt          |j        ¦  «        }t          ||¦  «        D ]\  }}	||u rŒ
 || |	j        |¦  «         Œn‡t          |j        ¦  «        }t          ||¦  «        D ]b\  }}	||u rŒ
 || |	j        |¦  «         |                     |	j        t&          ¦  «        t&          urt          |j        › d|	j        › d�¦  «        ‚Œc|D �]$}	d}
|	j        |vr|	j        €Œ|rÈt-          |	j        t0          ¦  «        rn	 |                     |	j        ¦  «        }d}
n¤# t2          $ rC 	 |                     |	j        ¦  «        }n$# t2          $ r |	                     ¦   «         }Y nw xY wY nXw xY w	 |                     |	j        ¦  «        }n8# t2          $ r |	                     ¦   «         }Y nw xY w|	                     ¦   «         }|
r||ur || |	j        |¦  «         �Œ||ur || |	j        |¦  «         �Œ&|r°|j        }d}|                     ¦   «         D ]X\  }}||v r||ur || ||¦  «         Œ	 |                     |¦  «         ||ur || ||¦  «         ŒC# t<          $ r	 ||fz  }Y ŒUw xY w|r8d	                     d
„ |D ¦   «         ¦  «        }t          |j         › d|› �¦  «        ‚tC          ¦   «          "                    ¦   «          tG          j        || ¬¦  «         d S )Nz'Abstract models cannot be instantiated.)rÅ   Úargsrž   z'Number of args exceeds number of fieldsz8() got both positional and keyword arguments for field 'rk   FTr:   r¿   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rº   )Úrepr)rZ   Úns     r=   rg   z!Model.__init__.<locals>.<genexpr>6  s(   è è € Ð,IÐ,I¸­T°!©W¬WÐ,IÐ,IÐ,IÐ,IÐ,IÐ,Ir@   z%() got unexpected keyword arguments: )rÅ   rè   )$r¸   r`   r»   ÚDEFERREDr_   r†   r-   rÔ   rì   Ú_stateÚlenÚconcrete_fieldsÚ
IndexErrorÚiterÚzipÚattnamerŠ   r|   rI   r   rE   ÚcolumnrY   rŽ   r!   ÚKeyErrorÚget_defaultÚ_property_namesr}   Ú	get_fieldr
   rÌ   rC   rz   Ú__init__r+   )r<   rò   rž   rœ   rÕ   Ú_setattrÚ	_DEFERREDÚfields_iterÚvalr°   Úis_related_objectÚrel_objÚproperty_namesÚ
unexpectedÚproprS   Úunexpected_namesr¸   s                    €r=   r  zModel.__init__Ì  sg  ø€ àŒnˆØŒzˆÝˆÝˆ	ØŒ=ð 	GÝÐEÑFÔFÐFåŒ˜S t°FÐ;Ñ;Ô;Ð;õ !‘l”lˆŒõ ˆt‰9Œ9•s˜4Ô/Ñ0Ô0Ò0Ð0åÐFÑGÔGÐGàð 	Ý˜tÔ3Ñ4Ô4ˆKõ
 " $¨Ñ4Ô4ð 3ð 3‘
��UØ˜)Ð#Ð#ØØ�˜˜uœ}¨cÑ2Ô2Ð2Ð2ð3õ ˜tœ{Ñ+Ô+ˆKÝ! $¨Ñ4Ô4ð ð ‘
��UØ˜)Ð#Ð#ØØ�˜˜uœ}¨cÑ2Ô2Ð2Ø—:’:˜eœj­,Ñ7Ô7½|ÐKÐKÝ#ØÔ+ð Gð GØ8=¼
ðGð Gð Gñô ð ð Lð !ð &	7ñ &	7ˆEØ %ÐàŒ} FÐ*Ð*¨u¬|Ð/CØØð *Ý˜eÔ0Õ2BÑCÔCð 2ð	6à"(§*¢*¨U¬ZÑ"8Ô"8˜Ø,0Ð)Ð)øÝ#ð 6ð 6ð 6ð6à"(§*¢*¨U¬]Ñ";Ô";˜C˜CøÝ'ð 6ð 6ð 6Ø"'×"3Ò"3Ñ"5Ô"5˜C˜C˜Cð6øøøøøð	6øøøð2Ø$Ÿjšj¨¬Ñ7Ô7˜˜øÝ#ð 2ð 2ð 2ð
 $×/Ò/Ñ1Ô1˜˜˜ð2øøøð ×'Ò'Ñ)Ô)�à ð 	7ð
  )Ð+Ð+Ø�H˜T 5¤:¨wÑ7Ô7Ð7ùà˜iÐ'Ð'Ø�H˜T 5¤=°#Ñ6Ô6Ð6ùàð 	Ø!Ô1ˆNØˆJØ%Ÿ|š|™~œ~ð 8ð 8‘��eð ˜>Ð)Ð)Ø IÐ-Ð-Ø ˜  t¨UÑ3Ô3Ð3øð8ØŸš tÑ,Ô,Ð,ð !¨	Ð1Ð1Ø$˜H T¨4°Ñ7Ô7Ð7øøõ	 -ð .ð .ð .Ø" t gÑ-˜
˜
˜
ð.øøøð
 ð Ø#'§9¢9Ð,IÐ,I¸jÐ,IÑ,IÔ,IÑ#IÔ#IÐ ÝØ”|ð *ð *Ø'ð*ð *ñô ð õ 	‰Œ×ÒÑÔÐÝŒ˜c¨DÐ1Ñ1Ô1Ð1Ð1Ð1sZ   ÆF/Æ/
G<Æ:GÇG<ÇG6Ç3G<Ç5G6Ç6G<Ç;G<È HÈH<È;H<Ë K'Ë'K:Ë9K:c                 óè   ‡‡— t          |¦  «        t          | j        j        ¦  «        k    r(t          |¦  «        Šˆˆfd„| j        j        D ¦   «         } | |Ž }d|j        _        ||j        _        |S )Nc                 óN   •— g | ]!}|j         ‰v rt          ‰¦  «        nt          ‘Œ"S r:   )rý   Únextrö   )rZ   ro   r¬   Úvalues_iters     €€r=   r\   z!Model.from_db.<locals>.<listcomp>B  sB   ø€ ð ð ð àð &'¤Y°+Ð%=Ð%=•�[Ñ!Ô!Ð!Å8ðð ð r@   F)rø   r`   rù   rû   r÷   rî   rí   )rœ   rí   r¬   ÚvaluesÚnewr  s     `  @r=   Úfrom_dbzModel.from_db>  s„   øø€ åˆv‰;Œ;�#˜cœiÔ7Ñ8Ô8Ò8Ð8Ý˜v™,œ,ˆKðð ð ð ð àœÔ2ðñ ô ˆFð ˆc�6ˆlˆØ!ˆŒ
ÔØˆŒ
ŒØˆ
r@   c                 ó(   — d| j         j        ›d| ›d�S )Nú<z: ú>)r¸   rC   r;   s    r=   r>   zModel.__repr__K  s   € € Ø!œ^Ô4Ð4Ð4°d°d°dÐ;Ð;r@   c                 ó0   — | j         j        ›d| j        ›d�S )Nz	 object (rÁ   )r¸   rC   Úpkr;   s    r=   rB   zModel.__str__N  s   € Ø#'¤>Ô#:Ð#:Ð#:¸D¼G¸G¸GÐDÐDr@   c                 ó¢   — t          |t          ¦  «        st          S | j        j        |j        j        k    rdS | j        }|€| |u S ||j        k    S ©NF)rY   rð   ÚNotImplementedr`   r‹   r  )r<   ÚotherÚmy_pks      r=   Ú__eq__zModel.__eq__Q  sW   € Ý˜%¥Ñ'Ô'ð 	"Ý!Ð!ØŒ:Ô$¨¬Ô(BÒBÐBØ�5Ø”ˆØˆ=Ø˜5�=Ð Ø˜œÒ Ð r@   c                 óV   — | j         €t          d¦  «        ‚t          | j         ¦  «        S )Nz8Model instances without primary key value are unhashable)r  r†   Úhashr;   s    r=   Ú__hash__zModel.__hash__[  s&   € ØŒ7ˆ?ÝÐVÑWÔWÐWÝ�D”G‰}Œ}Ðr@   c                 ó˜   — |                       ¦   «         }t          j        |t          <   | j        j        | j        j        f}t          |f|fS rº   )Ú__getstate__ÚdjangoÚ__version__r   r`   ra   Úobject_nameÚmodel_unpickle)r<   ÚdataÚclass_ids      r=   Ú
__reduce__zModel.__reduce__`  sD   € Ø× Ò Ñ"Ô"ˆÝ*0Ô*<ˆÕ&Ñ'Ø”:Ô'¨¬Ô)?Ð?ˆÝ ˜{¨DÐ0Ð0r@   c                 ó¸  — | j                              ¦   «         }t          j        |d         ¦  «        |d<   |d         j                             ¦   «         |d         _        g }|                     ¦   «         D ]>\  }}t	          |t
          ¦  «        r$|                     |t          |¦  «        f¦  «         Œ?|r"||d<   |D ]\  }}|                     |¦  «         Œ|S )z0Hook to allow choosing the attributes to pickle.r÷   Ú_memoryview_attrs)	r“   rw   rç   r}   rY   Ú
memoryviewÚappendÚbytesr|   )r<   Ústater-  ÚattrrS   s        r=   r$  zModel.__getstate__f  sÜ   € à”×"Ò"Ñ$Ô$ˆÝœ) E¨(¤OÑ4Ô4ˆˆh‰Ø',¨X¤Ô'C×'HÒ'HÑ'JÔ'JˆˆhŒÔ$ð ÐØ Ÿ;š;™=œ=ð 	?ð 	?‰KˆD�%Ý˜%¥Ñ,Ô,ð ?Ø!×(Ò(¨$µ°e±´Ð)=Ñ>Ô>Ð>øØð 	 Ø):ˆEÐ%Ñ&Ø0ð  ð  ‘��eØ—	’	˜$‘”��Øˆr@   c                 óˆ  — |                      t          ¦  «        }|r>|t          j        k    r-t	          j        d|›dt          j        ›d�t          d¬¦  «         nt	          j        dt          d¬¦  «         d|v r-|                     d¦  «        D ]\  }}t          |¦  «        ||<   Œ| j	         
                    |¦  «         d S )Nz(Pickled model instance's Django version z$ does not match the current version rG   é   )Ú
stacklevelz9Pickled model instance's Django version is not specified.r-  )rÎ   r   r%  r&  ÚwarningsÚwarnÚRuntimeWarningr|   r.  r“   r’   )r<   r1  Úpickled_versionr2  rS   s        r=   Ú__setstate__zModel.__setstate__w  sç   € ØŸ)š)Õ$=Ñ>Ô>ˆØð 	Ø¥&Ô"4Ò4Ð4Ý”�ð '��­Ô(:Ð(:Ð(:ð<õ #Ø ðñ ô ð øõ ŒMØKÝØðñ ô ð ð
  %Ð'Ð'Ø$ŸyšyÐ)<Ñ=Ô=ð 0ð 0‘��eÝ(¨Ñ/Ô/��d‘�ØŒ×Ò˜UÑ#Ô#Ð#Ð#Ð#r@   Nc                 óH   — |p| j         }t          | |j        j        ¦  «        S rº   )r`   r~   r  rý   )r<   r§   s     r=   Ú_get_pk_valzModel._get_pk_val�  s"   € ØÐ!�t”zˆÝ�t˜TœWœ_Ñ-Ô-Ð-r@   c                 óÞ   — | j         j                             ¦   «         D ]/}|r+|| j         j        k    rt	          | |j        j        |¦  «         Œ0t	          | | j         j        j        |¦  «        S rº   )r`   r–   r  r  r»   Útarget_fieldrý   )r<   rS   ru   s      r=   Ú_set_pk_valzModel._set_pk_val‘  sm   € Øœ:Ô-×4Ò4Ñ6Ô6ð 	Gð 	GˆKØð G˜{¨d¬j¬mÒ;Ð;Ý˜˜kÔ6Ô>ÀÑFÔFÐFøÝ�t˜TœZœ]Ô2°EÑ:Ô:Ð:r@   c                 ó4   ‡ — ˆ fd„‰ j         j        D ¦   «         S )zU
        Return a set containing names of deferred fields for this instance.
        c                 ó:   •— h | ]}|j         ‰j        v¯|j         ’ŒS r:   )rý   r“   )rZ   ro   r<   s     €r=   rp   z,Model.get_deferred_fields.<locals>.<setcomp>�  s4   ø€ ð 
ð 
ð 
àØŒy ¤Ð-Ð-ð ŒIà-Ð-Ð-r@   )r`   rù   r;   s   `r=   Úget_deferred_fieldszModel.get_deferred_fields™  s3   ø€ ð
ð 
ð 
ð 
à”ZÔ/ð
ñ 
ô 
ð 	
r@   c           	      ó`  ‡	— |€i | _         nft          | dd¦  «        }|D ]}||v r||= |                     |¦  «         Œ|sdS t          d„ |D ¦   «         ¦  «        rt	          dt
          z  ¦  «        ‚d| i}| j        j                             ||¬¦  «         	                    | j
        ¬¦  «        }|                      ¦   «         Š	|�t          |¦  «        } |j        |Ž }n$‰	r"ˆ	fd	„| j        j        D ¦   «         } |j        |Ž }|                     ¦   «         }|                     ¦   «         }| j        j        D ]f}|j        |v rŒt%          | |j        t          ||j        ¦  «        ¦  «         |j        r*|                     | ¦  «        r|                     | ¦  «         Œg| j        j        D ],}|                     | ¦  «        r|                     | ¦  «         Œ-| j        j        D ]3}|j        r*|                     | ¦  «        r|                     | ¦  «         Œ4|j        j        | j        _        dS )
aU  
        Reload field values from the database.

        By default, the reloading happens from the database this instance was
        loaded from, or by the read router if this instance wasn't loaded from
        any database. The using parameter will override the default.

        Fields can be used to specify which fields to reload. The fields
        should be an iterable of field attnames. If fields is None, then
        all non-deferred fields are reloaded.

        When accessing deferred fields of an instance, the deferred loading
        of the field will call this method.
        NÚ_prefetched_objects_cacher:   c              3   ó(   K  — | ]}t           |v V — Œd S rº   r   rn   s     r=   rg   z(Model.refresh_from_db.<locals>.<genexpr>¼  s&   è è € Ð3Ð3 q•: �?Ð3Ð3Ð3Ð3Ð3Ð3r@   zRFound "%s" in fields argument. Relations and transforms are not allowed in fields.rè   )Úhints©r  c                 ó0   •— g | ]}|j         ‰v¯|j         ‘ŒS r:   )rý   )rZ   ro   Údeferred_fieldss     €r=   r\   z)Model.refresh_from_db.<locals>.<listcomp>Í  s2   ø€ ð ð ð àØ”9 OÐ3Ð3ð ”	à3Ð3Ð3r@   )rD  r~   ÚremoverÑ   rÒ   r   r¸   rÞ   Ú
db_managerÚfilterr  rB  ÚlistÚonlyr`   rù   rÎ   rý   r»   Úis_relationÚ	is_cachedÚdelete_cached_valueÚrelated_objectsr‰   r÷   rí   )
r<   ÚusingrŠ   Úprefetched_objects_cacher°   rF  Údb_instance_qsÚdb_instanceÚnon_loaded_fieldsrI  s
            @r=   Úrefresh_from_dbzModel.refresh_from_db£  s   ø€ ð ˆ>Ø-/ˆDÔ*Ð*å'.¨tÐ5PÐRTÑ'UÔ'UÐ$Øð )ð )�ØÐ4Ð4Ð4Ø0°Ð7Ø—M’M %Ñ(Ô(Ð(øØð Ø�ÝÐ3Ð3¨FÐ3Ñ3Ô3Ñ3Ô3ð Ý ð1Ý3=ñ>ñô ð ð
 ˜TÐ"ˆØœÔ5×@Ò@Ø˜ð Añ 
ô 
ç
Š&�D”Gˆ&Ñ
Ô
ð 	ð
 ×2Ò2Ñ4Ô4ˆØÐÝ˜&‘\”\ˆFØ0˜^Ô0°&Ð9ˆNˆNØð 	:ðð ð ð àœÔ3ðñ ô ˆFð
 1˜^Ô0°&Ð9ˆNà$×(Ò(Ñ*Ô*ˆØ'×;Ò;Ñ=Ô=ÐØ”ZÔ/ð 	0ð 	0ˆEØŒ}Ð 1Ð1Ð1àÝ�D˜%œ-­°¸e¼mÑ)LÔ)LÑMÔMÐMàÔ ð 0 U§_¢_°TÑ%:Ô%:ð 0Ø×)Ò)¨$Ñ/Ô/Ð/øð ”ZÔ/ð 	0ð 	0ˆEØ�Š˜tÑ$Ô$ð 0Ø×)Ò)¨$Ñ/Ô/Ð/øð ”ZÔ.ð 	0ð 	0ˆEØÔ ð 0 U§_¢_°TÑ%:Ô%:ð 0Ø×)Ò)¨$Ñ/Ô/Ð/øà$Ô+Ô.ˆŒŒˆˆr@   c              ƒ   óP   K  —  t          | j        ¦  «        ||¬¦  «        ƒ d {V —†S )N)rS  rŠ   )r   rX  )r<   rS  rŠ   s      r=   Úarefresh_from_dbzModel.arefresh_from_dbë  s8   è è € Ø8•] 4Ô#7Ñ8Ô8¸uÈVÐTÑTÔTÐTÐTÐTÐTÐTÐTÐTr@   c                 ó¤   — 	 | j                              |¦  «        }n # t          $ r t          | |¦  «        cY S w xY wt          | |j        ¦  «        S )aÂ  
        Return the value of the field name for this instance. If the field is
        a foreign key, return the id value instead of the object. If there's
        no Field object with this name on the model, return the model
        attribute's value.

        Used to serialize a field's value (in the serializer, or form output,
        for example). Normally, you would just access the attribute directly
        and not use this method.
        )r`   r  r
   r~   rý   )r<   Ú
field_namer°   s      r=   Úserializable_valuezModel.serializable_valueî  sa   € ð	-Ø”J×(Ò(¨Ñ4Ô4ˆEˆEøÝ ð 	-ð 	-ð 	-Ý˜4 Ñ,Ô,Ð,Ð,Ð,ð	-øøøå�t˜Uœ]Ñ+Ô+Ð+s   ‚ �:¹:Fc                 ó¼  — |                       d¬¦  «         |pt          j        | j        | ¬¦  «        }|r|s|rt	          d¦  «        ‚|                      ¦   «         }|�\|sdS t          |¦  «        }| j        j        }| 	                    |¦  «        }|r%t	          dd 
                    |¦  «        z  ¦  «        ‚nˆ|s†|r„|| j        j        k    rtt          ¦   «         }| j        j        D ]3}|j        s*t!          |d¦  «        s|                     |j        ¦  «         Œ4| 	                    |¦  «        }	|	rt          |	¦  «        }|                      ||||¬	¦  «         dS )
aa  
        Save the current instance. Override this in a subclass if you want to
        control the saving process.

        The 'force_insert' and 'force_update' parameters can be used to insist
        that the "save" must be an SQL insert or update (or equivalent for
        non-SQL backends), respectively. Normally, they should not be set.
        Úsave)Úoperation_name©rè   z6Cannot force both insert and updating in model saving.Nz_The following fields do not exist in this model, are m2m fields, or are non-concrete fields: %sr¿   Úthrough)rS  Úforce_insertÚforce_updateÚupdate_fields)Ú _prepare_related_fields_for_saver   Údb_for_writer¸   rÒ   rB  Ú	frozensetr`   Ú_non_pk_concrete_field_namesÚ
differencerÌ   r÷   rí   r�   rù   Úprimary_keyrR   r”   rý   Ú	save_base)
r<   rc  rd  rS  re  rI  r¬   Únon_model_fieldsr°   Úloaded_fieldss
             r=   r_  z
Model.saveÿ  s¯  € ð 	×-Ò-¸VÐ-ÑDÔDÐDàÐK�Ô,¨T¬^ÀdÐKÑKÔKˆØð 	W˜\ð 	W¨]ð 	WÝÐUÑVÔVÐVà×2Ò2Ñ4Ô4ˆØÐ$ð !ð Ø�å% mÑ4Ô4ˆMØœ*ÔAˆKØ,×7Ò7¸ÑDÔDÐàð Ý ð=à—i’iÐ 0Ñ1Ô1ñ2ñô ð ðð ð 	9 /ð 	9°e¸t¼{¼~Ò6MÐ6MÝ™%œ%ˆKØœÔ3ð 3ð 3�ØÔ(ð 3µ¸À	Ñ1JÔ1Jð 3Ø—O’O E¤MÑ2Ô2Ð2øØ'×2Ò2°?ÑCÔCˆMØð 9Ý )¨-Ñ 8Ô 8�à�ŠØØ%Ø%Ø'ð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r@   Tc              ƒ   óT   K  —  t          | j        ¦  «        ||||¬¦  «        ƒ d {V —†S )N)rc  rd  rS  re  )r   r_  )r<   rc  rd  rS  re  s        r=   ÚasavezModel.asave7  sU   è è € ð .•] 4¤9Ñ-Ô-Ø%Ø%ØØ'ð	
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r@   c           	      ól  — |pt          j        | j        | ¬¦  «        }|r|s|rJ ‚|�|sJ ‚| j        x}}|j        j        r|j        j        }|j        }|j        st          j        || |||¬¦  «         |j	        rt          j        |d¬¦  «        }	nt          j        |¬¦  «        }	|	5  d}
|s|                      |||¦  «        }
|                      |||p|
|||¦  «        }ddd¦  «         n# 1 swxY w Y   || j        _        d| j        _        |j        st%          j        || | |||¬¦  «         dS dS )av  
        Handle the parts of saving which should be done only once per save,
        yet need to be done in raw saves, too. This includes some sanity
        checks and signal sending.

        The 'raw' argument is telling save_base not to save any parent
        models and not to do any changes to the values before save. This
        is used by fixture loading.
        ra  N)rÅ   rè   ÚrawrS  re  F)rS  Ú	savepoint)rS  )rÅ   rè   Úcreatedre  rr  rS  )r   rg  r¸   r`   r„   r‹   rt   r.   rÔ   r–   r   ÚatomicÚmark_for_rollback_on_errorÚ_save_parentsÚ_save_tabler÷   rí   rî   r,   )r<   rr  rc  rd  rS  re  rœ   Úoriginr§   Úcontext_managerÚparent_insertedÚupdateds               r=   rl  zModel.save_baseC  sé  € ð" ÐK�Ô,¨T¬^ÀdÐKÑKÔKˆØ ÐE lÐE°mÐEÐEÐEØÐ$¨Ð$Ð$Ð$Ø”~Ð%ˆˆfàŒ9Œ?ð 	+Ø”)Ô*ˆCØŒyˆØÔ ð 	ÝŒMØØØØØ+ðñ ô ð ð Œ<ð 	RÝ)Ô0°uÈÐNÑNÔNˆOˆOå)ÔDÈ5ÐQÑQÔQˆOØð 	ð 	Ø#ˆOØð PØ"&×"4Ò"4°S¸%ÀÑ"OÔ"O�Ø×&Ò&ØØØÐ/ ØØØñô ˆGð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆŒŒà"ˆŒÔð Ô ð 	ÝŒNØØØ$˜Ø+ØØðñ ô ð ð ð ð	ð 	s   Â)8C-Ã-C1Ã4C1c           	      óF  — |j         }d}|j                             ¦   «         D ]ý\  }}|rgt          | |j         j        j        ¦  «        €Ht          | |j        ¦  «        �3t          | |j         j        j        t          | |j        ¦  «        ¦  «         |                      |||¬¦  «        }|                      ||||¬¦  «        }	|	sd}|rXt          | |j        |  	                    |j         ¦  «        ¦  «         | 
                    | ¦  «        r|                     | ¦  «         Œþ|S )z3Save all the parents of cls using values from self.FN)rœ   rS  re  )rœ   rS  re  rc  T)r`   r–   r}   r~   r  rý   r»   rw  rx  r<  rP  rQ  )
r<   rœ   rS  re  r§   Úinsertedr®   r°   r{  r|  s
             r=   rw  zModel._save_parents‡  s<  € àŒyˆØˆØ!œ\×/Ò/Ñ1Ô1ð 	4ð 	4‰MˆF�Eð ðUå˜D &¤,¤/Ô"9Ñ:Ô:ÐBÝ˜D %¤-Ñ0Ô0Ð<å˜˜fœlœoÔ5µw¸tÀUÄ]Ñ7SÔ7SÑTÔTÐTØ"×0Ò0Ø %°}ð 1ñ ô ˆOð ×&Ò&ØØØ+Ø,ð	 'ñ ô ˆGð ð  Ø�àð 4Ý˜˜eœm¨T×-=Ò-=¸f¼lÑ-KÔ-KÑLÔLÐLð —?’? 4Ñ(Ô(ð 4Ø×-Ò-¨dÑ3Ô3Ð3øØˆr@   c           
      óÊ  ‡ ‡‡‡— |j         Šd„ ‰j        D ¦   «         }‰rˆfd„|D ¦   «         }‰                      ‰¦  «        }|€5‰j                             ‰ ¦  «        }t          ‰ ‰j        j        |¦  «         |du}	|	s|s‰rt          d¦  «        ‚d}
‰s/|s-‰ j        j	        r!‰j        j
        r‰j        j
        t          urd}|	ro|sm|j                             |¦  «        }ˆˆ fd„|D ¦   «         }‰p|}‰                      ||||‰|¦  «        }
|r|
st          d¦  «        ‚‰r|
st          d	¦  «        ‚|
�s*‰j        r³‰j        }|                     ‰ ¦  «        } |j                             |¦  «        j        di |¤Ž                     t)          t+          t-          d
¦  «        t/          d¦  «        z   t1          ¦   «         ¬¦  «        t/          d¦  «        ¦  «        ¬¦  «        d         ‰ _        ‰j        }|	sˆfd„|D ¦   «         }‰j        }‰                      |j        |||‰¦  «        }|r2t9          |d         |¦  «        D ]\  }}t          ‰ |j        |¦  «         Œ|
S )zp
        Do the heavy-lifting involved in saving. Update or insert the data
        for a single table.
        c                 ó    — g | ]}|j         °	|‘ŒS r:   ©rk  rn   s     r=   r\   z%Model._save_table.<locals>.<listcomp>¸  s   € ÐNÐNÐN˜ÀÄÐN�1ÐNÐNÐNr@   c                 ó8   •— g | ]}|j         ‰v s	|j        ‰v ¯|‘ŒS r:   )rI   rý   )rZ   ro   re  s     €r=   r\   z%Model._save_table.<locals>.<listcomp>»  s<   ø€ ð ð ð àØ”6˜]Ð*Ð*¨a¬i¸=Ð.HÐ.Hð à.HÐ.HÐ.Hr@   Nz5Cannot force an update in save() with no primary key.FTc                 óp   •— g | ]2}|d ‰rt          ‰|j        ¦  «        n|                     ‰d¦  «        f‘Œ3S r  )r~   rý   r.   )rZ   ro   rr  r<   s     €€r=   r\   z%Model._save_table.<locals>.<listcomp>Õ  sZ   ø€ ð ð ð ð ð	 ØØ14ÐQ•W˜T 1¤9Ñ-Ô-Ð-¸!¿*º*ÀTÈ5Ñ:QÔ:Qððð ð r@   z&Forced update did not affect any rows.z0Save with update_fields did not affect any rows.Ú_orderé   )Úoutput_fieldr   )Ú_order__maxr‡  c                 ó&   •— g | ]}|‰j         u¯|‘ŒS r:   )Ú
auto_field)rZ   ro   r§   s     €r=   r\   z%Model._save_table.<locals>.<listcomp>ù  s%   ø€ ÐHÐHÐH ¨q¸¼Ð/GÐ/G˜!Ð/GÐ/GÐ/Gr@   r:   )r`   Úlocal_concrete_fieldsr<  r  Úget_pk_value_on_saver»   rý   rÒ   r÷   rî   Údefaultr   rÞ   rS  Ú
_do_updater   rÆ   Úget_filter_kwargs_for_objectrL  Ú	aggregater%   r   r   r   r   r„  Údb_returning_fieldsÚ
_do_insertrü   )r<   rr  rœ   rc  rd  rS  re  Únon_pksÚpk_valÚpk_setr|  Úbase_qsr  Úforced_updater°   Úfilter_argsrŠ   Úreturning_fieldsÚresultsrS   r§   s   ``    `             @r=   rx  zModel._save_tableª  sD  øøøø€ ð ŒyˆØNÐN˜dÔ8ÐNÑNÔNˆàð 	ðð ð ð à ðñ ô ˆGð ×!Ò! $Ñ'Ô'ˆØˆ>Ø”W×1Ò1°$Ñ7Ô7ˆFÝ�D˜$œ'œ/¨6Ñ2Ô2Ð2Ø˜tÐ#ˆØð 	V˜<ð 	V¨=ð 	VÝÐTÑUÔUÐUØˆð ð	 à ð	 ð ”Ô"ð	 ð ””ð		 ð
 ””¥|Ð3Ð3àˆLàð 	X˜,ð 	XØÔ'×-Ò-¨eÑ4Ô4ˆGðð ð ð ð ð !ðñ ô ˆFð *Ð9¨\ˆMØ—o’oØ˜ ¨°¸}ñô ˆGð ð N Gð NÝ#Ð$LÑMÔMÐMØð X Wð XÝ#Ð$VÑWÔWÐWØñ 	8ØÔ)ð ð Ô2�Ø#×@Ò@ÀÑFÔF�ð�CÔ%×+Ò+¨EÑ2Ô2Üð+ð +Ø)ð+ð +ç’YÝ$,Ý-Ý # H¡¤µ°a±´Ñ 8Å|Á~Ä~ðñ ô õ " !™HœHñ	%ô %ð ñ ô ð $ô	%ð ”ð Ô/ˆFØð IØHÐHÐHÐH VÐHÑHÔH�à#Ô7ÐØ—o’oØÔ! 5¨&Ð2BÀCñô ˆGð ð 8Ý$'¨°¬
Ð4DÑ$EÔ$Eð 8ð 8‘L�E˜5Ý˜D %¤-°Ñ7Ô7Ð7Ð7Øˆr@   c                 ó2  — |                      |¬¦  «        }|s|dup|                     ¦   «         S | j        j        rC|sA|                     ¦   «         o,|                     |¦  «        dk    p|                     ¦   «         S |                     |¦  «        dk    S )z�
        Try to update the model. Return True if the model was updated (if an
        update query was done and a matching row was found in the DB).
        rG  Nr   )rL  Úexistsr`   Úselect_on_saveÚ_update)r<   r•  rS  r“  r  re  r–  Úfiltereds           r=   r�  zModel._do_update  sª   € ð
 —>’> V�>Ñ,Ô,ˆØð 	Bð !¨Ð,ÐA°·²Ñ0AÔ0AÐAØŒ:Ô$ð 	¨]ð 	à—’Ñ!Ô!ð 	Dð ×!Ò! &Ñ)Ô)¨AÒ-ÐB°·²Ñ1BÔ1Bðð ×Ò Ñ'Ô'¨!Ò+Ð+r@   c                 ó8   — |                      | g||||¬¦  «        S )z‹
        Do an INSERT. If returning_fields is defined then this method should
        return the newly created data for the model.
        )rŠ   r˜  rS  rr  )Ú_insert)r<   rÙ   rS  rŠ   r˜  rr  s         r=   r‘  zModel._do_insert   s0   € ð
 �ŠØˆFØØ-ØØð ñ 
ô 
ð 	
r@   c                 ó  — | j         j        D ]ý}|r||vrŒ	|j        rí|                     | ¦  «        rØt	          | |j        d ¦  «        }|sŒ>|j        €@|j        j        s|j         	                    |¦  «         t          |›d|j        ›d�¦  «        ‚t	          | |j        ¦  «        |j        v rt          | |j        |¦  «         t	          ||j        j        ¦  «        t	          | |j        ¦  «        k    r| 	                    | ¦  «         Œþ| j         j        D ]o}|r||vrŒ	|j        r_|                     | ¦  «        rJt!          |d¦  «        r:|                     | d ¬¦  «        }|r!|j        €t          |› d|j        › d�¦  «        ‚Œpd S )NzB() prohibited to prevent data loss due to unsaved related object 'rk   Úfk_field)rŒ  )r`   rù   rO  rP  r~   rI   r  rŽ   ÚmultiplerQ  rÒ   rý   Úempty_valuesr»   r>  r‰   rR   Úget_cached_value)r<   r`  rŠ   r°   r¥   s        r=   rf  z&Model._prepare_related_fields_for_save-  s  € ð
 ”ZÔ/ð  	4ð  	4ˆEØð ˜% vÐ-Ð-Øð Ô ð 4 U§_¢_°TÑ%:Ô%:ð 4Ý˜d E¤J°Ñ5Ô5�Øð Øð ”6�>à Ô-Ô6ð DØÔ*×>Ò>¸sÑCÔCÐCÝ$à2@°.°.À%Ä*À*À*ðNñô ð õ ˜T 5¤=Ñ1Ô1°UÔ5GÐGÐGõ ˜D %¤*¨cÑ2Ô2Ð2õ ˜3 Ô 2Ô :Ñ;Ô;½wØ˜%œ-ñ@ô @ò ð ð ×-Ò-¨dÑ3Ô3Ð3øà”ZÔ.ð 	ð 	ˆEØð ˜% vÐ-Ð-ØàÔ!ð
à—O’O DÑ)Ô)ð
õ ˜E :Ñ.Ô.ð
ð
 ×,Ò,¨T¸4Ð,Ñ@Ô@�Øð ˜3œ6˜>Ý$Ø)ð Bð BØ38´:ðBð Bð Bñô ð øð	ð 	r@   c                 ó   — | j         €.t          | j        j        ›d| j        j         j        ›d�¦  «        ‚|pt          j        | j        | ¬¦  «        }t          || ¬¦  «        }| 	                    | g|¬¦  «         | 
                    ¦   «         S )Nz% object can't be deleted because its z attribute is set to None.ra  )rS  ry  )Úkeep_parents)r  rÒ   r`   r'  rý   r   rg  r¸   r   ÚcollectÚdelete)r<   rS  r§  Ú	collectors       r=   r©  zModel.deletec  s›   € ØŒ7ˆ?Ýà"œjÔ4Ð4Ð4°d´j´mÔ6KÐ6KÐ6KðMñô ð ð ÐK�Ô,¨T¬^ÀdÐKÑKÔKˆÝ E°$Ð7Ñ7Ô7ˆ	Ø×Ò˜4˜&¨|ÐÑ<Ô<Ð<Ø×ÒÑ!Ô!Ð!r@   c              ƒ   óP   K  —  t          | j        ¦  «        ||¬¦  «        ƒ d {V —†S )N)rS  r§  )r   r©  )r<   rS  r§  s      r=   ÚadeletezModel.adeletep  sM   è è € Ø/•] 4¤;Ñ/Ô/ØØ%ð
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r@   c                 óÒ   — t          | |j        ¦  «        }t          t          |j        ¦  «        ¦  «        }t          |                     t          |¦  «        |¦  «        d¬¦  «        S )NT)Ústrings_only)r~   rý   Údictr2   Úflatchoicesr1   rÎ   )r<   r°   rS   Úchoices_dicts       r=   Ú_get_FIELD_displayzModel._get_FIELD_displayx  s_   € Ý˜˜eœmÑ,Ô,ˆÝ�M¨%Ô*;Ñ<Ô<Ñ=Ô=ˆåØ×Ò�]¨5Ñ1Ô1°5Ñ9Ô9Èð
ñ 
ô 
ð 	
r@   c                 ó|  — | j         st          d¦  «        ‚|rdnd}|rdnd}t          | |j        ¦  «        }t	          j        |j        |fd|› �| j         fgt          j        ¬¦  «        }t	          j        ||j        › d|› �|fgt          j        ¬¦  «        } | j	        j
                             | j        j        ¦  «        j        di |¤Ž                     |¦  «                             |›|j        ›�d	|z  ¦  «        }	 |d
         S # t           $ r( |                      d| j	        j        j        z  ¦  «        ‚w xY w)Nz8get_next/get_previous cannot be used on unsaved objects.ÚgtÚltÚ ú-Úpk__)Ú	connectorÚ__z%spkr   z!%s matching query does not exist.r:   )r  rÒ   r~   rý   r)   ÚcreaterI   ÚANDÚORr¸   rá   rS  r÷   rí   rL  Úorder_byrú   rb   r`   r'  )	r<   r°   r½   rž   ÚopÚorderÚparamÚqÚqss	            r=   Ú_get_next_or_previous_by_FIELDz$Model._get_next_or_previous_by_FIELD€  s_  € ØŒwð 	YÝÐWÑXÔXÐXØÐ&ˆTˆT $ˆØÐ&�� 3ˆÝ˜˜eœmÑ,Ô,ˆÝŒH�u”z 5Ð)¨K°2¨K¨K¸¼Ð+AÐBÍaÌeÐTÑTÔTˆÝŒH�a˜UœZÐ/Ð/¨2Ð/Ð/°Ð7Ð8ÅAÄDÐIÑIÔIˆðˆDŒNÔ+×1Ò1°$´+´.ÑAÔAÜðð Øðð çŠV�A‰YŒYßŠX   u¤z zÐ2°F¸U±NÑCÔCð	 	ð	Ø�a”5ˆLøÝð 	ð 	ð 	Ø×#Ò#Ø3°d´nÔ6JÔ6VÑVñô ð ð	øøøs   ÄD	 Ä	2D;c                 óì  — d|z  }t          | |¦  «        sÐ|rdnd}|rdnd}| j        j        }|                     | ¦  «        }  | j        j        j        di |¤Žj        di d|z   | j        j                             d¦  «        j        di | j        j        j	        | j        i¤Ži¤Ž 
                    |¦  «        d d…                              ¦   «         }t          | ||¦  «         t          | |¦  «        S )	Nz__%s_order_cacher´  rµ  r„  z-_orderz
_order__%sr…  r:   )rR   r`   rÆ   rŽ  r¸   rá   rL  r  r  rI   r¾  rÎ   r»   r~   )r<   r½   Ú	cachenamer¿  rÀ  Úorder_fieldr—  r¥   s           r=   rÇ   z$Model._get_next_or_previous_in_order•  s,  € Ø&¨Ñ0ˆ	Ý�t˜YÑ'Ô'ð 	*Ø Ð*�� dˆBØ 'Ð6�H�H¨YˆEØœ*Ô:ˆKØ%×BÒBÀ4ÑHÔHˆKðÐ6�”Ô/Ô6ÐEÐE¸ÐEÐEÜðð ð %ØñØU˜dœnÔ=×DÒDÀXÑNÔNÔUð ð Ø#œzœ}Ô1°4´7Ð;ðð ððð ÷ ’˜%‘”  ! ô	%÷ ’‘”ð õ �D˜) SÑ)Ô)Ð)Ý�t˜YÑ'Ô'Ð'r@   c                 ó`   ‡ ‡— ‰€t          ¦   «         Š|p‰ j        }ˆˆ fd„|j        D ¦   «         S )Nc           	      ót   •— i | ]4}|j         ‰v¯|j         t          t          ‰|j        ¦  «        |¦  «        “Œ5S r:   )rI   r   r~   rý   )rZ   r°   Úexcluder<   s     €€r=   ú
<dictcomp>z.Model._get_field_value_map.<locals>.<dictcomp>°  sJ   ø€ ð 
ð 
ð 
àØŒz Ð(Ð(ð ŒJ��g d¨E¬MÑ:Ô:¸EÑBÔBà(Ð(Ð(r@   )r�   r`   rŠ  )r<   r§   rÊ  s   ` `r=   Ú_get_field_value_mapzModel._get_field_value_map¬  sQ   øø€ Øˆ?Ý‘e”eˆGØÐ!�t”zˆð
ð 
ð 
ð 
ð 
àÔ3ð
ñ 
ô 
ð 	
r@   c                 óŒ   — | j         €t          d| z  ¦  «        ‚t          | |j                             ¦   «         j        ¦  «        S )Nz9Unsaved model instance %r cannot be used in an ORM query.)r  rÒ   r~   rŽ   Úget_related_fieldrý   )r<   r°   s     r=   Úprepare_database_savezModel.prepare_database_save¶  sG   € ØŒ7ˆ?ÝØKÈdÑRñô ð õ �t˜UÔ/×AÒAÑCÔCÔKÑLÔLÐLr@   c                 ó   — dS )aI  
        Hook for doing any extra model-wide validation after clean() has been
        called on every field by self.clean_fields. Any ValidationError raised
        by this method will not be associated with a particular field; it will
        have a special-case association with the field defined by NON_FIELD_ERRORS.
        Nr:   r;   s    r=   ÚcleanzModel.clean½  s	   € ð 	ˆr@   c                 ó4  — |                       |¬¦  «        \  }}|                      |¦  «        }|                      |¦  «        }|                     ¦   «         D ].\  }}|                     |g ¦  «                             |¦  «         Œ/|rt          |¦  «        ‚dS )zh
        Check unique constraints on the model and raise ValidationError if any
        failed.
        ©rÊ  N)Ú_get_unique_checksÚ_perform_unique_checksÚ_perform_date_checksr}   Ú
setdefaultÚextendr   )r<   rÊ  Úunique_checksÚdate_checksÚerrorsÚdate_errorsÚkÚvs           r=   Úvalidate_uniquezModel.validate_uniqueÆ  s«   € ð
 &*×%<Ò%<ÀWÐ%<Ñ%MÔ%MÑ"ˆ�{à×,Ò,¨]Ñ;Ô;ˆØ×/Ò/°Ñ<Ô<ˆà×%Ò%Ñ'Ô'ð 	/ð 	/‰DˆAˆqØ×Ò˜a Ñ$Ô$×+Ò+¨AÑ.Ô.Ð.Ð.àð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*r@   c                 óÐ  ‡— ‰€t          ¦   «         Šg }| j        | j        j        fg}g }|r| j        | j        j        fg}| j                             ¦   «         D ]^}|j        j        r!|                     ||j        j        f¦  «         |r-|j        j        r!|                     ||j        j        f¦  «         Œ_|D ]I\  }}|D ]A}	t          ˆfd„|	D ¦   «         ¦  «        s$|                     |t          |	¦  «        f¦  «         ŒBŒJ|rI|D ]F\  }}
|
D ]>}t          ˆfd„|j	        D ¦   «         ¦  «        s|                     ||j	        f¦  «         Œ?ŒGg }| j        | j        j
        fg}| j                             ¦   «         D ]#}|                     ||j        j
        f¦  «         Œ$|D ]¿\  }}|D ]·}|j        }|‰v rŒ|j        r|                     ||ff¦  «         |j        r'|j        ‰vr|                     |d||j        f¦  «         |j        r'|j        ‰vr|                     |d||j        f¦  «         |j        r'|j        ‰vr|                     |d||j        f¦  «         Œ¸ŒÀ||fS )a{  
        Return a list of checks to perform. Since validate_unique() could be
        called from a ModelForm, some fields may have been excluded; we can't
        perform a unique check on a model that is missing fields involved
        in that check. Fields that did not validate should also be excluded,
        but they need to be passed in via the exclude argument.
        Nc              3   ó    •K  — | ]}|‰v V — Œ	d S rº   r:   ©rZ   rI   rÊ  s     €r=   rg   z+Model._get_unique_checks.<locals>.<genexpr>ò  s'   øè è € Ð=Ð=¨t˜4 7˜?Ð=Ð=Ð=Ð=Ð=Ð=r@   c              3   ó    •K  — | ]}|‰v V — Œ	d S rº   r:   râ  s     €r=   rg   z+Model._get_unique_checks.<locals>.<genexpr>ù  s'   øè è € ÐMÐM°4˜t w˜ÐMÐMÐMÐMÐMÐMr@   ÚdateÚyearÚmonth)r�   r¸   r`   Úunique_togetherÚtotal_unique_constraintsÚget_parent_listr/  rÑ   rƒ   rŠ   r‡   rI   ÚuniqueÚunique_for_dateÚunique_for_yearÚunique_for_month)r<   rÊ  Úinclude_meta_constraintsrÙ  Úunique_togethersÚconstraintsÚparent_classÚmodel_classrç  ÚcheckÚmodel_constraintsÚ
constraintrÚ  Úfields_with_classrŠ   ro   rI   s    `               r=   rÔ  zModel._get_unique_checksÖ  sP  ø€ ð ˆ?Ý‘e”eˆGØˆà!œ^¨T¬ZÔ-GÐHÐIÐØˆØ#ð 	RØ œN¨D¬JÔ,OÐPÐQˆKØ œJ×6Ò6Ñ8Ô8ð 	ð 	ˆLØÔ!Ô1ð Ø ×'Ò'Ø! <Ô#5Ô#EÐFñô ð ð (ð ¨LÔ,>Ô,Wð Ø×"Ò"Ø! <Ô#5Ô#NÐOñô ð øð -=ð 	Fð 	FÑ(ˆK˜Ø(ð Fð F�ÝÐ=Ð=Ð=Ð=°uÐ=Ñ=Ô=Ñ=Ô=ð Fà!×(Ò(¨+µu¸U±|´|Ð)DÑEÔEÐEøðFð
 $ð 	OØ2=ð Oð OÑ.�Ð.Ø"3ð Oð O�JÝÐMÐMÐMÐM¸:Ô;LÐMÑMÔMÑMÔMð OØ%×,Ò,¨k¸:Ô;LÐ-MÑNÔNÐNøðOð
 ˆð
 #œn¨d¬jÔ.EÐFÐGÐØ œJ×6Ò6Ñ8Ô8ð 	Vð 	VˆLØ×$Ò$ l°LÔ4FÔ4SÐ%TÑUÔUÐUÐUà#4ð 	Yð 	YÑˆK˜Øð Yð Y�Ø”v�Ø˜7�?�?ØØ”8ð AØ!×(Ò(¨+¸°wÐ)?Ñ@Ô@Ð@ØÔ$ð W¨Ô):À'Ð)IÐ)IØ×&Ò&¨°V¸TÀ1ÔCTÐ'UÑVÔVÐVØÔ$ð W¨Ô):À'Ð)IÐ)IØ×&Ò&¨°V¸TÀ1ÔCTÐ'UÑVÔVÐVØÔ%ð Y¨!Ô*<ÀGÐ*KÐ*KØ×&Ò&¨°W¸dÀAÔDVÐ'WÑXÔXÐXøðYð ˜kÐ)Ð)r@   c                 óÔ  — i }|D �]a\  }}i }|D ]q}| j                              |¦  «        }t          | |j        ¦  «        }|�|dk    rt          j        j        rŒK|j        r| j        j	        sŒ_||t          |¦  «        <   Œrt          |¦  «        t          |¦  «        k    rŒ� |j        j        di |¤Ž}	|                      |j         ¦  «        }
| j        j	        s|
�|	                     |
¬¦  «        }	|	                     ¦   «         r`t          |¦  «        dk    r	|d         }nt"          }|                     |g ¦  «                             |                      ||¦  «        ¦  «         �Œc|S )Nr¶  rG  r…  r   r:   )r`   r  r~   rý   r   ÚfeaturesÚ!interprets_empty_strings_as_nullsrk  r÷   rî   Ústrrø   rá   rL  r<  rÊ  r›  r	   r×  r/  Úunique_error_message)r<   rÙ  rÛ  rò  Úunique_checkÚlookup_kwargsr\  ro   Úlookup_valuerÃ  Úmodel_class_pkÚkeys               r=   rÕ  zModel._perform_unique_checks  s•  € Øˆà)6ð *	ñ *	Ñ%ˆK˜ð ˆMØ*ð >ð >�
Ø”J×(Ò(¨Ñ4Ô4�Ý& t¨Q¬YÑ7Ô7�àÐ'Ø  BÒ&Ð&Ý"Ô+ÔMð 'ð Ø”=ð ¨¬Ô);ð àØ1=��c *™oœoÑ.Ð.õ �<Ñ Ô ¥C¨Ñ$6Ô$6Ò6Ð6Øà4�Ô-Ô4ÐEÐE°}ÐEÐEˆBð "×-Ò-¨kÔ.?Ñ@Ô@ˆNØ”;Ô%ð 3¨.Ð*DØ—Z’Z >�ZÑ2Ô2�Ø�yŠy‰{Œ{ð Ý�|Ñ$Ô$¨Ò)Ð)Ø& qœ/�C�Cå*�CØ×!Ò! # rÑ*Ô*×1Ò1Ø×-Ò-¨k¸<ÑHÔHñô ð ùð ˆr@   c                 ó"  — i }|D �]\  }}}}i }t          | |¦  «        }|€Œ|dk    r(|j        |d|z  <   |j        |d|z  <   |j        |d|z  <   nt          ||¦  «        ||›d|›�<   t          | |¦  «        ||<    |j        j        di |¤Ž}	| j        j        s"| j        �|	 	                    | j        ¬¦  «        }	|	 
                    ¦   «         r>|                     |g ¦  «                             |                      |||¦  «        ¦  «         �Œ
|S )Nrä  z%s__dayz	%s__monthz%s__yearrº  rG  r:   )r~   Údayræ  rå  rá   rL  r÷   rî   r  rÊ  r›  r×  r/  Údate_error_message)
r<   rÚ  rÛ  rò  Úlookup_typer°   Ú
unique_forrý  rä  rÃ  s
             r=   rÖ  zModel._perform_date_checksF  sU  € ØˆØ;Fð 	ñ 	Ñ7ˆK˜ e¨ZØˆMõ ˜4 Ñ,Ô,ˆDØˆ|ØØ˜fÒ$Ð$Ø8<¼�˜i¨*Ñ4Ñ5Ø:>¼*�˜k¨JÑ6Ñ7Ø9=¼�˜j¨:Ñ5Ñ6Ð6åFMØ˜+ñGô G�¨*¨*¨*°k°kÐBÑCõ $+¨4°Ñ#7Ô#7ˆM˜%Ñ à4�Ô-Ô4ÐEÐE°}ÐEÐEˆBð ”;Ô%ð ,¨$¬'Ð*=Ø—Z’Z 4¤7�ZÑ+Ô+�à�yŠy‰{Œ{ð Ø×!Ò! %¨Ñ,Ô,×3Ò3Ø×+Ò+¨K¸À
ÑKÔKñô ð ùð ˆr@   c                 ó  — | j         }|                     |¦  «        }t          |j        d         d| t	          |j        ¦  «        ||t	          |j        ¦  «        |t	          |                     |¦  «        j        ¦  «        dœ¬¦  «        S )Nrë  )r�   r•   r  r°   Úfield_labelÚ
date_fieldÚdate_field_label©ÚmessageÚcodeÚparams)r`   r  r   Úerror_messagesr3   Úverbose_name)r<   r  r\  r  rÕ   r°   s         r=   r  zModel.date_error_messagee  sŒ   € ØŒzˆØ—’˜zÑ*Ô*ˆÝØÔ(Ð):Ô;Ø"àÝ& tÔ'8Ñ9Ô9Ø*Ø#Ý'¨Ô(:Ñ;Ô;Ø(Ý$,¨T¯^ª^¸JÑ-GÔ-GÔ-TÑ$UÔ$Uðð ð
ñ 
ô 
ð 	
r@   c                 ó¢  ‡— |j         Š| |t          ‰j        ¦  «        |dœ}t          |¦  «        dk    rO‰                     |d         ¦  «        }t          |j        ¦  «        |d<   t          |j        d         d|¬¦  «        S ˆfd„|D ¦   «         }t          |t          d¦  «        ¦  «        |d	<   t          t          d
¦  «        d|¬¦  «        S )N)r�   rò  r•   rü  r…  r   r  rê  r
  c                 ó^   •— g | ])}t          ‰                     |¦  «        j        ¦  «        ‘Œ*S r:   )r3   r  r  )rZ   ro   rÕ   s     €r=   r\   z.Model.unique_error_message.<locals>.<listcomp>Œ  s=   ø€ ð ð ð Ø=>•˜Ÿš¨Ñ*Ô*Ô7Ñ8Ô8ðð ð r@   ÚandÚfield_labelsz9%(model_name)s with this %(field_labels)s already exists.rç  )	r`   r3   r  rø   r  r   r  r4   Ú_)r<   rò  rü  r  r°   r  rÕ   s         @r=   rû  zModel.unique_error_messagev  s  ø€ ØÔ ˆð Ø&Ý" 4Ô#4Ñ5Ô5Ø(ð	
ð 
ˆõ ˆ|ÑÔ Ò!Ð!Ø—N’N <°¤?Ñ3Ô3ˆEÝ$,¨UÔ-?Ñ$@Ô$@ˆF�=Ñ!Ý"ØÔ,¨XÔ6ØØðñ ô ð ðð ð ð ØBNðñ ô ˆLõ &3°<ÅÀ5ÁÄÑ%JÔ%JˆF�>Ñ"Ý"ÝÐUÑVÔVØ&Øðñ ô ð r@   c                 óÀ   — | j         | j        j        fg}| j                             ¦   «         D ]/}|j        j        r!|                     ||j        j        f¦  «         Œ0|S rº   )r¸   r`   rð  ré  r/  )r<   rð  rñ  s      r=   Úget_constraintszModel.get_constraints–  sj   € Øœ¨¬
Ô(>Ð?Ð@ˆØ œJ×6Ò6Ñ8Ô8ð 	Sð 	SˆLØÔ!Ô-ð SØ×"Ò" L°,Ô2DÔ2PÐ#QÑRÔRÐRøØÐr@   c                 óô  — |                       ¦   «         }t          j        | j        | ¬¦  «        }i }|D ]²\  }}|D ]ª}	 |                     || ||¬¦  «         Œ# t
          $ r�}t          |dd ¦  «        dk    rMt          |j        ¦  «        dk    r5| 	                    |j        d         g ¦  «         
                    |¦  «         n|                     |¦  «        }Y d }~Œ£d }~ww xY wŒ³|rt          |¦  «        ‚d S )Nra  )rÊ  rS  r  rê  r…  r   )r  r   rg  r¸   Úvalidater   r~   rø   rŠ   r×  r/  Úupdate_error_dict)	r<   rÊ  rð  rS  rÛ  rò  rô  rõ  Úes	            r=   Úvalidate_constraintszModel.validate_constraints�  s3  € Ø×*Ò*Ñ,Ô,ˆÝÔ# D¤N¸TÐBÑBÔBˆàˆØ.9ð 	=ð 	=Ñ*ˆKÐ*Ø/ð 
=ð 
=�
ð	=Ø×'Ò'¨°TÀ7ÐRWÐ'ÑXÔXÐXÐXøÝ&ð =ð =ð =å  6¨4Ñ0Ô0°HÒ<Ð<Ý 
Ô 1Ñ2Ô2°aÒ7Ð7à×)Ò)¨*Ô*;¸AÔ*>ÀÑCÔC×JÒJÈ1ÑMÔMÐMÐMà!"×!4Ò!4°VÑ!<Ô!<˜øøøøøøøøøð=øøøð
=ð ð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*s   ¾AÁ
C#Á"A7CÃC#c                 ó4  — i }|€t          ¦   «         }nt          |¦  «        }	 |                      |¬¦  «         n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w	 |                      ¦   «          n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w|rm|D ]&}|t
          k    r||vr|                     |¦  «         Œ'	 |                      |¬¦  «         n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w|rm|D ]&}|t
          k    r||vr|                     |¦  «         Œ'	 |                      |¬¦  «         n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w|rt          |¦  «        ‚dS )z®
        Call clean_fields(), clean(), validate_unique(), and
        validate_constraints() on the model. Raise a ValidationError for any
        errors that occur.
        NrÓ  )	r�   Úclean_fieldsr   r  rÑ  r	   r”   rß  r  )r<   rÊ  rß  r  rÛ  r  rI   s          r=   Ú
full_cleanzModel.full_clean±  s+  € ð ˆØˆ?Ý‘e”eˆGˆGå˜'‘l”lˆGð	1Ø×Ò gÐÑ.Ô.Ð.Ð.øÝð 	1ð 	1ð 	1Ø×(Ò(¨Ñ0Ô0ˆFˆFˆFˆFˆFˆFøøøøð	1øøøð
	1Ø�JŠJ‰LŒLˆLˆLøÝð 	1ð 	1ð 	1Ø×(Ò(¨Ñ0Ô0ˆFˆFˆFˆFˆFˆFøøøøð	1øøøð ð 	5Øð &ð &�ØÕ+Ò+Ð+°¸GÐ0CÐ0CØ—K’K Ñ%Ô%Ð%øð5Ø×$Ò$¨WÐ$Ñ5Ô5Ð5Ð5øÝ"ð 5ð 5ð 5Ø×,Ò,¨VÑ4Ô4������øøøøð5øøøð  ð 	5Øð &ð &�ØÕ+Ò+Ð+°¸GÐ0CÐ0CØ—K’K Ñ%Ô%Ð%øð5Ø×)Ò)°'Ð)Ñ:Ô:Ð:Ð:øÝ"ð 5ð 5ð 5Ø×,Ò,¨VÑ4Ô4������øøøøð5øøøð ð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*s]   ¤; »
A$ÁAÁA$Á(A= Á=
B&ÂB!Â!B&ÃC, Ã,
DÃ6DÄDÅE Å
FÅ%E?Å?Fc           	      ól  — |€t          ¦   «         }i }| j        j        D ]ƒ}|j        |v rŒt	          | |j        ¦  «        }|j        r
||j        v rŒ2	 t          | |j        | 	                    || ¦  «        ¦  «         Œ^# t          $ r}|j        ||j        <   Y d}~Œ|d}~ww xY w|rt          |¦  «        ‚dS )z
        Clean all fields and raise a ValidationError containing a dict
        of all validation errors if any occur.
        N)r�   r`   rŠ   rI   r~   rý   Úblankr¤  r»   rÑ  r   Ú
error_list)r<   rÊ  rÛ  ro   Ú	raw_valuer  s         r=   r  zModel.clean_fieldsà  sé   € ð
 ˆ?Ý‘e”eˆGàˆØ”Ô"ð 	.ð 	.ˆAØŒv˜Ð Ð Øõ    a¤iÑ0Ô0ˆIØŒwð ˜9¨¬Ð6Ð6Øð.Ý˜˜aœi¨¯ª°¸DÑ)AÔ)AÑBÔBÐBÐBøÝ"ð .ð .ð .Ø!"¤��q”v‘�����øøøøð.øøøð ð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*s   Á*A=Á=
B ÂBÂB c                 ó¤  — g |                       ¦   «         ¢|                      ¦   «         ¢ | j        di |¤Ž¢}| j        j        �s‹|                     d¦  «        pg }|g  | j        di |¤Ž¢|                      ¦   «         ¢|                      |¦  «        ¢z  }g |  	                    ¦   «         ¢|  
                    ¦   «         ¢|                      ¦   «         ¢|                      ¦   «         ¢|                      ¦   «         ¢R }|                     |¦  «         |s'|                     |                      ¦   «         ¦  «         |g |                      ¦   «         ¢|                      ¦   «         ¢|                      |¦  «        ¢|                      ¦   «         ¢|                      |¦  «        ¢|                      ¦   «         ¢|                      |¦  «        ¢z  }|S )NÚ	databasesr:   )Ú_check_swappableÚ_check_modelÚ_check_managersr`   r…   rÎ   Ú_check_fieldsÚ$_check_m2m_through_same_relationshipÚ_check_long_column_namesÚ_check_id_fieldÚ_check_field_name_clashesÚ#_check_model_name_db_lookup_clashesÚ3_check_property_name_related_field_accessor_clashesÚ_check_single_primary_keyrØ  Ú_check_column_name_clashesÚ_check_index_togetherÚ_check_unique_togetherÚ_check_indexesÚ_check_orderingÚ_check_constraintsÚ_check_default_pkÚ_check_db_table_comment)rœ   rž   rÛ  r$  Úclash_errorss        r=   ró  zModel.checkù  s.  € ð
Ø×!Ò!Ñ#Ô#ð
à×ÒÑÔð
ð !ˆSÔ Ð*Ð* 6Ð*Ð*ð
ˆð
 ŒyÔ ñ 	ØŸ
š
 ;Ñ/Ô/Ð5°2ˆIØð Ø"�Ô"Ð,Ð, VÐ,Ð,ðà×9Ò9Ñ;Ô;ðð ×-Ò-¨iÑ8Ô8ðñ ˆFð
Ø×$Ò$Ñ&Ô&ðà×.Ò.Ñ0Ô0ðð ×8Ò8Ñ:Ô:ðð ×HÒHÑJÔJð	ð
 ×.Ò.Ñ0Ô0ðð ˆLð �MŠM˜,Ñ'Ô'Ð'ð  ð @Ø—’˜c×<Ò<Ñ>Ô>Ñ?Ô?Ð?Øð Ø×*Ò*Ñ,Ô,ðà×+Ò+Ñ-Ô-ðð ×#Ò# IÑ.Ô.ðð ×$Ò$Ñ&Ô&ð	ð
 ×'Ò'¨	Ñ2Ô2ðð ×&Ò&Ñ(Ô(ðð ×,Ò,¨YÑ7Ô7ðñ ˆFð ˆr@   c                 óŠ  — | j         j        s¶| j         j        j        r¥t	          | j         j        t
          ¦  «        r| j         j        j        j        spt          j	        d¦  «        s\| j         j
        rP| j         j
        j        s?t          j        dt          j        › d�d| j         j
        j        j        › d�| d¬¦  «        gS g S )NÚDEFAULT_AUTO_FIELDzPAuto-created primary key used when not defining a primary key type, by default 'rk   z0Configure the DEFAULT_AUTO_FIELD setting or the zh.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'.zmodels.W042©Úhintr¥   Úid)r`   r_   r  rt   rY   r"   rŽ   ru   r   Úis_overriddenr©   Ú!_is_default_auto_field_overriddenr   ÚWarningr:  r¸   rE   rÝ   s    r=   r6  zModel._check_default_pk  sò   € ð ”	Ô"ð	à”	”Ô)ð	õ ˜3œ9œ<­Ñ7Ô7ð	ð ”I”LÔ-Ô9ð	õ Ô*Ð+?Ñ@Ô@ð	ð ”	Ô$ð	ð ”IÔ(ÔJð	õ ”ð8å Ô3ð8ð 8ð 8ðOØœ9Ô/Ô9ÔFðOð Oð Oð
 Ø$ðñ ô ðð ð ˆ	r@   c                 ó  — | j         j        sg S g }|D ]q}t          j        || ¦  «        sŒt          |         }|j        j        s@d| j         j        v s2|                     t          j
        |j        › d�| d¬¦  «        ¦  «         Œr|S )NÚsupports_commentsz8 does not support comments on tables (db_table_comment).zmodels.W046©r¥   r=  )r`   Údb_table_commentr   Úallow_migrate_modelr   rø  rB  Úrequired_db_featuresr/  r   r@  Údisplay_name)rœ   r$  rÛ  rí   r   s        r=   r7  zModel._check_db_table_comment?  s´   € àŒyÔ)ð 	ØˆIØˆØð 	ð 	ˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJàÔ#Ô5ðà&¨#¬)Ô*HÐHÐHà—’Ý”NØ%Ô2ð 6ð 6ð 6àØ(ð	ñ ô ñô ð øð ˆr@   c                 óÂ  — g }| j         j        rÐ	 t          j        | j         j        ¦  «         n°# t          $ r9 |                     t          j        d| j         j        z  d¬¦  «        ¦  «         Y nnt          $ rb | j         j         
                    d¦  «        \  }}|                     t          j        d| j         j        ›d|›d|›d�d¬¦  «        ¦  «         Y nw xY w|S )	z"Check if the swapped model exists.z-'%s' is not of the form 'app_label.app_name'.zmodels.E001©r=  rG   ú'z' references 'z0', which has not been installed, or is abstract.zmodels.E002)r`   r…   r   Ú	get_modelrÒ   r/  r   ÚErrorÚ	swappableÚLookupErrorÚsplit)rœ   rÛ  ra   r•   s       r=   r%  zModel._check_swappableV  s*  € ð ˆØŒ9Ôð 	ðÝ”˜sœyÔ0Ñ1Ô1Ð1Ð1øÝð ð ð Ø—’Ý”LØGØœ)Ô-ñ.à(ðñ ô ñô ð ð ð õ ð 	ð 	ð 	Ø(+¬	Ô(9×(?Ò(?ÀÑ(DÔ(DÑ%�	˜:Ø—’Ý”L�Lð œ9Ô.Ð.Ð.°	°	°	¸:¸:¸:ðGð )ð	ñ ô ñô ð ð ð ð	øøøð ˆs   �/ ¯A CÁ1A(CÃCc                 ó´   — g }| j         j        rI| j         j        s| j         j        r1|                     t          j        d| j        z  d¬¦  «        ¦  «         |S )Nz'Proxy model '%s' contains model fields.zmodels.E017rI  )r`   r„   r‡   rˆ   r/  r   rL  rC   ©rœ   rÛ  s     r=   r&  zModel._check_modelq  sj   € àˆØŒ9Œ?ð 	ØŒyÔ%ð ¨¬Ô)Eð Ø—’Ý”LØAÀCÄLÑPØ(ðñ ô ñô ð ð ˆr@   c                 óh   — g }| j         j        D ]"}|                      |j        di |¤Ž¦  «         Œ#|S )zPerform all manager checks.r:   )r`   rÐ   rØ  ró  )rœ   rž   rÛ  rÙ   s       r=   r'  zModel._check_managers~  sI   € ð ˆØ”yÔ)ð 	3ð 	3ˆGØ�MŠM˜-˜'œ-Ð1Ð1¨&Ð1Ð1Ñ2Ô2Ð2Ð2Øˆr@   c                 óÊ   — g }| j         j        D ]"}|                      |j        di |¤Ž¦  «         Œ#| j         j        D ]$}|                      |j        dd| i|¤Ž¦  «         Œ%|S )zPerform all field checks.Ú
from_modelr:   )r`   r‡   rØ  ró  rˆ   )rœ   rž   rÛ  r°   s       r=   r(  zModel._check_fields†  s‹   € ð ˆØ”YÔ+ð 	1ð 	1ˆEØ�MŠM˜+˜%œ+Ð/Ð/¨Ð/Ð/Ñ0Ô0Ð0Ð0Ø”YÔ1ð 	Að 	AˆEØ�MŠM˜+˜%œ+Ð?Ð?°Ð?¸Ð?Ð?Ñ@Ô@Ð@Ð@Øˆr@   c                 ó^  — g }g }| j         j        }d„ |D ¦   «         }d„ |D ¦   «         }|D ]�}|j        j        | |j        j        |j        j        f}||v rB|                     t          j        d|j        j        j         j	        z  | d¬¦  «        ¦  «         Œl|                     |¦  «         Œ‚|S )zBCheck if no relationship model is used by more than one m2m field.c              3   óX   K  — | ]%}t          |j        j        t          ¦  «        ¯!|V — Œ&d S rº   )rY   rŽ   r�   rV   rn   s     r=   rg   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>š  s6   è è € ÐSÐS˜¥z°!´.Ô2FÍ	Ñ'RÔ'RÐS�!ÐSÐSÐSÐSÐSÐSr@   c              3   óX   K  — | ]%}t          |j        j        t          ¦  «        ¯!|V — Œ&d S rº   )rY   rŽ   rb  rV   rn   s     r=   rg   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>�  s6   è è € ÐUÐU˜¥z°!´.Ô2HÍ)Ñ'TÔ'TÐU�!ÐUÐUÐUÐUÐUÐUr@   zWThe model has two identical many-to-many relations through the intermediate model '%s'.zmodels.E003rC  )
r`   rˆ   rŽ   r�   rb  Úthrough_fieldsr/  r   rL  r�   )rœ   rÛ  Úseen_intermediary_signaturesrŠ   ro   Ú	signatures         r=   r)  z*Model._check_m2m_through_same_relationship�  sñ   € ð ˆØ')Ð$à”Ô-ˆð TÐS˜VÐSÑSÔSˆð VÐU˜VÐUÑUÔUˆàð 	?ð 	?ˆAà”Ô$ØØ”Ô&Ø”Ô-ð	ˆIð Ð8Ð8Ð8Ø—’Ý”Lð?àœ.Ô0Ô6Ô<ñ=ð  Ø(ðñ ô ñô ð ð ð -×3Ò3°IÑ>Ô>Ð>Ð>Øˆr@   c                 ó°   ‡ — ˆ fd„‰ j         j        D ¦   «         }|r:|d         j        s-‰ j         j        j        dk    rt          j        d‰ d¬¦  «        gS g S )z%Check if `id` field is a primary key.c                 óJ   •— g | ]}|j         d k    ¯|‰j        j        k    ¯|‘Œ S rI  )rI   r`   r  )rZ   ro   rœ   s     €r=   r\   z)Model._check_id_field.<locals>.<listcomp>·  s8   ø€ ð 
ð 
ð 
Ø°´¸4²°ÀAÈÌÌÒDUÐDUˆAÐDUÐDUÐDUr@   r   r=  zP'id' can only be used as a field name if the field also sets 'primary_key=True'.zmodels.E004rC  )r`   r‡   rk  r  rI   r   rL  )rœ   rŠ   s   ` r=   r+  zModel._check_id_field´  s‰   ø€ ð
ð 
ð 
ð 
Ø”yÔ-ð
ñ 
ô 
ˆð ð 
	˜& œ)Ô/ð 
	°C´I´LÔ4EÈÒ4MÐ4Må”ð/àØ$ð	ñ ô ðð ð ˆIr@   c                 óÂ  — g }i }| j                              ¦   «         D ]²}|j         j        D ]£}|                     |j        ¦  «        p|                     |j        ¦  «        pd}|rU|                     t          j        d|j        ›d|j	        j         ›d|j        ›d|j	        j         ›d�	| d¬¦  «        ¦  «         |||j        <   |||j        <   Œ¤Œ³| j                              ¦   «         D ],}|j          
                    ¦   «         D ]}||vr
|||j        <   ŒŒ-| j         j        D ]»}|                     |j        ¦  «        p|                     |j        ¦  «        pd}|j        dk    o|o|j        dk    o
|j	        | k    }|rJ|sH|                     t          j        d|j        ›d|j        ›d	|j	        j         ›d�|d
¬¦  «        ¦  «         |||j        <   |||j        <   Œ¼|S )z2Forbid field shadowing in multi-table inheritance.NzThe field 'z' from parent model 'z' clashes with the field 'rk   zmodels.E005rC  r=  z' from model 'zmodels.E006)r`   ré  r‡   rÎ   rI   rý   r/  r   rL  r�   Ú
get_fields)rœ   rÛ  Úused_fieldsr®   ro   ÚclashÚid_conflicts          r=   r,  zModel._check_field_name_clashesÇ  sL  € ð ˆØˆð ”i×/Ò/Ñ1Ô1ð 	+ð 	+ˆFØ”\Ô.ð +ð +�Ø#Ÿš¨¬Ñ/Ô/ÐU°;·?²?À1Ä9Ñ3MÔ3MÐUÐQU�Øð 
Ø—M’MÝœ˜ð  %œz˜z˜z¨5¬;Ô+<Ð+<Ð+<¸a¼f¸f¸fÀaÄgÄmÀmÀmðUð !$Ø,ðñ ô ñ	ô 	ð 	ð '(�˜AœFÑ#Ø)*�˜AœIÑ&Ð&ð+ð& ”i×/Ò/Ñ1Ô1ð 	,ð 	,ˆFØ”\×,Ò,Ñ.Ô.ð ,ð ,�Ø˜KÐ'Ð'Ø*+�K ¤Ñ'øð,ð ”Ô'ð 	'ð 	'ˆAØ—O’O A¤FÑ+Ô+ÐQ¨{¯ª¸q¼yÑ/IÔ/IÐQÈTˆEð ”˜$’ÐV 5ÐV¨U¬Z¸4Ò-?ÐVÀEÄKÐSVÒDVð ð ð ˜[ð Ø—’Ý”L�Là./¬f¨f¨f°e´j°j°jÀ%Ä+ÔBSÐBSÐBSðUàØ(ð	ñ ô ñô ð ð #$ˆK˜œÑØ%&ˆK˜œ	Ñ"Ð"àˆr@   c           
      ó   — g }g }| j         j        D ]l}|                     ¦   «         \  }}|r<||v r8|                     t	          j        d|j        ›d|›d�d| d¬¦  «        ¦  «         ŒW|                     |¦  «         Œm|S )NzField 'z' has column name 'z ' that is used by another field.z$Specify a 'db_column' for the field.zmodels.E007r;  )r`   r‡   Úget_attname_columnr/  r   rL  rI   )rœ   Úused_column_namesrÛ  ro   r  Úcolumn_names         r=   r0  z Model._check_column_name_clashesþ  sº   € ð ÐØˆà”Ô'ð 	6ð 	6ˆAØ×1Ò1Ñ3Ô3‰NˆAˆ{ð ð 6˜{Ð.?Ð?Ð?Ø—’Ý”L�Là,-¬F¨F¨F°K°K°KðAàCØØ(ðñ ô ñô ð ð ð "×(Ò(¨Ñ5Ô5Ð5Ð5àˆr@   c                 ó4  — g }| j         }|                     d¦  «        s|                     d¦  «        r.|                     t	          j        d|z  | d¬¦  «        ¦  «         n6t          |v r-|                     t	          j        d|z  | d¬¦  «        ¦  «         |S )Nr  zgThe model name '%s' cannot start or end with an underscore as it collides with the query lookup syntax.zmodels.E023rC  zbThe model name '%s' cannot contain double underscores as it collides with the query lookup syntax.zmodels.E024)rC   Ú
startswithÚendswithr/  r   rL  r   )rœ   rÛ  r•   s      r=   r-  z)Model._check_model_name_db_lookup_clashes  sÐ   € àˆØ”\ˆ
Ø× Ò  Ñ%Ô%ð 	¨×)<Ò)<¸SÑ)AÔ)Að 	Ø�MŠMÝ”ðCØEOñPàØ$ð	ñ ô ñô ð ð õ ˜:Ð%Ð%Ø�MŠMÝ”ð@ØBLñMàØ$ð	ñ ô ñô ð ð ˆr@   c                 óØ   — g }| j         j        }d„ | j                              d¬¦  «        D ¦   «         }|D ]3}||v r-|                     t	          j        d|z  | d¬¦  «        ¦  «         Œ4|S )Nc              3   óZ   K  — | ]&}|j         r|j        ®|                     ¦   «         V — Œ'd S rº   )rO  Úrelated_modelÚget_attnamern   s     r=   rg   zLModel._check_property_name_related_field_accessor_clashes.<locals>.<genexpr>3  sJ   è è € ð #
ð #
àØŒ}ð#
ð "#¤Ð!<ð �MŠM‰OŒOà!<Ð!<Ð!<Ð!<ð#
ð #
r@   F©Úreversez8The property '%s' clashes with a related field accessor.zmodels.E025rC  )r`   r  Ú_get_fieldsr/  r   rL  )rœ   rÛ  r
  Úrelated_field_accessorsÚaccessors        r=   r.  z9Model._check_property_name_related_field_accessor_clashes/  s¤   € àˆØœÔ2ˆð#
ð #
à”Y×*Ò*°5Ð*Ñ9Ô9ð#
ñ #
ô #
Ðð
 0ð 		ð 		ˆHØ˜>Ð)Ð)Ø—’Ý”Lð$Ø&.ñ/àØ(ð	ñ ô ñô ð øð ˆr@   c                 ó¬   — g }t          d„ | j        j        D ¦   «         ¦  «        dk    r*|                     t	          j        d| d¬¦  «        ¦  «         |S )Nc              3   ó(   K  — | ]}|j         ¯	d V — ŒdS )r…  Nr�  rn   s     r=   rg   z2Model._check_single_primary_key.<locals>.<genexpr>G  s)   è è € ÐBÐB�Q°A´MÐBˆqÐBÐBÐBÐBÐBÐBr@   r…  zBThe model cannot have more than one field with 'primary_key=True'.zmodels.E026rC  )Úsumr`   r‡   r/  r   rL  rQ  s     r=   r/  zModel._check_single_primary_keyD  sj   € àˆÝÐBÐB˜#œ)Ô0ÐBÑBÔBÑBÔBÀQÒFÐFØ�MŠMÝ”ð*àØ$ð	ñ ô ñô ð ð ˆr@   c                 ól  — t          | j        j        t          t          f¦  «        st          j        d| d¬¦  «        gS t          d„ | j        j        D ¦   «         ¦  «        rt          j        d| d¬¦  «        gS g }| j        j        D ]+}|                     |  	                    |d¦  «        ¦  «         Œ,|S )z+Check the value of "index_together" option.z)'index_together' must be a list or tuple.zmodels.E008rC  c              3   óP   K  — | ]!}t          |t          t          f¦  «         V — Œ"d S rº   ©rY   rƒ   rM  ©rZ   rŠ   s     r=   rg   z.Model._check_index_together.<locals>.<genexpr>_  sD   è è € ð 
ð 
Ø6<•
˜6¥E­4 =Ñ1Ô1Ð1ð
ð 
ð 
ð 
ð 
ð 
r@   z6All 'index_together' elements must be lists or tuples.zmodels.E009Úindex_together)
rY   r`   ry  rƒ   rM  r   rL  rÑ   rØ  Ú_check_local_fields©rœ   rÛ  rŠ   s      r=   r1  zModel._check_index_togetherS  sì   € õ ˜#œ)Ô2µU½D°MÑBÔBð 	å”Ø?ØØ$ðñ ô ðð õ ð 
ð 
Ø@CÄ	Ô@Xð
ñ 
ô 
ñ 
ô 
ð 	õ ”ØLØØ$ðñ ô ðð ð ˆFØœ)Ô2ð Qð Q�Ø—’˜c×5Ò5°fÐ>NÑOÔOÑPÔPÐPÐPØˆMr@   c                 ól  — t          | j        j        t          t          f¦  «        st          j        d| d¬¦  «        gS t          d„ | j        j        D ¦   «         ¦  «        rt          j        d| d¬¦  «        gS g }| j        j        D ]+}|                     |  	                    |d¦  «        ¦  «         Œ,|S )z,Check the value of "unique_together" option.z*'unique_together' must be a list or tuple.zmodels.E010rC  c              3   óP   K  — | ]!}t          |t          t          f¦  «         V — Œ"d S rº   rw  rx  s     r=   rg   z/Model._check_unique_together.<locals>.<genexpr>|  sG   è è € ð 
ð 
àõ ˜6¥E­4 =Ñ1Ô1Ð1ð
ð 
ð 
ð 
ð 
ð 
r@   z7All 'unique_together' elements must be lists or tuples.zmodels.E011rç  )
rY   r`   rç  rƒ   rM  r   rL  rÑ   rØ  rz  r{  s      r=   r2  zModel._check_unique_togetherp  sì   € õ ˜#œ)Ô3µe½T°]ÑCÔCð 	å”Ø@ØØ$ðñ ô ðð õ ð 
ð 
àœ)Ô3ð
ñ 
ô 
ñ 
ô 
ð 	õ
 ”ØMØØ$ðñ ô ðð ð ˆFØœ)Ô3ð Rð R�Ø—’˜c×5Ò5°fÐ>OÑPÔPÑQÔQÐQÐQØˆMr@   c           	      óè  — g }t          ¦   «         }| j        j        D ]ý}|j        d         dk    s|j        d                              ¦   «         r2|                     t          j        d|j        z  | d¬¦  «        ¦  «         t          |j        ¦  «        |j	        k    r9|                     t          j        d|j        |j	        fz  | d¬¦  «        ¦  «         |j
        r<|j        D ]4}|                     d„ |                      |¦  «        D ¦   «         ¦  «         Œ5Œþ|D �]v}t          j        || ¦  «        sŒt           |         }|j        j        sdd	| j        j        v sVt)          d
„ | j        j        D ¦   «         ¦  «        r3|                     t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt)          d„ | j        j        D ¦   «         ¦  «        r3|                     t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt)          d„ | j        j        D ¦   «         ¦  «        r3|                     t          j        d|j        z  d| d¬¦  «        ¦  «         �Œxd„ | j        j        D ¦   «         }|d„ | j        j        D ¦   «         z  }||z  }|                     |                      |d¦  «        ¦  «         |S )z/Check fields, names, and conditions of indexes.r   r  z@The index name '%s' cannot start with an underscore or a number.zmodels.E033rC  z8The index name '%s' cannot be longer than %d characters.zmodels.E034c              3   ó&   K  — | ]}|d          V — ŒdS )r   Nr:   )rZ   Úrefs     r=   rg   z'Model._check_indexes.<locals>.<genexpr>ª  s7   è è € ð &ð &Ø#&˜˜Aœð&ð &ð &ð &ð &ð &r@   Úsupports_partial_indexesc              3   ó(   K  — | ]}|j         d uV — Œd S rº   )Ú	condition©rZ   rÚ   s     r=   rg   z'Model._check_indexes.<locals>.<genexpr>´  s)   è è € ÐQÐQ°e�e”o¨TÐ1ÐQÐQÐQÐQÐQÐQr@   z,%s does not support indexes with conditions.zLConditions will be ignored. Silence this warning if you don't care about it.zmodels.W037r;  Úsupports_covering_indexesc              3   ó$   K  — | ]}|j         V — Œd S rº   ©Úincluder„  s     r=   rg   z'Model._check_indexes.<locals>.<genexpr>Ä  s$   è è € ÐCÐC¨�e”mÐCÐCÐCÐCÐCÐCr@   z1%s does not support indexes with non-key columns.zQNon-key columns will be ignored. Silence this warning if you don't care about it.zmodels.W040Úsupports_expression_indexesc              3   ó$   K  — | ]}|j         V — Œd S rº   )Úcontains_expressionsr„  s     r=   rg   z'Model._check_indexes.<locals>.<genexpr>Ô  s%   è è € ÐPÐP°U�eÔ0ÐPÐPÐPÐPÐPÐPr@   z+%s does not support indexes on expressions.zKAn index won't be created. Silence this warning if you don't care about it.zmodels.W043c                 ó,   — g | ]}|j         D ]\  }}|‘ŒŒS r:   )Úfields_orders)rZ   rÚ   r°   r  s       r=   r\   z(Model._check_indexes.<locals>.<listcomp>á  s@   € ð 
ð 
ð 
ØÀÔATð
ð 
Ù5=°U¸AˆEð
ð 
ð 
ð 
r@   c                 ó&   — g | ]}|j         D ]}|‘ŒŒS r:   r‡  )rZ   rÚ   rˆ  s      r=   r\   z(Model._check_indexes.<locals>.<listcomp>ä  s'   € ÐWÐWÐW˜uÈÌÐWÐW¸g�7ÐWÐWÐWÐWr@   r™   )r�   r`   r™   rI   Úisdigitr/  r   rL  rø   Úmax_name_lengthr‹  Úexpressionsr’   Ú_get_expr_referencesr   rE  r   rø  r�  rF  rÑ   r@  rG  r…  r‰  rØ  rz  )	rœ   r$  rÛ  Ú
referencesrÚ   Ú
expressionrí   r   rŠ   s	            r=   r3  zModel._check_indexesŽ  sš  € ð ˆÝ‘U”Uˆ
Ø”YÔ&ð 	ð 	ˆEð Œz˜!Œ} Ò#Ð# u¤z°!¤}×'<Ò'<Ñ'>Ô'>Ð#Ø—’Ý”Lð'Ø).¬ñ4àØ(ð	ñ ô ñô ð õ �5”:‰Œ Ô!6Ò6Ð6Ø—’Ý”Lð&Ø).¬°UÔ5JÐ(KñLàØ(ð	ñ ô ñô ð ð Ô)ð Ø"'Ô"3ð ð �JØ×%Ò%ð &ð &Ø*-×*BÒ*BÀ:Ñ*NÔ*Nð&ñ &ô &ñ ô ð ð øð ð 3	ñ 3	ˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJàÔ#Ô<ðà-°´Ô1OÐOÐOÝÐQÐQ¸s¼yÔ?PÐQÑQÔQÑQÔQð Pà—’Ý”NØFØ$Ô1ñ2ð:ð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô=ðà.°#´)Ô2PÐPÐPÝÐCÐC°´Ô1BÐCÑCÔCÑCÔCð Qà—’Ý”NØKØ$Ô1ñ2ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô?ðà0°C´IÔ4RÐRÐRÝÐPÐP¸c¼iÔ>OÐPÑPÔPÑPÔPð Sà—’Ý”NØEØ$Ô1ñ2ð:ð  Ø(ð	ñ 	ô 	ñô ð ùð
ð 
Ø"œyÔ0ð
ñ 
ô 
ˆð 	ÐWÐW¨¬	Ô(9ÐWÑWÔWÑWˆØ�*ÑˆØ�Š�c×-Ò-¨f°iÑ@Ô@ÑAÔAÐAØˆr@   c                 ót  — ddl m} i }| j                             d¬¦  «        D ]&}|||j        <   t          |d¦  «        r
|||j        <   Œ'g }|D ]è}	 ||         }t          |j        |j	        ¦  «        r5| 
                    t          j        d|›d|›d|›d	�| d
¬¦  «        ¦  «         ŒZ|| j        j        vr?| 
                    t          j        d|›d|›d| j        j        ›d	�d| d¬¦  «        ¦  «         Œ¨# t          $ r4 | 
                    t          j        d|›d|›d	�| d¬¦  «        ¦  «         Y Œåw xY w|S )Nr   )ÚmodelsFrm  rý   rJ  z' refers to a ManyToManyField 'z.', but ManyToManyFields are not permitted in 'rk   zmodels.E013rC  z' refers to field 'z' which is not local to model 'z4This issue may be caused by multi-table inheritance.zmodels.E016r;  z#' refers to the nonexistent field 'zmodels.E012)Ú	django.dbr–  r`   ro  rI   rR   rý   rY   rŽ   ÚManyToManyRelr/  r   rL  r‡   r'  rÿ   )rœ   rŠ   Úoptionr–  Úforward_fields_mapr°   rÛ  r\  s           r=   rz  zModel._check_local_fieldsé  sÝ  € à$Ð$Ð$Ð$Ð$Ð$ð  ÐØ”Y×*Ò*°5Ð*Ñ9Ô9ð 	:ð 	:ˆEØ-2Ð˜uœzÑ*Ý�u˜iÑ(Ô(ð :Ø49Ð" 5¤=Ñ1øàˆØ ð '	ð '	ˆJð&Ø*¨:Ô6�õ ˜eÔ0°&Ô2FÑGÔGð Ø—M’MÝœ˜ð !'  Ø * 
 
Ø &  ðð !$Ø,ð
ñ 
ô 
ñô ð ð ð  #¤)Ô"8Ð8Ð8Ø—M’MÝœ˜à'- v v¨z¨z¨z¸3¼9Ô;PÐ;PÐ;PðRà!WØ #Ø,ðñ ô ñô ð øøõ9 ð ð ð Ø—’Ý”L�Lð #˜F˜FØ&˜J˜Jðð
  Ø(ðñ ô ñ
ô 
ð 
ð 
ð 
ðøøøðJ ˆs   ÁC7Ã7;D5Ä4D5c           
      óÖ  — | j         j        rt          j        d| d¬¦  «        gS | j         j        s| j         j        sg S t          | j         j        t          t          f¦  «        st          j        d| d¬¦  «        gS g }| j         j        }d„ |D ¦   «         }d„ |D ¦   «         }g }g }|D ]6}t          |v r| 
                    |¦  «         Œ!| 
                    |¦  «         Œ7|}|D ]â}| }d}|                     t          ¦  «        D ]Á}		 |	d	k    r|j         j        }n|j                              |	¦  «        }|j        r|j        d
         j        j        }nd}ŒR# t$          t&          f$ r\ |�*|                     |	¦  «        €B|                     |	¦  «        €-| 
                    t          j        d|z  | d¬¦  «        ¦  «         Y Œ¾w xY wŒãd„ |D ¦   «         }g }
| j         }t-          t/          j        d„ t/          |j        |j        ¦  «        D ¦   «         ¦  «        ¦  «        }|
                     ||z
  ¦  «         |
D ]/}| 
                    t          j        d|z  | d¬¦  «        ¦  «         Œ0|S )ze
        Check "ordering" option -- is it a list of strings and do all fields
        exist?
        z?'ordering' and 'order_with_respect_to' cannot be used together.zmodels.E021rC  zQ'ordering' must be a tuple or list (even if you want to order by only one field).zmodels.E014c              3   óP   K  — | ]!}t          |t          ¦  «        ¯|d k    ¯|V — Œ"dS )ú?N)rY   rú  rn   s     r=   rg   z(Model._check_ordering.<locals>.<genexpr>@  s5   è è € ÐGÐG˜¥z°!µSÑ'9Ô'9ÐG¸aÀ3ºh¸h�!¸h¸h¸h¸hÐGÐGr@   c              3   óX   K  — | ]%}|                      d ¦  «        r
|dd…         n|V — Œ&dS )r·  r…  N)rg  rn   s     r=   rg   z(Model._check_ordering.<locals>.<genexpr>C  s?   è è € ÐFÐF¸!˜AŸLšL¨Ñ-Ô-Ð4�1�Q�R�R”5�5°1ÐFÐFÐFÐFÐFÐFr@   Nr  éÿÿÿÿzJ'ordering' refers to the nonexistent field, related field, or lookup '%s'.zmodels.E015c                 ó   — h | ]
}|d k    ¯|’ŒS rG  r:   rn   s     r=   rp   z(Model._check_ordering.<locals>.<setcomp>m  s   € Ð1Ð1Ð1˜ q¨D¢y y�! y y yr@   c              3   ó‚   K  — | ]:}|j         r|j        r|j        |j        fn|j                             ¦   «         fV — Œ;d S rº   )rt   ÚconcreterI   rý   r°   Úrelated_query_namern   s     r=   rg   z(Model._check_ordering.<locals>.<genexpr>v  sk   è è € ð  ð  ð ð œð5Ø/0¬zð5�”˜œÐ#Ð#à”g×0Ò0Ñ2Ô2Ð4ð ð  ð  ð  ð  ð  r@   )r`   Ú_ordering_clashr   rL  rÆ   ri   rY   rM  rƒ   r   r/  rO  r  r  rO  Ú
path_infosÚto_optsr�   r
   ÚAttributeErrorÚget_transformÚ
get_lookupr�   r   Úfrom_iterablerŠ   rR  rØ  )rœ   rÛ  rŠ   Ú_fieldsÚrelated_fieldsro   r°   Ú_clsÚfldÚpartÚinvalid_fieldsrÕ   Úvalid_fieldsÚinvalid_fields                 r=   r4  zModel._check_ordering   s*  € ð Œ9Ô$ð 	å”ØUØØ$ðñ ô ðð ð Œ9Ô*ð 	°#´)Ô2Dð 	ØˆIå˜#œ)Ô,­tµU¨mÑ<Ô<ð 	å”ð'àØ$ð	ñ ô ðð ð ˆØ”Ô#ˆð HÐG˜VÐGÑGÔGˆð GÐF¸vÐFÑFÔFˆð ˆØˆØð 	"ð 	"ˆAÝ˜QˆˆØ×%Ò% aÑ(Ô(Ð(Ð(à—’˜qÑ!Ô!Ð!Ð!Øˆð $ð 	ð 	ˆEØˆDØˆCØŸš¥JÑ/Ô/ð ð �ðà˜t’|�|Ø"œjœm˜˜à"œj×2Ò2°4Ñ8Ô8˜Ø”ð $Ø"œ~¨bÔ1Ô9Ô?˜˜à#˜øøÝ)­>Ð:ð ð ð Ø�{Ø×)Ò)¨$Ñ/Ô/Ð7¸C¿NºNÈ4Ñ<PÔ<PÐ<XàŸšÝ"œLð!AØCHñ!Ià$'Ø#0ð	ñ ô ñô ð øøð	øøøðð4 2Ð1˜VÐ1Ñ1Ô1ˆð ˆð ŒyˆÝÝÔð  ð  õ ˜tœ{¨DÔ,@ÑAÔAð	 ñ  ô  ñ ô ñ
ô 
ˆð 	×Ò˜f |Ñ3Ñ4Ô4Ð4à+ð 	ð 	ˆMØ�MŠMÝ”ð-Ø/<ñ=àØ$ð	ñ ô ñô ð ð ð ˆs   ÄAEÅA*GÇGc                 ó2  — |sg S g }d}d}|D ]^}t          j        || ¦  «        sŒt          |         }|j                             ¦   «         }|�|j        j        rŒM|€|}|}ŒT||k     r|}|}Œ_|€|S | j        j        D ]j}| 	                    ¦   «         \  }	}
|j
        €J|
�Ht          |
¦  «        |k    r5|                     t          j        d|
›d|›d|›d�d| d¬¦  «        ¦  «         Œk| j        j        D ]£}t!          |j        j        t&          ¦  «        rŒ"|j        j        j        j        D ]j}| 	                    ¦   «         \  }	}|j
        €J|�Ht          |¦  «        |k    r5|                     t          j        d	|›d|›d|›d�d
| d¬¦  «        ¦  «         ŒkŒ¤|S )z–
        Check that any auto-generated column names are shorter than the limits
        for each database in which the model will be created.
        Nz.Autogenerated column name too long for field "z". Maximum length is "z" for database "z".z/Set the column name manually using 'db_column'.zmodels.E018r;  z2Autogenerated column name too long for M2M field "z\Use 'through' to create a separate model for M2M and then set column_name using 'db_column'.zmodels.E019)r   rE  r   Úopsr�  rø  Útruncates_namesr`   r‡   rc  Ú	db_columnrø   r/  r   rL  rˆ   rY   rŽ   rb  rú  )rœ   r$  rÛ  Úallowed_lenÚdb_aliasrí   r   r�  ro   r  re  Úm2mÚrel_names                r=   r*  zModel._check_long_column_names‹  s-  € ð ð 	ØˆIØˆØˆØˆð ð 	"ð 	"ˆBåÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJØ(œn×<Ò<Ñ>Ô>ˆOØÐ&¨*Ô*=Ô*MÐ&ØàÐ&Ø"1�KØ!�H�HØ$ {Ò2Ð2Ø"1�KØ!�HøàÐØˆMà”Ô'ð 	ð 	ˆAØ×1Ò1Ñ3Ô3‰NˆAˆ{ð
 ”Ð#ØÐ+Ý˜Ñ$Ô$ {Ò2Ð2à—’Ý”L�Lð '˜;˜;¨¨¨°X°X°Xð?ð OØØ(ðñ ô ñ	ô 	ð 	øð ”Ô-ð 	ð 	ˆAå˜!œ.Ô0µ#Ñ6Ô6ð Øð ”~Ô-Ô3Ô@ð ð �Ø!×4Ò4Ñ6Ô6‘��8à”MÐ)Ø Ð,Ý˜H™œ¨Ò3Ð3à—M’MÝœ˜ð  (˜x˜x¨¨¨°h°h°hð@ð!Rð !$Ø,ð
ñ 
ô 
ñô ð øðð* ˆr@   c              #   óR  K  — t          |t          ¦  «        r†|j        D ]|}t          |t          ¦  «        rJ|\  }}t          |                     t
          ¦  «        ¦  «        V — |                      |¦  «        E d {V —† Œa|                      |¦  «        E d {V —† Œ}d S t          |t          ¦  «        r0t          |j                             t
          ¦  «        ¦  «        V — d S t          |d¦  «        r2| 
                    ¦   «         D ]}|                      |¦  «        E d {V —† Œd S d S )NÚget_source_expressions)rY   r)   Úchildrenrƒ   rO  r   r’  r(   rI   rR   r¼  )rœ   ÚexprÚchildÚlookuprS   Úsrc_exprs         r=   r’  zModel._get_expr_referencesÞ  sg  è è € å�d�AÑÔð 	>Øœð ?ð ?�Ý˜e¥UÑ+Ô+ð ?Ø$)‘M�F˜EÝ §¢­ZÑ 8Ô 8Ñ9Ô9Ð9Ð9Ð9Ø"×7Ò7¸Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>à"×7Ò7¸Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ð?ð ?õ ˜�aÑ Ô ð 	>Ý˜œ	Ÿš­
Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ý�TÐ3Ñ4Ô4ð 	>Ø ×7Ò7Ñ9Ô9ð >ð >�Ø×3Ò3°HÑ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ð	>ð 	>ð>ð >r@   c                 ó"  — g }|D �]ˆ}t          j        || ¦  «        sŒt          |         }|j        j        sdd| j        j        v sVt          d„ | j        j        D ¦   «         ¦  «        r3| 	                    t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt          d„ | j        j        D ¦   «         ¦  «        r3| 	                    t          j        d	|j        z  d| d
¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt          d„ | j        j        D ¦   «         ¦  «        r3| 	                    t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt          d„ | j        j        D ¦   «         ¦  «        r3| 	                    t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt          d„ | j        j        D ¦   «         ¦  «        r3| 	                    t          j        d|j        z  d| d¬¦  «        ¦  «         t#          t%          j        d„ | j        j        D ¦   «         ¦  «        ¦  «        }t#          ¦   «         }| j        j        D �]§}t)          |t*          ¦  «        rµ|j        j        sd| j        j        vrGt)          |j        t.          ¦  «        r-|                     |                      |j        ¦  «        ¦  «         |j        j        sd| j        j        vr9|j        r2|j        D ]*}|                     |                      |¦  «        ¦  «         Œ+ŒÍt)          |t8          ¦  «        rÅ|j        j        sd| j        j        vr«t)          |j        t.          ¦  «        r-|                     |                      |j        ¦  «        ¦  «         t          d„ |j                             ¦   «         D ¦   «         ¦  «        r4| 	                    t          j        d|j        ›d�d| d¬¦  «        ¦  «         �Œ©|D �]^}	}
|	dk    r|                      |	¦  «         |
sŒ#	 |	dk    r| j        j!        }n| j         "                    |	¦  «        }|j#        r|j$        s|j%        rŒgn# tL          $ r Y Œtw xY w|
d         }tO          |d¦  «        r}tO          |d ¦  «        rm| (                    |¦  «        €X| )                    |¦  «        €C| 	                    t          j*        d!tW          j,        |	g|
z   ¦  «        z  | d"¬#¦  «        ¦  «         �Œ| -                    |  .                    |d$¦  «        ¦  «         �ŒŠ|S )%NÚ supports_table_check_constraintsc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rº   )rY   r   ©rZ   rõ  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr>ø  s@   è è € ð ð àõ ˜:¥Ñ7Ô7ðð ð ð ð ð r@   z&%s does not support check constraints.zOA constraint won't be created. Silence this warning if you don't care about it.zmodels.W027r;  r�  c              3   óR   K  — | ]"}t          |t          ¦  «        o|j        d uV — Œ#d S rº   )rY   r   rƒ  rÅ  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr>	  sS   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð 5ØÔ(°Ð4ðð ð ð ð ð r@   z7%s does not support unique constraints with conditions.zmodels.W036Ú&supports_deferrable_unique_constraintsc              3   óR   K  — | ]"}t          |t          ¦  «        o|j        d uV — Œ#d S rº   )rY   r   Ú
deferrablerÅ  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr> 	  sS   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð 6ØÔ)°Ð5ðð ð ð ð ð r@   z2%s does not support deferrable unique constraints.zmodels.W038r…  c              3   óN   K  — | ] }t          |t          ¦  «        o|j        V — Œ!d S rº   )rY   r   rˆ  rÅ  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr>4	  sI   è è € ð ð àõ ˜:Õ'7Ñ8Ô8ÐO¸ZÔ=Oðð ð ð ð ð r@   z<%s does not support unique constraints with non-key columns.zmodels.W039r‰  c              3   óN   K  — | ] }t          |t          ¦  «        o|j        V — Œ!d S rº   )rY   r   r‹  rÅ  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr>G	  sN   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð 4ØÔ3ðð ð ð ð ð r@   z6%s does not support unique constraints on expressions.zmodels.W044c              3   ób   K  — | ]*}t          |t          ¦  «        ¯g |j        ¢|j        ¢R V — Œ+d S rº   )rY   r   rŠ   rˆ  rÅ  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr>Y	  sZ   è è € ð $ð $à"Ý! *Õ.>Ñ?Ô?ð$Ø=�jÔ'Ð=¨*Ô*<Ð=Ð=ð$ð $ð $ð $ð $ð $r@   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rº   )rY   r    )rZ   r¾  s     r=   rg   z+Model._check_constraints.<locals>.<genexpr>{	  s@   è è € ð ð à $õ ' t­VÑ4Ô4ðð ð ð ð ð r@   zCheck constraint zS contains RawSQL() expression and won't be validated during the model full_clean().z0Silence this warning if you don't care about it.zmodels.W045r  r   r¨  r©  z.'constraints' refers to the joined field '%s'.zmodels.E041rC  rð  )/r   rE  r   rø  rÃ  r`   rF  rÑ   rð  r/  r   r@  rG  r�  rÇ  r…  r‰  r�   r   rª  rY   r   rƒ  r)   r’   r’  r‹  r‘  r   ró  ÚflattenrI   r”   r  r  rO  Úmany_to_manyÚone_to_manyr
   rR   r¨  r©  rL  r   rÌ   rØ  rz  )rœ   r$  rÛ  rí   r   rŠ   r“  rõ  r”  r\  Úlookupsr°   Úfirst_lookups                r=   r5  zModel._check_constraintsî  s3  € àˆØð {	Jñ {	JˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJàÔ#ÔDðà5¸¼Ô9WÐWÐWÝð ð à"%¤)Ô"7ðñ ô ñ ô ð Xð
 —’Ý”NØ@Ø$Ô1ñ2ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô<ðà-°´Ô1OÐOÐOÝð ð ð #&¤)Ô"7ðñ ô ñ ô ð Pð —’Ý”Nð&Ø(2Ô(?ñ@ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#ÔJðà;Ø”9Ô1ð2ð 2åð ð ð #&¤)Ô"7ðñ ô ñ ô ð2ð —’Ý”NØLØ$Ô1ñ2ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô=ðà.°#´)Ô2PÐPÐPÝð ð à"%¤)Ô"7ðñ ô ñ ô ð Qð
 —’Ý”Nð#Ø%/Ô%<ñ=ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô?ðà0°C´IÔ4RÐRÐRÝð ð ð #&¤)Ô"7ðñ ô ñ ô ð Sð —’Ý”Nð'Ø)3Ô)@ñAðBð  Ø(ð	ñ 	ô 	ñô ð õ ÝÔ#ð $ð $à&)¤iÔ&;ð$ñ $ô $ñ ô ñô ˆFõ ™œˆJØ!œiÔ3ð +ñ +�
Ý˜jÕ*:Ñ;Ô;ð *à"Ô+ÔDðà5Ø"œyÔ=ð>ð >å$ ZÔ%9½1Ñ=Ô=ð>ð #×)Ò)Ø×4Ò4°ZÔ5IÑJÔJñô ð ð #Ô+ÔGðTà8Ø"œyÔ=ð>ð >à$Ô9ð>ð +5Ô*@ð Tð T˜JØ&×-Ò-¨c×.FÒ.FÀzÑ.RÔ.RÑSÔSÐSÐSøÝ 
­OÑ<Ô<ð à"Ô+ÔLðà=Ø"œyÔ=ð>ð >õ & jÔ&6½Ñ:Ô:ð Ø&×-Ò-Ø #× 8Ò 8¸Ô9IÑ JÔ Jñô ð õ ð ð à(2Ô(8×(@Ò(@Ñ(BÔ(Bðñ ô ñ ô ð ð #ŸMšMÝ &¤ð%F¸
¼ð %Fð %Fð %Fð).ð ),Ø'4ð
!"ñ 
!"ô 
!"ñô ð ùð )3ð ñ Ð$�
˜Wà Ò%Ð%Ø—J’J˜zÑ*Ô*Ð*Øð àðØ! TÒ)Ð)Ø #¤	¤˜˜à #¤	× 3Ò 3°JÑ ?Ô ?˜Ø Ô,ð !°Ô0Bð !ÀeÔFWð !Ø ð!øå(ð ð ð Ø�Hðøøøð  ' qœz�å˜E ?Ñ3Ô3ðå  |Ñ4Ô4ðð ×+Ò+¨LÑ9Ô9ÐAØ×(Ò(¨Ñ6Ô6Ð>à—M’MÝœØLÝ(œo¨z¨l¸WÑ.DÑEÔEñFà #Ø,ð	ñ ô ñô ð ùð �MŠM˜#×1Ò1°&¸-ÑHÔHÑIÔIÐIÑIØˆs   Ñ9AR=Ò=
S
Ó	S
rº   )NN)FFNN)FFFNN)FNFFNNr  )NTT)GrC   rD   rE   r  Úclassmethodr  r>   rB   r  r"  r+  r$  r:  r<  r?  râ   r  rB  rX  rZ  r]  r_  Úalters_datarp  rl  rw  rx  r�  r‘  rf  r©  r¬  r²  rÄ  rÇ   rÌ  rÏ  rÑ  rß  rÔ  rÕ  rÖ  r  rû  r  r  r  r  ró  r6  r7  r%  r&  r'  r(  r)  r+  r,  r0  r-  r.  r/  r1  r2  r3  rz  r4  r*  r’  r5  r]   rã   s   @r=   rð   rð   Ë  só  ø€ € € € € ðp2ð p2ð p2ð p2ð p2ðd ð
ð 
ñ „[ð
ð<ð <ð <ðEð Eð Eð!ð !ð !ðð ð ð
1ð 1ð 1ðð ð ð"$ð $ð $ð,.ð .ð .ð .ð;ð ;ð ;ð 
ˆ�+˜{Ñ	+Ô	+€Bð
ð 
ð 
ðF/ð F/ð F/ð F/ðPUð Uð Uð Uð,ð ,ð ,ð$ QUð4
ð 4
ð 4
ð 4
ðl €DÔð QUð
ð 
ð 
ð 
ð €EÔð ØØØØð@ð @ð @ð @ðD !€IÔð!ð !ð !ðJ ØØØØØðXð Xð Xð Xðt,ð ,ð ,ð8
ð 
ð 
ð4ð 4ð 4ð 4ðl	"ð 	"ð 	"ð 	"ð €FÔð
ð 
ð 
ð 
ð €GÔð
ð 
ð 
ðð ð ð*(ð (ð (ð.
ð 
ð 
ð 
ðMð Mð Mðð ð ð*ð *ð *ð *ð =*ð =*ð =*ð =*ð~/ð /ð /ðbð ð ð>
ð 
ð 
ð"ð ð ð@ð ð ð*ð *ð *ð *ð(-*ð -*ð -*ð -*ð^*ð *ð *ð *ð2 ð#ð #ñ „[ð#ðJ ðð ñ „[ðð> ðð ñ „[ðð, ðð ñ „[ðð4 ð
ð 
ñ „[ð
ð ðð ñ „[ðð ðð ñ „[ðð ð!ð !ñ „[ð!ðF ðð ñ „[ðð$ ð4ð 4ñ „[ð4ðl ðð ñ „[ðð0 ðð ñ „[ðð. ðð ñ „[ðð( ðð ñ „[ðð ðð ñ „[ðð8 ðð ñ „[ðð: ðXð Xñ „[ðXðt ð4ð 4ñ „[ð4ðl ðhð hñ „[ðhðT ðPð Pñ „[ðPðd ð>ð >ñ „[ð>ð ð~ð ~ñ „[ð~ð ~ð ~ð ~ð ~r@   rð   )Ú	metaclassc                 óð   ‡— ‰j         j        }|                     | ¦  «        } ‰j                             |¦  «        j        di |¤Ž                     ˆfd„t          |¦  «        D ¦   «         dg¦  «         d S )Nc                 ó0   •— g | ]\  }} ‰||¬ ¦  «        ‘ŒS ))r  r„  r:   )rZ   rÀ  r  Úordered_objs      €r=   r\   z$method_set_order.<locals>.<listcomp>»	  s,   ø€ ÐNÐNÐN©i¨e°Rˆˆ˜ 5Ð	)Ñ	)Ô	)ÐNÐNÐNr@   r„  r:   )r`   rÆ   Úget_forward_related_filterrÄ   rK  rL  Úbulk_updateÚ	enumerate)r<   rØ  Úid_listrS  Ú	order_wrtr—  s    `    r=   Úmethod_set_orderrÞ  ·	  s‹   ø€ ØÔ!Ô7€IØ×6Ò6°tÑ<Ô<€KØ0€KÔ×"Ò" 5Ñ)Ô)Ô0Ð?Ð?°;Ð?Ð?×KÒKØNÐNÐNÐN½9ÀWÑ;MÔ;MÐNÑNÔNØ	ˆ
ñô ð ð ð r@   c                 ó´   — |j         j        }|                     | ¦  «        }|j         j        j        } |j        j        di |¤Ž                     |d¬¦  «        S )NT)Úflatr:   )r`   rÆ   rÙ  r  rI   rÄ   rL  Úvalues_list)r<   rØ  rÝ  r—  Úpk_names        r=   Úmethod_get_orderrã  À	  s]   € ØÔ!Ô7€IØ×6Ò6°tÑ<Ô<€KØÔÔ"Ô'€GØ%ˆ;ÔÔ%Ð4Ð4¨Ð4Ð4×@Ò@ÀÈtÐ@ÑTÔTÐTr@   c                 óþ   — t          |d| j                             ¦   «         z  t          t          | ¦  «        ¦  «         t          |d| j                             ¦   «         z  t          t
          | ¦  «        ¦  «         d S )Nzget_%s_orderzset_%s_order)r»   rC   Úlowerr   rã  rÞ  )r�   rk  s     r=   rÊ   rÊ   Ç	  s€   € ÝØØ˜œ×-Ò-Ñ/Ô/Ñ/ÝÕ&¨Ñ.Ô.ñô ð õ
 ØØ˜œ×-Ò-Ñ/Ô/Ñ/ÝÕ&¨Ñ.Ô.ñô ð ð ð r@   c                 óx   — t          | t          ¦  «        rt          j        | Ž }n| }|                     |¦  «        S )z7Used to unpickle Model subclasses with deferred fields.)rY   rƒ   r   rK  r{   )Úmodel_idr�   s     r=   r(  r(  Ù	  s;   € å�(�EÑ"Ô"ð Ý” Ð)ˆˆð ˆØ�=Š=˜ÑÔÐr@   Trº   )]rw   rP   r6  Ú	functoolsr   Ú	itertoolsr   Úasgiref.syncr   r%  Údjango.appsr   Údjango.confr   Údjango.corer   Údjango.core.exceptionsr	   r
   r   r   r   r   r—  r   r   r   r   r   r   Údjango.db.modelsr   r   r   r   r   Údjango.db.models.constantsr   Údjango.db.models.constraintsr   r   Údjango.db.models.deletionr   r   Údjango.db.models.expressionsr    Údjango.db.models.fields.relatedr!   r"   r#   r$   Údjango.db.models.functionsr%   Údjango.db.models.managerr&   Údjango.db.models.optionsr'   Údjango.db.models.queryr(   r)   Údjango.db.models.signalsr*   r+   r,   r-   r.   Údjango.db.models.utilsr/   r0   Údjango.utils.encodingr1   Údjango.utils.hashabler2   Údjango.utils.textr3   r4   Údjango.utils.translationr5   r  r7   rö   rM   rT   rH   rV   rå   rì   rð   rÞ  rã  rÊ   r(  Ú__safe_for_unpickle__r:   r@   r=   ú<module>r      sY  ðØ €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð WÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø +Ð +Ð +Ð +Ð +Ð +Ø /Ð /Ð /Ð /Ð /Ð /Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ð"ð "ð "ð "ð "ñ "ô "ð "ð ˆ8‰:Œ:€ðð ð ð$Pð Pð Pð
X)ð X)ð X)ð X)ð X)�ñ X)ô X)ð X)ðv
ð ð ð ð ñ ô ð ð	5ð 	5ð 	5ð 	5ð 	5ñ 	5ô 	5ð 	5ðbð bð bð bð bˆJ )ð bñ bô bð bðX?ð ð ð ðUð Uð Uð
ð 
ð 
ð$ ð  ð  ð (,€Ô $Ð $Ð $r@   