Ë
    q^ëiì‡ ã                   óZ  — 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[_\        y)-é    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y)ÚDeferredc                  ó   — y©Nz<Deferred field>© ©Úselfs    úF/var/www/eb/venv/lib/python3.12/site-packages/django/db/models/base.pyÚ__repr__zDeferred.__repr__;   ó   € Ø!ó    c                  ó   — yr9   r:   r;   s    r=   Ú__str__zDeferred.__str__>   r?   r@   N)Ú__name__Ú
__module__Ú__qualname__r>   rB   r:   r@   r=   r7   r7   :   s   „ ò"ó"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                 óJ   — t        j                  | «       xr t        | d«      S )NÚcontribute_to_class)ÚinspectÚisclassÚhasattr)Úvalues    r=   Ú_has_contribute_to_classrT   W   s!   € ä�‰˜uÓ%Ð%ÒO¬'°%Ð9NÓ*OÐOr@   c                   óN   ‡ — 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         ‰'| �  }|D �cg c]  }t        |t        «      sŒ|‘Œ }}|s || |||«      S |j	                  d«      }d|i}	|j	                  dd «      }
|
�|
|	d<   |j	                  dd «      }i }|j                  «       D ]  \  }}t        |«      r|||<   Œ||	|<   Œ  || |||	fi |¤Ž}t        |dd«      }|xs t        |dd «      }t        |dd «      }d }t        j                  |«      }t        |dd «      €"|€|st        d|›d	|›d
�«      ‚|j                  }|j                  dt        ||«      «       |sÌ|j                  dt        dt        d„ |D «       «      xs t         f||¬«      «       |j                  dt        dt        d„ |D «       «      xs t"        f||¬«      «       |rZ|j$                  sNt'        |d«      s|j(                  |j*                  _        t'        |d«      s|j,                  |j*                  _        |j*                  j.                  }|r)|r'|j0                  rt3        |›d|j0                  ›d�«      ‚|j                  «       D ]  \  }}|j                  ||«       Œ t5        |j*                  j6                  |j*                  j8                  |j*                  j:                  «      }|D �ch c]  }|j<                  ’Œ }}|rïd }|D �cg c]  }t'        |d«      sŒ|‘Œ c}D ]|  }|j*                  j$                  r%|j*                  j>                  rt3        d|z  «      ‚Œ>|€|}ŒC|j*                  j@                  |j*                  j@                  usŒpt3        d|z  «      ‚ |€t3        d|z  «      ‚|j*                  jC                  |«       |j*                  j@                  |j*                  _         n||j*                  _         i }tE        |g|z   «      D ]œ  }t'        |d«      sŒ||k7  r|j*                  j$                  sŒ,|j*                  j6                  D ]X  }t        |tF        «      sŒ|jH                  jJ                  sŒ+tM        ||jH                  jN                  «      }||tQ        |«      <   ŒZ Œž tS        «       }|jU                  «       D �]#  }||vst'        |d«      s|jW                  |jX                  «       Œ0|j*                  j6                  |j*                  j8                  z   } |j*                  j$                  �s| D ]T  }|j<                  |v r)t[        d|j<                  ›d|›d|j\                  ›d	�«      ‚|j_                  |j<                  «       ŒV |j*                  j@                  }tQ        |«      }!|!|v r||!   }ns|sod|j*                  j`                  z  }"tG        |tb        |"dd¬«      }|"|v rt[        d|"›d|›d|j\                  ›d �«      ‚t'        ||"«      s|j                  |"|«       nd }||j*                  jd                  |<   nè|j*                  jd                  jg                  «       }#| D ]š  }|j<                  |vsŒ|j<                  |jX                  vsŒ+|j<                  |vsŒ:tg        jh                  |«      }$|j                  |j<                  |$«       |jj                  sŒx|#j                  «       D ]  \  }}%||%k(  sŒ|$|#|<   Œ Œœ |j*                  jd                  jW                  |#«       |j*                  j:                  D ]ž  }|j<                  |v r@|j*                  j$                  rŒ(t[        d|j<                  ›d|›d|j\                  ›d	�«      ‚tg        jh                  |«      }|j*                  j$                  sd|_6        |j                  |j<                  |«       Œ  �Œ& |j*                  jn                  D �&cg c]  }&tg        jh                  |&«      ‘Œ c}&|j*                  _7        |rd|_        ||_8        |S |js                  «        |j*                  j                  ju                  |j*                  jv                  |«       |S c c}w c c}w c c}w c c}&w )!NrD   Ú__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   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­w©r[   N)rR   r[   rZ   r]   ©Ú.0Úxs     r=   ú	<genexpr>z$ModelBase.__new__.<locals>.<genexpr>•   s2   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð Ÿ�ñùó   ‚8:)rL   r   c              3   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­wr_   )rR   r[   rZ   r   r`   s     r=   rc   z$ModelBase.__new__.<locals>.<genexpr>£   s4   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð ×1Õ1ñùrd   ÚorderingÚget_latest_byz! cannot proxy the swapped model 'ú'.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.)<ÚsuperÚ__new__Ú
isinstancerV   ÚpopÚitemsrT   Úgetattrr   Úget_containing_app_configÚRuntimeErrorÚlabelÚadd_to_classr'   rM   Útupler   r   rZ   rR   rf   r[   rg   ÚproxyÚswappedÚ	TypeErrorr   Úlocal_fieldsÚlocal_many_to_manyÚprivate_fieldsrI   ÚfieldsÚconcrete_modelÚsetup_proxyÚreversedr"   Úremote_fieldrk   r$   Úmodelr0   ÚsetÚmroÚupdateÚ__dict__r   rC   ÚaddÚ
model_namer   ÚparentsÚcopyÚdeepcopyÚ
one_to_oneÚmti_inheritedÚindexesrY   Ú_prepareÚregister_modelr\   )(ÚclsrI   rJ   ÚattrsÚkwargsÚ	super_newÚbr‰   rK   Ú	new_attrsÚ	classcellÚ	attr_metaÚcontributable_attrsÚobj_nameÚobjÚ	new_classrZ   ÚmetaÚ	base_metar\   Ú
app_configÚis_proxyÚ
new_fieldsÚfÚfield_namesÚbaseÚklsÚparentÚparent_linksÚfieldÚrelatedÚinherited_attributesÚparent_fieldsÚbase_keyÚ	attr_nameÚbase_parentsÚ	new_fieldrk   ÚidxÚ	__class__s(                                          €r=   rm   zModelBase.__new___   s   ø€ Ü‘G‘Oˆ	ð $Ö@˜¤z°!´YÕ'?’1Ð@ˆÐ@ÙÙ˜S $¨¨uÓ5Ð5ð —‘˜<Ó(ˆØ! 6Ð*ˆ	Ø—I‘I˜o¨tÓ4ˆ	ØÐ Ø)2ˆI�oÑ&Ø—I‘I˜f dÓ+ˆ	ð !ÐØ"Ÿ[™[›]ò 	*‰MˆH�cÜ'¨Ô,Ø03Ð# HÒ-à&)�	˜(Ò#ð		*ñ
 ˜c 4¨°	ÑD¸VÑDˆ	ä˜9 j°%Ó8ˆØÒ<œG I¨v°tÓ<ˆÜ˜I w°Ó5ˆ	àˆ	ô ×3Ñ3°FÓ;ˆ
ä�4˜ dÓ+Ð3ØÐ!ÙÝ&ò .4²Tð;óð ð '×,Ñ,�	à×Ñ˜w¬°°iÓ(@ÔAÙØ×"Ñ"ØÜ"Ø"Üñ à!(ôó ò -ô
 +Ð,ØØ )ô
ôð ×"Ñ"Ø)Ü"Ø-Üñ à!(ôó ò 2ô
 0Ð1ØØ )ô
ôñ  ×!3Ò!3ô ˜t ZÔ0Ø/8×/AÑ/A�I—O‘OÔ,Ü˜t _Ô5Ø4=×4KÑ4K�I—O‘OÔ1à—?‘?×(Ñ(ˆñ ™	 i×&7Ò&7ÜÚ=AÀ9×CTÓCTÐUóð ð 1×6Ñ6Ó8ò 	2‰MˆH�cØ×"Ñ" 8¨SÕ1ð	2ô Ø�O‰O×(Ñ(Ø�O‰O×.Ñ.Ø�O‰O×*Ñ*ó
ˆ
ð
 (2Ö2 !�q—v“vÐ2ˆÐ2ñ ØˆDØ*1ÖK 3´W¸SÀ'Õ5Jš3ÒKò �Ø—<‘<×(Ò(Ø—|‘|×*Ò*Ü'ð>Ø@DñEóð ð
 !Ø�<Ø!‘DØ—\‘\×0Ñ0¸¿
¹
×8QÑ8QÒQÜ#ð!Ø#'ñ(óð ðð  ˆ|ÜØLÈtÑSóð ð �O‰O×'Ñ'¨Ô-Ø-1¯Z©Z×-FÑ-FˆI�O‰OÕ*à-6ˆI�O‰OÔ*ð ˆÜ˜i˜[¨7Ñ2Ó3ò 	DˆDä˜4 Ô)Øà�yÒ ¨¯©×)<Ò)<ØàŸ™×0Ñ0ò D�Ü˜e¤]Õ3¸×8JÑ8J×8VÓ8VÜ.¨y¸%×:LÑ:L×:RÑ:RÓS�GØ>C�LÔ!1°'Ó!:Ò;ñDð	Dô  #›uÐà—M‘M“Oó c	>ˆDØ˜7Ñ"¬'°$¸Ô*@ð %×+Ñ+¨D¯M©MÔ:Øà ŸJ™J×3Ñ3°d·j±j×6SÑ6SÑSˆMØ—:‘:×&Ó&ð +ò =�EØ—z‘z [Ñ0Ý(ð !&§
£
Ú $Ø $§£ðóð ð -×0Ñ0°·±Õ<ð=ð —z‘z×0Ñ0�Ü+¨DÓ1�Ø˜|Ñ+Ø(¨Ñ2‘EÙ!Ø (¨4¯:©:×+@Ñ+@Ñ @�IÜ)ØÜ")Ø&Ø%)Ø$(ô�Eð ! KÑ/Ý(ò
 !*Ú $Ø $§£ðó	ð 	ô # 9¨iÔ8Ø!×.Ñ.¨y¸%Õ@à �EØ05�	—‘×'Ñ'¨Ò-à#Ÿz™z×1Ñ1×6Ñ6Ó8�ð +ò E�EàŸ
™
¨+Ò5Ø!ŸJ™J¨i×.@Ñ.@Ò@Ø!ŸJ™JÐ.BÒBä$(§M¡M°%Ó$8˜	Ø!×.Ñ.¨u¯z©z¸9ÔEð !×+Ó+Ø7C×7IÑ7IÓ7Kò EÑ 3 ¨Ø#(¨KÓ#7Ø;D L°Ò$8ñEðEð  —‘×'Ñ'×.Ñ.¨|Ô<ð Ÿ™×2Ñ2ò >�Ø—:‘: Ñ,ØŸ:™:×.Ó.Ý(ð !&§
£
Ú $Ø $§£ðóð ô !ŸM™M¨%Ó0�EØŸ:™:×.Ò.Ø.2˜Ô+Ø×*Ñ*¨5¯:©:°uÕ=ò!>ðgc	>ðP +4¯/©/×*AÑ*Aö#
Ø#&ŒD�M‰M˜#Õò#
ˆ	�‰Ôñ ð "'ˆIÔØ&ˆIŒNØÐà×ÑÔØ�‰×Ñ×+Ñ+¨I¯O©O×,EÑ,EÀyÔQØÐùòW AùòL 3ùò
 Lùòd#
s"   �a4¦a4Ëa9Ë%a>Ë7a>ß(bc                 óZ   — t        |«      r|j                  | |«       y t        | ||«       y ©N)rT   rO   Úsetattr)r‘   rI   rS   s      r=   ru   zModelBase.add_to_classq  s&   € Ü# EÔ*Ø×%Ñ% c¨4Õ0ä�C˜˜uÕ%r@   c                 ó²  — | j                   }|j                  | «       |j                  r�t        | j                  d¬«      | _        t        | j                  d¬«      | _        |j                  j                  r3|j                  }|j                  j                  }t        t        | |«       | j                  €7| j                  ›ddj                  d„ |j                  D «       «      ›d�| _        t        j                   j#                  |j$                  «      }|rt'        | d	|«       |j(                  sWt+        d
„ |j                  D «       «      rt-        d| j                  z  «      ‚t/        «       }d|_        | j3                  d|«       | j                   j4                  D ]   }|j6                  rŒ|j9                  | «       Œ" t;        j<                  | ¬«       y)z7Create some methods once self._meta has been populated.T)Úis_nextFNú(ú, c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr³   ©rI   ©ra   r¢   s     r=   rc   z%ModelBase._prepare.<locals>.<genexpr>’  s   è ø€ Ò6 Q˜!Ÿ&�&Ñ6ùó   ‚ú)Úget_absolute_urlc              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)ÚobjectsNrº   r»   s     r=   rc   z%ModelBase._prepare.<locals>.<genexpr>œ  s   è ø€ Ò<¨1�1—6‘6˜YÕ&Ñ<ùs   ‚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&   rj   ru   rŽ   rI   Úset_name_with_modelr*   Úsend)r‘   ÚoptsÚwrtÚremoteÚget_absolute_url_overrideÚmanagerÚindexs          r=   r�   zModelBase._preparew  s‹  € à�y‰yˆØ�‰�cÔà×%Ò%Ü$1Ø×2Ñ2¸Dô%ˆCÔ!ô )6Ø×2Ñ2¸Eô)ˆCÔ%ð ×)Ñ)×6Ò6Ø×0Ñ0�Ø×)Ñ)×/Ñ/�Ü&Ô'CÀSÈ&ÔQð �;‰;Ðà—“Ø—	‘	Ñ6¨$¯+©+Ô6Õ6ðˆCŒKô
 %-×$CÑ$C×$GÑ$GØ×Ñó%
Ð!ñ %Ü�CÐ+Ð-FÔGà�}Š}ÜÑ<°·±Ô<Ô<Ü ð-Ø/2¯|©|ñ<óð ô “iˆGØ#'ˆGÔ Ø×Ñ˜Y¨Ô0ð
 —Y‘Y×&Ñ&ò 	/ˆEØ—:“:Ø×)Ñ)¨#Õ.ð	/ô 	×Ñ 3Ö'r@   c                 ó.   — | j                   j                  S r³   )r[   Úbase_manager©r‘   s    r=   Ú_base_managerzModelBase._base_manager®  s   € à�y‰y×%Ñ%Ð%r@   c                 ó.   — | j                   j                  S r³   )r[   Údefault_managerrÙ   s    r=   Ú_default_managerzModelBase._default_manager²  s   € à�y‰y×(Ñ(Ð(r@   )rC   rD   rE   rÇ   rm   ru   r�   ÚpropertyrÚ   rÝ   rX   ©r±   s   @r=   rV   rV   \   s@   ø„ Ù#ôPòd&ò5(ðn ñ&ó ð&ð ñ)ó ô)r@   rV   c                   ó   — e Zd Zdd„Zy)Ú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y)Ú
ModelStatezStore model instance state.NT)rC   rD   rE   rÇ   ÚdbÚaddingrá   rã   r:   r@   r=   rè   rè   ¿  s   „ Ù%à	€Bð
 €FÙ2Ó4�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dAd
„Zd„ Z eee«      Zd„ ZdBd„ZdBd„Zd„ Z	 dCd„Zde_        	 dCd„Zde_        	 	 	 	 	 dDd„Zde_        d„ Z	 	 	 	 	 	 dEd„Zd„ Zd„ ZdAd„ZdFd„Zde_        dFd„Zde_        d„ Z d„ Z!d„ Z"dAd„Z#d„ Z$d „ Z%dAd!„Z&dFd"„Z'd#„ Z(d$„ Z)d%„ Z*d&„ Z+d'„ Z,dAd(„Z-dGd)„Z.dAd*„Z/ed+„ «       Z0ed,„ «       Z1ed-„ «       Z2ed.„ «       Z3ed/„ «       Z4ed0„ «       Z5ed1„ «       Z6ed2„ «       Z7ed3„ «       Z8ed4„ «       Z9ed5„ «       Z:ed6„ «       Z;ed7„ «       Z<ed8„ «       Z=ed9„ «       Z>ed:„ «       Z?ed;„ «       Z@ed<„ «       ZAed=„ «       ZBed>„ «       ZCed?„ «       ZDed@„ «       ZEˆ xZFS )HÚModelc                 ó¸  •— | j                   }| j                  }t        }t        }|j                  rt        d«      ‚t        j                  |||¬«       t        «       | _	        t        |«      t        |j                  «      kD  rt        d«      ‚|sCt        |j                  «      }t        ||«      D ]  \  }}	||u rŒ || |	j                  |«       Œ  n�t        |j                   «      }t        ||«      D ]i  \  }}	||u rŒ || |	j                  |«       |j#                  |	j$                  t&        «      t&        usŒFt        |j(                  › d|	j$                  › d�«      ‚ |D ]¼  }	d}
|	j                  |vr|	j*                  €Œ |rVt-        |	j.                  t0        «      r	 |j#                  |	j$                  «      }d}
n-	 |j#                  |	j                  «      }n|	j5                  «       }|
r|usŒ� || |	j$                  |«       Œ¤|usŒ© || |	j                  |«       Œ¾ |r�|j6                  }d}|j9                  «       D ]:  \  }}||v r||usŒ || ||«       Œ	 |j;                  |«       ||usŒ1 || ||«       Œ< |r2d	j?                  d
„ |D «       «      }t        |j@                  › d|› �«      ‚tB        ‰| �‰  «        tG        j                  || ¬«       y # t2        $ r@ 	 |j#                  |	j                  «      }n# t2        $ r |	j5                  «       }Y nw xY wY �Œ6w xY w# t2        $ r |	j5                  «       }Y �ŒVw xY w# t<        $ r
 ||fz  }Y �Œw xY w)Nz'Abstract models cannot be instantiated.)rÁ   Úargsr“   z'Number of args exceeds number of fieldsz8() got both positional and keyword arguments for field 'rh   FTr:   r¸   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr³   )Úrepr)ra   Úns     r=   rc   z!Model.__init__.<locals>.<genexpr>6  s   è ø€ Ò,I¸¬T°!¯WÑ,Iùs   ‚z%() got unexpected keyword arguments: )rÁ   rä   )$r±   r[   r´   ÚDEFERREDrZ   ry   r-   rÐ   rè   Ú_stateÚlenÚconcrete_fieldsÚ
IndexErrorÚiterÚzipÚattnamer}   ro   rI   r   rE   Úcolumnrn   r�   r!   ÚKeyErrorÚget_defaultÚ_property_namesrp   Ú	get_fieldr
   rÈ   rC   rl   Ú__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__Ì  sT  ø€ à�n‰nˆØ�z‰zˆÜˆÜˆ	Ø�=Š=ÜÐEÓFÐFä�‰˜S t°FÕ;ô !“lˆŒô ˆt‹9”s˜4×/Ñ/Ó0Ò0äÐFÓGÐGáÜ˜t×3Ñ3Ó4ˆKô
 " $¨Ó4ò 3‘
��UØ˜)Ñ#ØÙ˜˜uŸ}™}¨cÕ2ñ3ô ˜tŸ{™{Ó+ˆKÜ! $¨Ó4ò ‘
��UØ˜)Ñ#ØÙ˜˜uŸ}™}¨cÔ2Ø—:‘:˜eŸj™j¬,Ó7¼|ÒKÜ#Ø×+Ñ+Ð,ð -8Ø8=¿
¹
°|À2ðGóð ðð !ò &	7ˆEØ %Ðà�}‰} FÑ*¨u¯|©|Ð/CØÙÜ˜e×0Ñ0Ô2BÔCð	6à"(§*¡*¨U¯Z©ZÓ"8˜Ø,0Ñ)ð2Ø$Ÿj™j¨¯©Ó7™ð ×'Ñ'Ó)�á ð
  )Ò+Ù˜T 5§:¡:¨wÕ7à˜iÒ'Ù˜T 5§=¡=°#Õ6ðM&	7ñP Ø!×1Ñ1ˆNØˆJØ%Ÿ|™|›~ò 8‘��eð ˜>Ñ)Ø IÒ-Ù   t¨UÕ3ð8ØŸ™ tÔ,ð !¨	Ò1Ù$ T¨4°Õ7ð8ñ Ø#'§9¡9Ñ,I¸jÔ,IÓ#IÐ ÜØ—|‘|�nÐ$IØ'Ð(ð*óð ô 	‰ÑÔÜ�‰˜c¨DÖ1øôk $ò 6ð6à"(§*¡*¨U¯]©]Ó";™CøÜ'ò 6Ø"'×"3Ñ"3Ó"5šCð6ýð	6ûô $ò 2ð
 $×/Ñ/Ó1›ð2ûô@ -ò .Ø" t gÑ-›
ð.úsZ   Æ!KÇ L&ÉMË	L#Ë$L Ë?L#Ì LÌL#ÌLÌL#Ì"L#Ì&MÍMÍMÍMc                 óJ  — t        |«      t        | j                  j                  «      k7  rKt        |«      }| j                  j                  D �cg c]!  }|j                  |v rt        |«      nt        ‘Œ# }} | |Ž }d|j                  _        ||j                  _	        |S c c}w ©NF)
rô   r[   rõ   r÷   rù   Únextrò   ró   rê   ré   )r‘   ré   r£   ÚvaluesÚvalues_iterr¢   Únews          r=   Úfrom_dbzModel.from_db>  s�   € äˆv‹;œ#˜cŸi™i×7Ñ7Ó8Ò8Ü˜v›,ˆKð Ÿ™×2Ñ2öàð &'§Y¡Y°+Ñ%=”�[Ô!Ä8ÑKðˆFð ñ �6ˆlˆØ!ˆ�
‰
ÔØˆ�
‰
ŒØˆ
ùòs   Á&B c                 ó<   — d| j                   j                  ›d| ›d�S )Nú<z: ú>)r±   rC   r;   s    r=   r>   zModel.__repr__K  s   � Ø!Ÿ^™^×4Ó4²dÐ;Ð;r@   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nz	 object (r½   )r±   rC   Úpkr;   s    r=   rB   zModel.__str__N  s   € Ø#'§>¡>×#:Ó#:¸D¿G»GÐDÐDr@   c                 óÌ   — t        |t        «      st        S | j                  j                  |j                  j                  k7  ry| j
                  }|€| |u S ||j
                  k(  S r  )rn   rì   ÚNotImplementedr[   r~   r  )r<   ÚotherÚmy_pks      r=   Ú__eq__zModel.__eq__Q  sX   € Ü˜%¤Ô'Ü!Ð!Ø�:‰:×$Ñ$¨¯©×(BÑ(BÒBØØ—‘ˆØˆ=Ø˜5�=Ð Ø˜Ÿ™Ñ Ð r@   c                 óZ   — | j                   €t        d«      ‚t        | j                   «      S )Nz8Model instances without primary key value are unhashable)r  ry   Úhashr;   s    r=   Ú__hash__zModel.__hash__[  s%   € Ø�7‰7ˆ?ÜÐVÓWÐWÜ�D—G‘G‹}Ðr@   c                 ó¼   — | j                  «       }t        j                  |t        <   | j                  j
                  | j                  j                  f}t        |f|fS r³   )Ú__getstate__ÚdjangoÚ__version__r   r[   r\   Úobject_nameÚmodel_unpickle)r<   ÚdataÚclass_ids      r=   Ú
__reduce__zModel.__reduce__`  sN   € Ø× Ñ Ó"ˆÜ*0×*<Ñ*<ˆÔ&Ñ'Ø—:‘:×'Ñ'¨¯©×)?Ñ)?Ð?ˆÜ ˜{¨DÐ0Ð0r@   c                 óŒ  — | j                   j                  «       }t        j                  |d   «      |d<   |d   j                  j                  «       |d   _        g }|j                  «       D ]2  \  }}t	        |t
        «      sŒ|j                  |t        |«      f«       Œ4 |r ||d<   |D ]  \  }}|j                  |«       Œ |S )z0Hook to allow choosing the attributes to pickle.ró   Ú_memoryview_attrs)	r†   rŠ   rã   rp   rn   Ú
memoryviewÚappendÚbytesro   )r<   Ústater(  ÚattrrS   s        r=   r  zModel.__getstate__f  s¾   € à—‘×"Ñ"Ó$ˆÜŸ)™) E¨(¡OÓ4ˆˆh‰Ø',¨X¡×'CÑ'C×'HÑ'HÓ'Jˆˆh‰Ô$ð ÐØ Ÿ;™;›=ò 	?‰KˆD�%Ü˜%¤Õ,Ø!×(Ñ(¨$´°e³Ð)=Õ>ð	?ñ Ø):ˆEÐ%Ñ&Ø0ò  ‘��eØ—	‘	˜$•ð àˆr@   c                 ó€  — |j                  t        «      }|rE|t        j                  k7  rNt	        j
                  d|›dt        j                  ›d�t        d¬«       nt	        j
                  dt        d¬«       d|v r'|j                  d«      D ]  \  }}t        |«      ||<   Œ | j                  j                  |«       y )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ÚRuntimeWarningro   r)  r†   r…   )r<   r,  Úpickled_versionr-  rS   s        r=   Ú__setstate__zModel.__setstate__w  s¦   € ØŸ)™)Ô$=Ó>ˆÙØ¤&×"4Ñ"4Ò4Ü—’ò '¬×(:Ó(:ð<ô #Ø öô �M‰MØKÜØõð
  %Ñ'Ø$Ÿy™yÐ)<Ó=ò 0‘��eÜ(¨Ó/��d’ð0à�‰×Ñ˜UÕ#r@   c                 ób   — |xs | j                   }t        | |j                  j                  «      S r³   )r[   rq   r  rù   )r<   r�   s     r=   Ú_get_pk_valzModel._get_pk_val�  s%   € ØÒ!�t—z‘zˆÜ�t˜TŸW™WŸ_™_Ó-Ð-r@   c                 ó&  — | j                   j                  j                  «       D ]@  }|sŒ|| j                   j                  k7  sŒ t	        | |j
                  j                  |«       ŒB t	        | | j                   j                  j                  |«      S r³   )r[   r‰   r  r  r´   Útarget_fieldrù   )r<   rS   rk   s      r=   Ú_set_pk_valzModel._set_pk_val‘  so   € ØŸ:™:×-Ñ-×4Ñ4Ó6ò 	GˆKÚ˜{¨d¯j©j¯m©mÓ;Ü˜˜k×6Ñ6×>Ñ>ÀÕFð	Gô �t˜TŸZ™ZŸ]™]×2Ñ2°EÓ:Ð:r@   c                 ó˜   — | j                   j                  D �ch c]&  }|j                  | j                  vr|j                  ’Œ( c}S c c}w )zU
        Return a set containing names of deferred fields for this instance.
        )r[   rõ   rù   r†   )r<   r¢   s     r=   Úget_deferred_fieldszModel.get_deferred_fields™  sB   € ð —Z‘Z×/Ñ/ö
àØ�y‰y §¡Ñ-ð �I‹Iò
ð 	
ùò 
s   ™+Ac           	      óì  — |€i | _         nTt        | dd«      }|D ]  }||v sŒ||= |j                  |«       Œ |syt        d„ |D «       «      rt	        dt
        z  «      ‚d| i}| j                  j                  j                  ||¬«      j                  | j                  ¬«      }| j                  «       }|�t        |«      } |j                  |Ž }nL|rJ| j                  j                  D �cg c]  }|j                   |vr|j                   ‘Œ }} |j                  |Ž }|j#                  «       }	|	j                  «       }
| j                  j                  D ]l  }|j                   |
v rŒt%        | |j                   t        |	|j                   «      «       |j&                  sŒJ|j)                  | «      sŒ\|j+                  | «       Œn | j                  j,                  D ]%  }|j)                  | «      sŒ|j+                  | «       Œ' | j                  j.                  D ]2  }|j&                  sŒ|j)                  | «      sŒ"|j+                  | «       Œ4 |	j0                  j2                  | j0                  _        yc c}w )	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 –— Œ y ­wr³   r   r»   s     r=   rc   z(Model.refresh_from_db.<locals>.<genexpr>¼  s   è ø€ Ò3 q”: ”?Ñ3ùs   ‚zRFound "%s" in fields argument. Relations and transforms are not allowed in fields.rä   )Úhints©r  )r>  rq   ÚremoverÍ   rÎ   r   r±   rÚ   Ú
db_managerÚfilterr  r<  ÚlistÚonlyr[   rõ   rù   rÊ   r´   Úis_relationÚ	is_cachedÚdelete_cached_valueÚrelated_objectsr|   ró   ré   )r<   Úusingr}   Úprefetched_objects_cacher¨   r@  Údb_instance_qsÚdeferred_fieldsr¢   Údb_instanceÚnon_loaded_fieldss              r=   Úrefresh_from_dbzModel.refresh_from_db£  sV  € ð ˆ>Ø-/ˆDÕ*ä'.¨tÐ5PÐRTÓ'UÐ$Øò )�ØÐ4Ò4Ø0°Ð7Ø—M‘M %Õ(ð)ñ ØÜÑ3¨FÔ3Ô3Ü ð1Ü3=ñ>óð ð
 ˜TÐ"ˆØŸ™×5Ñ5×@Ñ@Ø˜ð Aó 
ç
‰&�D—G‘Gˆ&Ó
ð 	ð
 ×2Ñ2Ó4ˆØÐÜ˜&“\ˆFØ0˜^×0Ñ0°&Ð9‰NÙð Ÿ™×3Ñ3öàØ—9‘9 OÑ3ð —	“	ðˆFð ð
 1˜^×0Ñ0°&Ð9ˆNà$×(Ñ(Ó*ˆØ'×;Ñ;Ó=ÐØ—Z‘Z×/Ñ/ò 	0ˆEØ�}‰}Ð 1Ñ1àÜ�D˜%Ÿ-™-¬°¸e¿m¹mÓ)LÔMà× Ó  U§_¡_°TÕ%:Ø×)Ñ)¨$Õ/ð	0ð —Z‘Z×/Ñ/ò 	0ˆEØ�‰˜tÕ$Ø×)Ñ)¨$Õ/ð	0ð
 —Z‘Z×.Ñ.ò 	0ˆEØ× Ó  U§_¡_°TÕ%:Ø×)Ñ)¨$Õ/ð	0ð %×+Ñ+×.Ñ.ˆ�‰�ùò9s   Ã+!I1c              ƒ   óX   K  —  t        | j                  «      ||¬«      ƒ d {  –—† S 7 Œ­w)N)rK  r}   )r   rQ  )r<   rK  r}   s      r=   Úarefresh_from_dbzModel.arefresh_from_dbë  s&   è ø€ Ø8”] 4×#7Ñ#7Ó8¸uÈVÔT×TÐTÐTúó   ‚!*£(¤*c                 óœ   — 	 | j                   j                  |«      }t        | |j                  «      S # t        $ r t        | |«      cY S w xY w)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
   rq   rù   )r<   Ú
field_namer¨   s      r=   Úserializable_valuezModel.serializable_valueî  sL   € ð	-Ø—J‘J×(Ñ(¨Ó4ˆEô �t˜UŸ]™]Ó+Ð+øô !ò 	-Ü˜4 Ó,Ò,ð	-ús   ‚3 ³AÁ
Ac                 ó´  — | j                  d¬«       |xs! t        j                  | j                  | ¬«      }|r|s|rt	        d«      ‚| j                  «       }|�T|syt        |«      }| j                  j                  }|j                  |«      }|r²t	        ddj                  |«      z  «      ‚|s“|r‘|| j                  j                  k(  rxt        «       }| j                  j                  D ]7  }|j                  rŒt!        |d«      rŒ|j#                  |j$                  «       Œ9 |j                  |«      }	|	rt        |	«      }| j'                  ||||¬	«       y)
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)rK  Úforce_insertÚforce_updateÚupdate_fields)Ú _prepare_related_fields_for_saver   Údb_for_writer±   rÎ   r<  Ú	frozensetr[   Ú_non_pk_concrete_field_namesÚ
differencerÈ   ró   ré   rƒ   rõ   Úprimary_keyrR   r‡   rù   Ú	save_base)
r<   r]  r^  rK  r_  rN  r£   Únon_model_fieldsr¨   Úloaded_fieldss
             r=   rY  z
Model.saveÿ  sD  € ð 	×-Ñ-¸VÐ-ÔDàÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÙ™\©]ÜÐUÓVÐVà×2Ñ2Ó4ˆØÐ$ñ !Øä% mÓ4ˆMØŸ*™*×AÑAˆKØ,×7Ñ7¸ÓDÐáÜ ð=à—i‘iÐ 0Ó1ñ2óð ñ ¡/°e¸t¿{¹{¿~¹~Ò6MÜ›%ˆKØŸ™×3Ñ3ò 3�Ø×(Ó(´¸À	Õ1JØ—O‘O E§M¡MÕ2ð3ð (×2Ñ2°?ÓCˆMÙÜ )¨-Ó 8�à�‰ØØ%Ø%Ø'ð	 	õ 	
r@   Tc              ƒ   ó\   K  —  t        | j                  «      ||||¬«      ƒ d {  –—† S 7 Œ­w)N)r]  r^  rK  r_  )r   rY  )r<   r]  r^  rK  r_  s        r=   ÚasavezModel.asave7  s6   è ø€ ð .”] 4§9¡9Ó-Ø%Ø%ØØ'ô	
÷ 
ð 	
ð 
ús   ‚#,¥*¦,c           	      óÜ  — |xs! 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| j                  |||«      }
| j                  |||xs |
|||«      }ddd«       || j                  _        d| j                  _        |j                  st%        j                  ||  |||¬«       yy# 1 sw Y   ŒUxY w)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.
        r[  N)rÁ   rä   ÚrawrK  r_  F)rK  Ú	savepoint)rK  )rÁ   rä   Úcreatedr_  rl  rK  )r   ra  r±   r[   rw   r~   rj   r.   rÐ   r‰   r   ÚatomicÚmark_for_rollback_on_errorÚ_save_parentsÚ_save_tableró   ré   rê   r,   )r<   rl  r]  r^  rK  r_  r‘   Úoriginr�   Úcontext_managerÚparent_insertedÚupdateds               r=   rf  zModel.save_baseC  s^  € ð" ÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÙ ¡l±mÐEÐEØÐ$©Ð5Ð5Ø—~‘~Ð%ˆˆfà�9‰9�?Š?Ø—)‘)×*Ñ*ˆCØ�y‰yˆØ× Ò Ü�M‰MØØØØØ+õð �<Š<Ü)×0Ñ0°uÈÔN‰Oä)×DÑDÈ5ÔQˆOØñ 	Ø#ˆOÙØ"&×"4Ñ"4°S¸%ÀÓ"O�Ø×&Ñ&ØØØÒ/ ØØØóˆG÷		ð ˆ�‰Œà"ˆ�‰Ôð × Ò Ü�N‰NØØØ$˜Ø+ØØöð !÷%	ð 	ús   Ã2E"Å"E+c           	      ór  — |j                   }d}|j                  j                  «       D �]
  \  }}|rt        | |j                   j                  j
                  «      €Ut        | |j
                  «      �?t        | |j                   j                  j
                  t        | |j
                  «      «       | j                  |||¬«      }| j                  ||||¬«      }	|	sd}|sŒ¸t        | |j
                  | j                  |j                   «      «       |j                  | «      sŒú|j                  | «       �Œ |S )z3Save all the parents of cls using values from self.F)r‘   rK  r_  )r‘   rK  r_  r]  T)r[   r‰   rp   rq   r  rù   r´   rq  rr  r7  rH  rI  )
r<   r‘   rK  r_  r�   Úinsertedr¦   r¨   ru  rv  s
             r=   rq  zModel._save_parents‡  s  € à�y‰yˆØˆØ!Ÿ\™\×/Ñ/Ó1ó 	4‰MˆF�Eñ Ü˜D &§,¡,§/¡/×"9Ñ"9Ó:ÐBÜ˜D %§-¡-Ó0Ð<ä˜˜fŸl™lŸo™o×5Ñ5´w¸tÀUÇ]Á]Ó7SÔTØ"×0Ñ0Ø %°}ð 1ó ˆOð ×&Ñ&ØØØ+Ø,ð	 'ó ˆGñ Ø�âÜ˜˜eŸm™m¨T×-=Ñ-=¸f¿l¹lÓ-KÔLð —?‘? 4Õ(Ø×-Ñ-¨dÖ3ð9	4ð: ˆr@   c           
      óÜ  — |j                   }|j                  D �cg c]  }|j                  rŒ|‘Œ }	}|r+|	D �cg c]   }|j                  |v s|j                  |v r|‘Œ" }	}| j                  |«      }
|
€<|j                  j                  | «      }
t        | |j                  j                  |
«       |
du}|s|s|rt        d«      ‚d}|sL|sJ| j                  j                  r4|j                  j                  r|j                  j                  t        urd}|r‘|s�|j                  j                  |«      }|	D �cg c]/  }|d|rt!        | |j                  «      n|j#                  | d«      f‘Œ1 }}|xs |}| j%                  |||
|||«      }|r|st'        d«      ‚|r|st'        d«      ‚|�s.|j(                  r›|j(                  }|j+                  | «      } |j                  j                  |«      j,                  di |¤Žj/                  t1        t3        t5        d«      t7        d«      z   t9        «       ¬	«      t7        d
«      «      ¬«      d   | _        |j                  }|s|D �cg c]  }||j<                  usŒ|‘Œ }}|j>                  }| jA                  |j                  ||||«      }|r.tC        |d
   |«      D ]  \  }}t        | |j                  |«       Œ |S c c}w c c}w c c}w c c}w )zp
        Do the heavy-lifting involved in saving. Update or insert the data
        for a single table.
        Nz5Cannot force an update in save() with no primary key.FTz&Forced update did not affect any rows.z0Save with update_fields did not affect any rows.Ú_orderé   )Úoutput_fieldr   )Ú_order__maxr}  r:   )"r[   Úlocal_concrete_fieldsre  rI   rù   r7  r  Úget_pk_value_on_saver´   rÎ   ró   rê   Údefaultr   rÚ   rK  rq   r.   Ú
_do_updater   rÂ   Úget_filter_kwargs_for_objectrD  Ú	aggregater%   r   r   r   r   rz  Ú
auto_fieldÚdb_returning_fieldsÚ
_do_insertrø   )r<   rl  r‘   r]  r^  rK  r_  r�   r¢   Únon_pksÚpk_valÚpk_setrv  Úbase_qsr  Úforced_updater¨   Úfilter_argsr}   Úreturning_fieldsÚresultsrS   s                         r=   rr  zModel._save_tableª  sò  € ð �y‰yˆØ"×8Ñ8ÖN˜ÀÇÃ’1ÐNˆÐNáð !öàØ—6‘6˜]Ñ*¨a¯i©i¸=Ñ.Hò ðˆGð ð ×!Ñ! $Ó'ˆØˆ>Ø—W‘W×1Ñ1°$Ó7ˆFÜ�D˜$Ÿ'™'Ÿ/™/¨6Ô2Ø˜tÐ#ˆÙ™<©=ÜÐTÓUÐUØˆñ Ù Ø—‘×"Ò"Ø—‘—’Ø—‘—‘¤|Ñ3àˆLá™,Ø×'Ñ'×-Ñ-¨eÓ4ˆGð !öð ð	 ØÙ14”W˜T 1§9¡9Ô-¸!¿*¹*ÀTÈ5Ó:QòðˆFð ð *Ò9¨\ˆMØ—o‘oØ˜ ¨°¸}óˆGñ ¡GÜ#Ð$LÓMÐMÙ¡WÜ#Ð$VÓWÐWÚØ×)Ò)ð ×2Ñ2�Ø#×@Ñ@ÀÓF�ð�C×%Ñ%×+Ñ+¨EÓ2ß‘Vñ+Ø)ñ+ç‘YÜ$,Ü-Ü # H£´°a³Ñ 8Ä|Ã~ôô " !›Hó	%ð ó ð $ñ	%ð ”ð ×/Ñ/ˆFÙØ%+ÖH ¨q¸¿¹Ò/Gš!ÐH�ÐHà#×7Ñ7ÐØ—o‘oØ×!Ñ! 5¨&Ð2BÀCóˆGñ Ü$'¨°©
Ð4DÓ$Eò 8‘L�E˜5Ü˜D %§-¡-°Õ7ð8àˆùòU Oùòùò4ùòH Is!   ›K­K¹%KÄ74K$É#K)É7K)c                 ó  — |j                  |¬«      }|s|duxs |j                  «       S | j                  j                  r:|s8|j                  «       xr& |j	                  |«      dkD  xs |j                  «       S |j	                  |«      dkD  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).
        rA  Nr   )rD  Úexistsr[   Úselect_on_saveÚ_update)r<   rŠ  rK  rˆ  r  r_  r‹  Úfiltereds           r=   r�  zModel._do_update  s�   € ð
 —>‘> V�>Ó,ˆÙð !¨Ð,ÒA°·±Ó0AÐAØ�:‰:×$Ò$©]à—‘Ó!ò 	Dð ×!Ñ! &Ó)¨AÑ-ÒB°·±Ó1Bðð ×Ñ Ó'¨!Ñ+Ð+r@   c                 ó0   — |j                  | 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�  rK  rl  )Ú_insert)r<   rÕ   rK  r}   r�  rl  s         r=   r†  zModel._do_insert   s+   € ð
 �‰ØˆFØØ-ØØð ó 
ð 	
r@   c                 óŠ  — | j                   j                  D �]  }|r||vrŒ|j                  sŒ|j                  | «      sŒ*t	        | |j
                  d «      }|sŒD|j                  €L|j                  j                  s|j                  j                  |«       t        |›d|j
                  ›d�«      ‚t	        | |j                  «      |j                  v rt        | |j
                  |«       t	        ||j                  j                  «      t	        | |j                  «      k7  s�Œ|j                  | «       �Œ! | j                   j                  D ]r  }|r||vrŒ
|j                  sŒ|j                  | «      sŒ)t!        |d«      sŒ6|j#                  | d ¬«      }|sŒL|j                  �ŒYt        |› d|j
                  › d�«      ‚ y )NzB() prohibited to prevent data loss due to unsaved related object 'rh   Úfk_field)r€  )r[   rõ   rG  rH  rq   rI   r  r�   ÚmultiplerI  rÎ   rù   Úempty_valuesr´   r9  r|   rR   Úget_cached_value)r<   rZ  r}   r¨   r›   s        r=   r`  z&Model._prepare_related_fields_for_save-  sŸ  € ð
 —Z‘Z×/Ñ/ó  	4ˆEÙ˜% vÑ-Øð × Ó  U§_¡_°TÕ%:Ü˜d E§J¡J°Ó5�ÙØð —6‘6�>à ×-Ñ-×6Ò6Ø×*Ñ*×>Ñ>¸sÔCÜ$â2@À%Ç*Ã*ðNóð ô ˜T 5§=¡=Ó1°U×5GÑ5GÑGô ˜D %§*¡*¨cÔ2ô ˜3 × 2Ñ 2× :Ñ :Ó;¼wØ˜%Ÿ-™-ó@ô ð ×-Ñ-¨dÖ3ðA 	4ðD —Z‘Z×.Ñ.ò 	ˆEÙ˜% vÑ-Øà×!Ó!Ø—O‘O DÕ)Ü˜E :Õ.à×,Ñ,¨T¸4Ð,Ó@�Ú˜3Ÿ6™6™>Ü$Ø)Ð*ð +3Ø38·:±:°,¸bðBóð ñ	r@   c                 óL  — | j                   €Ct        | j                  j                  ›d| j                  j                   j                  ›d�«      ‚|xs! t        j                  | j                  | ¬«      }t        || ¬«      }|j                  | g|¬«       |j                  «       S )Nz% object can't be deleted because its z attribute is set to None.r[  )rK  rs  )Úkeep_parents)r  rÎ   r[   r"  rù   r   ra  r±   r   ÚcollectÚdelete)r<   rK  rœ  Ú	collectors       r=   rž  zModel.deletec  sˆ   € Ø�7‰7ˆ?Üà"Ÿj™j×4Ó4°d·j±j·m±m×6KÓ6KðMóð ð ÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÜ E°$Ô7ˆ	Ø×Ñ˜4˜&¨|ÐÔ<Ø×ÑÓ!Ð!r@   c              ƒ   óX   K  —  t        | j                  «      ||¬«      ƒ d {  –—† S 7 Œ­w)N)rK  rœ  )r   rž  )r<   rK  rœ  s      r=   ÚadeletezModel.adeletep  s.   è ø€ Ø/”] 4§;¡;Ó/ØØ%ô
÷ 
ð 	
ð 
úrT  c                 ó¶   — t        | |j                  «      }t        t        |j                  «      «      }t        |j                  t        |«      |«      d¬«      S )NT)Ústrings_only)rq   rù   Údictr2   Úflatchoicesr1   rÊ   )r<   r¨   rS   Úchoices_dicts       r=   Ú_get_FIELD_displayzModel._get_FIELD_displayx  sK   € Ü˜˜eŸm™mÓ,ˆÜœM¨%×*;Ñ*;Ó<Ó=ˆäØ×Ñœ]¨5Ó1°5Ó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                  «      j                  di |¤Žj                  |«      j                  |›|j                  ›�d	|z  «      }	 |d
   S # t         $ r3 | j#                  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Î   rq   rù   r)   ÚcreaterI   ÚANDÚORr±   rÝ   rK  ró   ré   rD  Úorder_byrö   r]   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ŠwÜÐWÓXÐXÙ‰T $ˆÙ‘ 3ˆÜ˜˜eŸm™mÓ,ˆÜ�H‰H�u—z‘z 5Ð)¨d°2°$¨K¸¿¹Ð+AÐBÌaÏeÉeÔTˆÜ�H‰H�a˜UŸZ™Z˜L¨¨2¨$Ð/°Ð7Ð8ÄAÇDÁDÔIˆðˆD�N‰N×+Ñ+×1Ñ1°$·+±+·.±.ÓAß‰VñØñç‰V�A‹Yß‰X¡ u§z¢zÐ2°F¸U±NÓCð	 	ð	Ø�a‘5ˆLøÜò 	Ø×#Ñ#Ø3°d·n±n×6JÑ6J×6VÑ6VÑVóð ð	ús   Ä.D3 Ä3<E/c                 ó,  — d|z  }t        | |«      sø|rdnd}|rdnd}| j                  j                  }|j                  | «      }  | j                  j
                  j                  di |¤Žj                  di d|z   | j                  j
                  j                  d«      j                  di | j                  j                  j                  | j                  i¤Ži¤Žj                  |«      d d j                  «       }t        | ||«       t        | |«      S )	Nz__%s_order_cacher©  rª  rz  z-_orderz
_order__%sr{  r:   )rR   r[   rÂ   r‚  r±   rÝ   rD  r  r  rI   r³  rÊ   r´   rq   )r<   r¶   Ú	cachenamer´  rµ  Úorder_fieldrŒ  r›   s           r=   rÃ   z$Model._get_next_or_previous_in_order•  s  € Ø&¨Ñ0ˆ	Ü�t˜YÔ'Ù ‘ dˆBÙ '‘H¨YˆEØŸ*™*×:Ñ:ˆKØ%×BÑBÀ4ÓHˆKðÐ6�—‘×/Ñ/×6Ñ6ÑE¸ÑEß‘ñð %ØñØU˜dŸn™n×=Ñ=×DÑDÀXÓN×UÑUñ Ø#Ÿz™zŸ}™}×1Ñ1°4·7±7Ð;ñðñ÷ ‘˜%“  !ð	%÷ ‘“ð ô �D˜) SÔ)Ü�t˜YÓ'Ð'r@   c           
      óæ   — |€
t        «       }|xs | j                  }|j                  D �ci c];  }|j                  |vr+|j                  t	        t        | |j                  «      |«      “Œ= c}S c c}w r³   )rƒ   r[   r~  rI   r   rq   rù   )r<   r�   Úexcluder¨   s       r=   Ú_get_field_value_mapzModel._get_field_value_map¬  sk   € Øˆ?Ü“eˆGØÒ!�t—z‘zˆð ×3Ñ3ö
àØ�z‰z Ñ(ð �J‰Jœœg d¨E¯M©MÓ:¸EÓBÑBò
ð 	
ùò 
s   «A A.c                 ó’   — | j                   €t        d| z  «      ‚t        | |j                  j	                  «       j
                  «      S )Nz9Unsaved model instance %r cannot be used in an ORM query.)r  rÎ   rq   r�   Úget_related_fieldrù   )r<   r¨   s     r=   Úprepare_database_savezModel.prepare_database_save¶  sD   € Ø�7‰7ˆ?ÜØKÈdÑRóð ô �t˜U×/Ñ/×AÑAÓC×KÑKÓLÐLr@   c                  ó   — y)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                 óþ   — | j                  |¬«      \  }}| j                  |«      }| j                  |«      }|j                  «       D ]&  \  }}|j	                  |g «      j                  |«       Œ( |rt        |«      ‚y)zh
        Check unique constraints on the model and raise ValidationError if any
        failed.
        ©r¾  N)Ú_get_unique_checksÚ_perform_unique_checksÚ_perform_date_checksrp   Ú
setdefaultÚextendr   )r<   r¾  Úunique_checksÚdate_checksÚerrorsÚdate_errorsÚkÚvs           r=   Úvalidate_uniquezModel.validate_uniqueÆ  sˆ   € ð
 &*×%<Ñ%<ÀWÐ%<Ó%MÑ"ˆ�{à×,Ñ,¨]Ó;ˆØ×/Ñ/°Ó<ˆà×%Ñ%Ó'ò 	/‰DˆAˆqØ×Ñ˜a Ó$×+Ñ+¨AÕ.ð	/ñ Ü! &Ó)Ð)ð r@   c                 óÌ  ‡— ‰€
t        «       Šg }| j                  | j                  j                  fg}g }|r#| j                  | j                  j                  fg}| j                  j                  «       D ]€  }|j                  j                  r'|j                  ||j                  j                  f«       |sŒC|j                  j                  sŒZ|j                  ||j                  j                  f«       Œ‚ |D ]=  \  }}|D ]3  }	t        ˆfd„|	D «       «      rŒ|j                  |t        |	«      f«       Œ5 Œ? |rM|D ]H  \  }}
|
D ]>  }t        ˆfd„|j                  D «       «      rŒ"|j                  ||j                  f«       Œ@ ŒJ g }| j                  | j                  j                  fg}| j                  j                  «       D ])  }|j                  ||j                  j                  f«       Œ+ |D ]ê  \  }}|D ]à  }|j                  }|‰v rŒ|j                  r|j                  ||ff«       |j                  r-|j                  ‰vr|j                  |d||j                  f«       |j                  r-|j                  ‰vr|j                  |d||j                  f«       |j                  sŒ³|j                  ‰vsŒÂ|j                  |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.
        c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr³   r:   ©ra   rI   r¾  s     €r=   rc   z+Model._get_unique_checks.<locals>.<genexpr>ò  s   øè ø€ Ò=¨t˜4 7œ?Ñ=ùó   ƒc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr³   r:   rÕ  s     €r=   rc   z+Model._get_unique_checks.<locals>.<genexpr>ù  s   øè ø€ ÒM°4˜t wœÑMùrÖ  ÚdateÚyearÚmonth)rƒ   r±   r[   Úunique_togetherÚtotal_unique_constraintsÚget_parent_listr*  rÍ   rv   r}   rz   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}   r¢   rI   s    `               r=   rÇ  zModel._get_unique_checksÖ  sß  ø€ ð ˆ?Ü“eˆGØˆà!Ÿ^™^¨T¯Z©Z×-GÑ-GÐHÐIÐØˆÙ#Ø ŸN™N¨D¯J©J×,OÑ,OÐPÐQˆKØ ŸJ™J×6Ñ6Ó8ò 	ˆLØ×!Ñ!×1Ò1Ø ×'Ñ'Ø! <×#5Ñ#5×#EÑ#EÐFôò (¨L×,>Ñ,>×,WÓ,WØ×"Ñ"Ø! <×#5Ñ#5×#NÑ#NÐOõð	ð -=ò 	FÑ(ˆK˜Ø(ò F�ÜÓ=°uÔ=Õ=à!×(Ñ(¨+´u¸U³|Ð)DÕEñFð	Fñ $Ø2=ò OÑ.�Ð.Ø"3ò O�JÜÓM¸:×;LÑ;LÔMÕMØ%×,Ñ,¨k¸:×;LÑ;LÐ-MÕNñOðOð ˆð
 #Ÿn™n¨d¯j©j×.EÑ.EÐFÐGÐØ ŸJ™J×6Ñ6Ó8ò 	VˆLØ×$Ñ$ l°L×4FÑ4F×4SÑ4SÐ%TÕUð	Vð $5ò 	YÑˆK˜Øò Y�Ø—v‘v�Ø˜7‘?ØØ—8’8Ø!×(Ñ(¨+¸°wÐ)?Ô@Ø×$Ò$¨×):Ñ):À'Ñ)IØ×&Ñ&¨°V¸TÀ1×CTÑCTÐ'UÔVØ×$Ò$¨×):Ñ):À'Ñ)IØ×&Ñ&¨°V¸TÀ1×CTÑCTÐ'UÔVØ×%Ó%¨!×*<Ñ*<ÀGÒ*KØ×&Ñ&¨°W¸dÀA×DVÑDVÐ'WÕXñYð	Yð ˜kÐ)Ð)r@   c                 óè  — i }|D �]i  \  }}i }|D ]†  }| j                   j                  |«      }t        | |j                  «      }|�|dk(  rt        j
                  j                  rŒV|j                  r| j                  j                  sŒy||t        |«      <   Œˆ t        |«      t        |«      k7  rŒ¬ |j                  j                  di |¤Ž}	| j                  |j                   «      }
| j                  j                  s|
�|	j                  |
¬«      }	|	j!                  «       s�Œt        |«      dk(  r|d   }nt"        }|j%                  |g «      j'                  | j)                  ||«      «       �Œl |S )Nr«  rA  r{  r   r:   )r[   rþ   rq   rù   r   ÚfeaturesÚ!interprets_empty_strings_as_nullsre  ró   rê   Ústrrô   rÝ   rD  r7  r¾  r�  r	   rÊ  r*  Úunique_error_message)r<   rÌ  rÎ  ræ  Úunique_checkÚlookup_kwargsrV  r¢   Úlookup_valuer¸  Úmodel_class_pkÚkeys               r=   rÈ  zModel._perform_unique_checks  s_  € Øˆà)6ó *	Ñ%ˆK˜ð ˆMØ*ò >�
Ø—J‘J×(Ñ(¨Ó4�Ü& t¨Q¯Y©YÓ7�àÐ'Ø  BÒ&Ü"×+Ñ+×MÒMð Ø—=’=¨¯©×);Ò);àØ1=�œc *›oÒ.ð>ô  �<Ó ¤C¨Ó$6Ò6Øà4�×-Ñ-×4Ñ4ÑE°}ÑEˆBð "×-Ñ-¨k×.?Ñ.?Ó@ˆNØ—;‘;×%Ò%¨.Ð*DØ—Z‘Z >�ZÓ2�Ø�y‰yŽ{Ü�|Ó$¨Ò)Ø& q™/‘Cä*�CØ×!Ñ! # rÓ*×1Ñ1Ø×-Ñ-¨k¸<ÓHöðQ*	ðX ˆr@   c                 ó@  — i }|D �]  \  }}}}i }t        | |«      }|€Œ|dk(  r7|j                  |d|z  <   |j                  |d|z  <   |j                  |d|z  <   nt        ||«      ||›d|›�<   t        | |«      ||<    |j                  j
                  di |¤Ž}	| j                  j                  s(| j                  �|	j                  | j                  ¬«      }	|	j                  «       sŒä|j                  |g «      j                  | j                  |||«      «       �Œ |S )NrØ  z%s__dayz	%s__monthz%s__yearr¯  rA  r:   )rq   ÚdayrÚ  rÙ  rÝ   rD  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  s,  € ØˆØ;Fó 	Ñ7ˆK˜ e¨ZØˆMô ˜4 Ó,ˆDØˆ|ØØ˜fÒ$Ø8<¿¹�˜i¨*Ñ4Ñ5Ø:>¿*¹*�˜k¨JÑ6Ñ7Ø9=¿¹�˜j¨:Ñ5Ò6äFMØ˜+óG�ª*±kÐBÑCô $+¨4°Ó#7ˆM˜%Ñ à4�×-Ñ-×4Ñ4ÑE°}ÑEˆBð —;‘;×%Ò%¨$¯'©'Ð*=Ø—Z‘Z 4§7¡7�ZÓ+�à�y‰y�{Ø×!Ñ! %¨Ó,×3Ñ3Ø×+Ñ+¨K¸À
ÓKöð1	ð6 ˆr@   c                 ó  — | j                   }|j                  |«      }t        |j                  d   d| t	        |j
                  «      ||t	        |j
                  «      |t	        |j                  |«      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ø  rV  rù  rÑ   r¨   s         r=   r÷  zModel.date_error_messagee  s|   € Ø�z‰zˆØ—‘˜zÓ*ˆÜØ×(Ñ(Ð):Ñ;Ø"àÜ& t×'8Ñ'8Ó9Ø*Ø#Ü'¨×(:Ñ(:Ó;Ø(Ü$,¨T¯^©^¸JÓ-G×-TÑ-TÓ$Uñô
ð 	
r@   c                 óÂ  — |j                   }| |t        |j                  «      |dœ}t        |«      dk(  rG|j	                  |d   «      }t        |j                  «      |d<   t        |j                  d   d|¬«      S |D �cg c]&  }t        |j	                  |«      j                  «      ‘Œ( }}t        |t        d«      «      |d<   t        t        d	«      d
|¬«      S c c}w )N)r‚   ræ  rˆ   rð  r{  r   rû  rÞ  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¢   r  s           r=   rï  zModel.unique_error_messagev  sî   € Ø× Ñ ˆð Ø&Ü" 4×#4Ñ#4Ó5Ø(ñ	
ˆô ˆ|Ó Ò!Ø—N‘N <°¡?Ó3ˆEÜ$,¨U×-?Ñ-?Ó$@ˆF�=Ñ!Ü"Ø×,Ñ,¨XÑ6ØØôð ð COöØ=>”˜Ÿ™¨Ó*×7Ñ7Õ8ðˆLð ô &3°<ÄÀ5ÃÓ%JˆF�>Ñ"Ü"ÜÐUÓVØ&Øôð ùò	s   Â +Cc                 ó  — | j                   | j                  j                  fg}| j                  j                  «       D ]@  }|j                  j                  sŒ|j	                  ||j                  j                  f«       ŒB |S r³   )r±   r[   rä  rÝ  r*  )r<   rä  rå  s      r=   Úget_constraintszModel.get_constraints–  sq   € ØŸ™¨¯
©
×(>Ñ(>Ð?Ð@ˆØ ŸJ™J×6Ñ6Ó8ò 	SˆLØ×!Ñ!×-Ó-Ø×"Ñ" L°,×2DÑ2D×2PÑ2PÐ#QÕRð	Sð Ðr@   c                 óÎ  — | j                  «       }t        j                  | j                  | ¬«      }i }|D ]"  \  }}|D ]  }	 |j	                  || ||¬«       Œ Œ$ |rt        |«      ‚y # t
        $ rr}t        |dd «      dk(  rGt        |j                  «      dk(  r/|j                  |j                  d   g «      j                  |«       n|j                  |«      }Y d }~Œ¡d }~ww xY w)Nr[  )r¾  rK  r   rÞ  r{  r   )r	  r   ra  r±   Úvalidater   rq   rô   r}   rÊ  r*  Úupdate_error_dict)	r<   r¾  rä  rK  rÎ  ræ  rè  ré  Úes	            r=   Úvalidate_constraintszModel.validate_constraints�  sî   € Ø×*Ñ*Ó,ˆÜ×#Ñ# D§N¡N¸TÔBˆàˆØ.9ò 	=Ñ*ˆKÐ*Ø/ò 
=�
ð	=Ø×'Ñ'¨°TÀ7ÐRWÐ'ÕXñ
=ð	=ñ Ü! &Ó)Ð)ð øô 'ò =ä  6¨4Ó0°HÒ<Ü 
× 1Ñ 1Ó2°aÒ7à×)Ñ)¨*×*;Ñ*;¸AÑ*>ÀÓC×JÑJÈ1ÕMà!"×!4Ñ!4°VÓ!<˜ÿøð=ús   ÁA)Á)	C$Á2A(CÃC$c                 óÂ  — i }|€t        «       }nt        |«      }	 | j                  |¬«       	 | j	                  «        |r:|D ]"  }|t
        k7  sŒ||vsŒ|j                  |«       Œ$ 	 | j                  |¬«       |r:|D ]"  }|t
        k7  sŒ||vsŒ|j                  |«       Œ$ 	 | j                  |¬«       |rt        |«      ‚y# t        $ r}|j                  |«      }Y d}~Œ¶d}~ww xY w# t        $ r}|j                  |«      }Y d}~ŒÌd}~ww xY w# t        $ r}|j                  |«      }Y d}~Œ·d}~ww xY w# t        $ r}|j                  |«      }Y d}~Œ¢d}~ww xY w)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±  sh  € ð ˆØˆ?Ü“e‰Gä˜'“lˆGð	1Ø×Ñ gÐÔ.ð	1Ø�J‰JŒLñ
 Øò &�ØÔ+Ó+°¸GÒ0CØ—K‘K Õ%ð&ð5Ø×$Ñ$¨WÐ$Ô5ñ
  Øò &�ØÔ+Ó+°¸GÒ0CØ—K‘K Õ%ð&ð5Ø×)Ñ)°'Ð)Ô:ñ Ü! &Ó)Ð)ð øô= ò 	1Ø×(Ñ(¨Ó0�Fûð	1ûô ò 	1Ø×(Ñ(¨Ó0�Fûð	1ûô #ò 5Ø×,Ñ,¨VÓ4•ûð5ûô #ò 5Ø×,Ñ,¨VÓ4•ûð5ús^   œC ¯C, Á)D Â%D: Ã	C)ÃC$Ã$C)Ã,	DÃ5DÄDÄ	D7ÄD2Ä2D7Ä:	EÅEÅEc           	      óž  — |€
t        «       }i }| j                  j                  D ]j  }|j                  |v rŒt	        | |j
                  «      }|j                  r||j                  v rŒC	 t        | |j
                  |j                  || «      «       Œl |rt        |«      ‚y# t        $ r#}|j                  ||j                  <   Y d}~Œ¢d}~ww xY w)z
        Clean all fields and raise a ValidationError containing a dict
        of all validation errors if any occur.
        N)rƒ   r[   r}   rI   rq   rù   Úblankr™  r´   rÄ  r   Ú
error_list)r<   r¾  rÎ  r¢   Ú	raw_valuer  s         r=   r  zModel.clean_fieldsà  s¼   € ð
 ˆ?Ü“eˆGàˆØ—‘×"Ñ"ò 	.ˆAØ�v‰v˜Ñ Øô    a§i¡iÓ0ˆIØ�wŠw˜9¨¯©Ñ6Øð.Ü˜˜aŸi™i¨¯©°¸DÓ)AÕBð	.ñ Ü! &Ó)Ð)ð øô #ò .Ø!"§¡��q—v‘v–ûð.ús   Á)'B Â 	CÂ)CÃCc                 ó0  — g | j                  «       ¢| j                  «       ¢ | j                  di |¤Ž¢}| j                  j                  �sJ|j                  d«      xs g }|g  | j                  di |¤Ž¢| j                  «       ¢| j                  |«      ¢z  }g | j                  «       ¢| j                  «       ¢| j                  «       ¢| j                  «       ¢| j                  «       ¢­}|j                  |«       |s|j                  | j                  «       «       |g | j!                  «       ¢| j#                  «       ¢| j%                  |«      ¢| j'                  «       ¢| j)                  |«      ¢| j+                  «       ¢| j-                  |«      ¢z  }|S )NÚ	databasesr:   )Ú_check_swappableÚ_check_modelÚ_check_managersr[   rx   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‰y× Ó ØŸ
™
 ;Ó/Ò5°2ˆIØð Ø"�×"Ñ"Ñ, VÑ,ðà×9Ñ9Ó;ðð ×-Ñ-¨iÓ8ðñ ˆFð
Ø×$Ñ$Ó&ðà×.Ñ.Ó0ðð ×8Ñ8Ó:ðð ×HÑHÓJð	ð
 ×.Ñ.Ó0ñˆLð �M‰M˜,Ô'ñ  Ø—‘˜c×<Ñ<Ó>Ô?Øð Ø×*Ñ*Ó,ðà×+Ñ+Ó-ðð ×#Ñ# IÓ.ðð ×$Ñ$Ó&ð	ð
 ×'Ñ'¨	Ó2ðð ×&Ñ&Ó(ðð ×,Ñ,¨YÓ7ðñ ˆFð ˆr@   c                 óV  — | j                   j                  �s| j                   j                  j                  rñt	        | j                   j                  t
        «      r*| j                   j                  j                  j                  s£t        j                  d«      sŽ| j                   j                  rx| j                   j                  j                  sXt        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 'rh   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[   rZ   r  rj   rn   r"   r�   rk   r   Úis_overriddenrŸ   Ú!_is_default_auto_field_overriddenr   ÚWarningr-  r±   rE   rÙ   s    r=   r)  zModel._check_default_pk  sê   € ð —	‘	×"Ó"Ø—	‘	—‘×)Ò)ô ˜3Ÿ9™9Ÿ<™<¬Ô7Ø—I‘I—L‘L×-Ñ-×9Ò9ä×*Ñ*Ð+?Ô@Ø—	‘	×$Ò$Ø—I‘I×(Ñ(×JÒJô —‘ðä ×3Ñ3Ð4°Bð8ð KØŸ9™9×/Ñ/×9Ñ9×FÑFÐGð HNðOð
 Ø$ôðð ð ˆ	r@   c                 óP  — | j                   j                  sg S g }|D ]†  }t        j                  || «      sŒt        |   }|j
                  j                  rŒ:d| j                   j                  v rŒS|j                  t        j                  |j                  › d�| d¬«      «       Œˆ |S )NÚsupports_commentsz8 does not support comments on tables (db_table_comment).zmodels.W046©r›   r0  )r[   Údb_table_commentr   Úallow_migrate_modelr   rì  r5  Úrequired_db_featuresr*  r   r3  Údisplay_name)r‘   r  rÎ  ré   r   s        r=   r*  zModel._check_db_table_comment?  s    € à�y‰y×)Ò)ØˆIØˆØò 	ˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJà×#Ñ#×5Ó5Ø&¨#¯)©)×*HÑ*HÒHà—‘Ü—N‘NØ%×2Ñ2Ð3ð 45ð 6àØ(ô	õð	ð  ˆr@   c                 ó  — g }| j                   j                  r,	 t        j                  | j                   j                  «       |S |S # t        $ rA |j                  t        j                  d| j                   j                  z  d¬«      «       Y |S t        $ rp | j                   j                  j                  d«      \  }}|j                  t        j                  d| j                   j                  ›d|›d|›d�d¬«      «       Y |S w xY w)	z"Check if the swapped model exists.z-'%s' is not of the form 'app_label.app_name'.zmodels.E001©r0  rG   ú'z' references 'z0', which has not been installed, or is abstract.zmodels.E002)r[   rx   r   Ú	get_modelrÎ   r*  r   ÚErrorÚ	swappableÚLookupErrorÚsplit)r‘   rÎ  r\   rˆ   s       r=   r  zModel._check_swappableV  sê   € ð ˆØ�9‰9×ÒðÜ—‘˜sŸy™y×0Ñ0Ô1ð& ˆˆvˆøô% ò Ø—‘Ü—L‘LØGØŸ)™)×-Ñ-ñ.à(ôõð" ˆô ò 	Ø(+¯	©	×(9Ñ(9×(?Ñ(?ÀÓ(DÑ%�	˜:Ø—‘Ü—L’Lð Ÿ9™9×.Ó.²	º:ðGð )ô	õð ˆð	ús   š)A ÁADÂA4DÄDc                 óô   — g }| j                   j                  r_| j                   j                  s| j                   j                  r3|j	                  t        j                  d| j                  z  d¬«      «       |S )Nz'Proxy model '%s' contains model fields.zmodels.E017r<  )r[   rw   rz   r{   r*  r   r?  rC   ©r‘   rÎ  s     r=   r  zModel._check_modelq  sY   € àˆØ�9‰9�?Š?Ø�y‰y×%Ò%¨¯©×)EÒ)EØ—‘Ü—L‘LØAÀCÇLÁLÑPØ(ôôð ˆr@   c                 ó‚   — g }| j                   j                  D ]#  }|j                   |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~  sA   € ð ˆØ—y‘y×)Ñ)ò 	3ˆGØ�M‰M˜-˜'Ÿ-™-Ñ1¨&Ñ1Õ2ð	3àˆr@   c                 óþ   — g }| j                   j                  D ]#  }|j                   |j                  di |¤Ž«       Œ% | j                   j                  D ]%  }|j                   |j                  dd| i|¤Ž«       Œ' |S )zPerform all field checks.Ú
from_modelr:   )r[   rz   rË  rç  r{   )r‘   r“   rÎ  r¨   s       r=   r  zModel._check_fields†  s{   € ð ˆØ—Y‘Y×+Ñ+ò 	1ˆEØ�M‰M˜+˜%Ÿ+™+Ñ/¨Ñ/Õ0ð	1à—Y‘Y×1Ñ1ò 	AˆEØ�M‰M˜+˜%Ÿ+™+Ñ?°Ð?¸Ñ?Õ@ð	Aàˆr@   c                 óÀ  — g }g }| j                   j                  }d„ |D «       }d„ |D «       }|D ]¬  }|j                  j                  | |j                  j                  |j                  j
                  f}||v rS|j                  t        j                  d|j                  j                  j                   j                  z  | d¬«      «       Œœ|j                  |«       Œ® |S )zBCheck if no relationship model is used by more than one m2m field.c              3   ój   K  — | ]+  }t        |j                  j                  t        «      sŒ(|–— Œ- y ­wr³   )rn   r�   r‚   rV   r»   s     r=   rc   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>š  s#   è ø€ ÒS˜¤z°!·.±.×2FÑ2FÌ	Õ'R”!ÑSùó   ‚)3¬3c              3   ój   K  — | ]+  }t        |j                  j                  t        «      sŒ(|–— Œ- y ­wr³   )rn   r�   r\  rV   r»   s     r=   rc   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>�  s#   è ø€ ÒU˜¤z°!·.±.×2HÑ2HÌ)Õ'T”!ÑUùrJ  zWThe model has two identical many-to-many relations through the intermediate model '%s'.zmodels.E003r6  )
r[   r{   r�   r‚   r\  Úthrough_fieldsr*  r   r?  rt   )r‘   rÎ  Úseen_intermediary_signaturesr}   r¢   Ú	signatures         r=   r  z*Model._check_m2m_through_same_relationship�  sÝ   € ð ˆØ')Ð$à—‘×-Ñ-ˆñ T˜VÔSˆñ V˜VÔUˆàò 	?ˆAà—‘×$Ñ$ØØ—‘×&Ñ&Ø—‘×-Ñ-ð	ˆIð Ð8Ñ8Ø—‘Ü—L‘Lð?àŸ.™.×0Ñ0×6Ñ6×<Ñ<ñ=ð  Ø(ôõð -×3Ñ3°IÕ>ð%	?ð& ˆr@   c                 óD  — | j                   j                  D �cg c].  }|j                  dk(  sŒ|| j                   j                  k7  sŒ-|‘Œ0 }}|rK|d   j                  s<| j                   j                  j                  dk(  rt        j                  d| d¬«      gS g S c c}w )z%Check if `id` field is a primary key.r0  r   zP'id' can only be used as a field name if the field also sets 'primary_key=True'.zmodels.E004r6  )r[   rz   rI   r  re  r   r?  )r‘   r¢   r}   s      r=   r  zModel._check_id_field´  s”   € ð —y‘y×-Ñ-ö
Ø°·±¸4³ÀAÈÏÉÏÉÓDUŠAð
ˆð 
ñ ˜& ™)×/Ò/°C·I±I·L±L×4EÑ4EÈÒ4Mä—‘ð/àØ$ô	ðð ð ˆIùò
s   ™B®BÁBc                 óÌ  — g }i }| j                   j                  «       D ]é  }|j                   j                  D ]Î  }|j                  |j                  «      xs |j                  |j
                  «      xs d}|rp|j                  t        j                  d|j                  ›d|j                  j                   ›d|j                  ›d|j                  j                   ›d�	| d¬«      «       |||j                  <   |||j
                  <   ŒÐ Œë | j                   j                  «       D ]5  }|j                   j                  «       D ]  }||vsŒ|||j                  <   Œ Œ7 | j                   j                  D ]î  }|j                  |j                  «      xs |j                  |j
                  «      xs d}|j                  dk(  xr$ |xr  |j                  dk(  xr |j                  | k(  }|r[|sY|j                  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 'rh   zmodels.E005r6  r0  z' from model 'zmodels.E006)r[   rÝ  rz   rÊ   rI   rù   r*  r   r?  r‚   Ú
get_fields)r‘   rÎ  Úused_fieldsr¦   r¢   ÚclashÚid_conflicts          r=   r  zModel._check_field_name_clashesÇ  s  € ð ˆØˆð —i‘i×/Ñ/Ó1ò 	+ˆFØ—\‘\×.Ñ.ò +�Ø#Ÿ™¨¯©Ó/ÒU°;·?±?À1Ç9Á9Ó3MÒUÐQU�ÙØ—M‘MÜŸšð  %Ÿz›z¨5¯;©;×+<Ó+<¸a¿f»fÀaÇgÁgÇmÃmðUð !$Ø,ôô	ð '(�˜AŸF™FÑ#Ø)*�˜AŸI™IÒ&ñ+ð	+ð( —i‘i×/Ñ/Ó1ò 	,ˆFØ—\‘\×,Ñ,Ó.ò ,�Ø˜KÒ'Ø*+�K §¡Ò'ñ,ð	,ð
 —‘×'Ñ'ò 	'ˆAØ—O‘O A§F¡FÓ+ÒQ¨{¯©¸q¿y¹yÓ/IÒQÈTˆEð —‘˜$‘ÒV 5ÒV¨U¯Z©Z¸4Ñ-?ÒVÀEÇKÁKÐSVÑDVð ñ ™[Ø—‘Ü—L’Là./¯f«f°e·j³jÀ%Ç+Á+×BSÓBSðUàØ(ô	ôð #$ˆK˜Ÿ™ÑØ%&ˆK˜Ÿ	™	Ò"ð'	'ð* ˆr@   c           
      ó  — g }g }| j                   j                  D ]f  }|j                  «       \  }}|r>||v r:|j                  t	        j
                  d|j                  ›d|›d�d| d¬«      «       ŒV|j                  |«       Œh |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[   rz   Úget_attname_columnr*  r   r?  rI   )r‘   Úused_column_namesrÎ  r¢   r  Úcolumn_names         r=   r#  z Model._check_column_name_clashesþ  sŽ   € ð ÐØˆà—‘×'Ñ'ò 	6ˆAØ×1Ñ1Ó3‰NˆAˆ{ñ ˜{Ð.?Ñ?Ø—‘Ü—L’Là,-¯F«F²KðAàCØØ(ôõð "×(Ñ(¨Õ5ð	6ð" ˆr@   c                 ó"  — g }| j                   }|j                  d«      s|j                  d«      r,|j                  t	        j
                  d|z  | d¬«      «       |S t        |v r*|j                  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.E023r6  zbThe model name '%s' cannot contain double underscores as it collides with the query lookup syntax.zmodels.E024)rC   Ú
startswithÚendswithr*  r   r?  r   )r‘   rÎ  rˆ   s      r=   r   z)Model._check_model_name_db_lookup_clashes  s�   € àˆØ—\‘\ˆ
Ø× Ñ  Ô%¨×)<Ñ)<¸SÔ)AØ�M‰MÜ—‘ðCØEOñPàØ$ô	ôð" ˆô ˜:Ñ%Ø�M‰MÜ—‘ð@ØBLñMàØ$ô	ôð ˆr@   c                 óè   — g }| j                   j                  }d„ | j                   j                  d¬«      D «       }|D ]1  }||v sŒ|j                  t	        j
                  d|z  | d¬«      «       Œ3 |S )Nc              3   ól   K  — | ],  }|j                   r|j                  �|j                  «       –— Œ. y ­wr³   )rG  Úrelated_modelÚget_attnamer»   s     r=   rc   zLModel._check_property_name_related_field_accessor_clashes.<locals>.<genexpr>3  s.   è ø€ ò #
àØ�}Š} §¡Ð!<ð �M‰M�Oñ#
ùs   ‚24F©Úreversez8The property '%s' clashes with a related field accessor.zmodels.E025r6  )r[   rý   Ú_get_fieldsr*  r   r?  )r‘   rÎ  r  Úrelated_field_accessorsÚaccessors        r=   r!  z9Model._check_property_name_related_field_accessor_clashes/  sƒ   € àˆØŸ™×2Ñ2ˆñ#
à—Y‘Y×*Ñ*°5Ð*Ó9ô#
Ðð
 0ò 		ˆHØ˜>Ò)Ø—‘Ü—L‘Lð$Ø&.ñ/àØ(ô	õð		ð ˆr@   c                 óª   — g }t        d„ | j                  j                  D «       «      dkD  r'|j                  t	        j
                  d| d¬«      «       |S )Nc              3   ó:   K  — | ]  }|j                   sŒd –— Œ y­w)r{  N)re  r»   s     r=   rc   z2Model._check_single_primary_key.<locals>.<genexpr>G  s   è ø€ ÒB�Q°A·M³MŒqÑBùs   ‚”r{  zBThe model cannot have more than one field with 'primary_key=True'.zmodels.E026r6  )Úsumr[   rz   r*  r   r?  rD  s     r=   r"  zModel._check_single_primary_keyD  sN   € àˆÜÑB˜#Ÿ)™)×0Ñ0ÔBÓBÀQÒFØ�M‰MÜ—‘ð*àØ$ô	ôð ˆr@   c                 ó†  — 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 ]#  }|j                  | j                  |d«      «       Œ% |S )z+Check the value of "index_together" option.z)'index_together' must be a list or tuple.zmodels.E008r6  c              3   óJ   K  — | ]  }t        |t        t        f«       –— Œ y ­wr³   ©rn   rv   rE  ©ra   r}   s     r=   rc   z.Model._check_index_together.<locals>.<genexpr>_  s#   è ø€ ò 
Ø6<”
˜6¤E¬4 =Ó1Ô1ñ
ùó   ‚!#z6All 'index_together' elements must be lists or tuples.zmodels.E009Úindex_together)
rn   r[   rm  rv   rE  r   r?  rÍ   rË  Ú_check_local_fields©r‘   rÎ  r}   s      r=   r$  zModel._check_index_togetherS  s¾   € ô ˜#Ÿ)™)×2Ñ2´U¼D°MÔBä—‘Ø?ØØ$ôðð ô ñ 
Ø@CÇ	Á	×@XÑ@Xô
ô 
ô —‘ØLØØ$ôðð ð ˆFØŸ)™)×2Ñ2ò Q�Ø—‘˜c×5Ñ5°fÐ>NÓOÕPðQàˆMr@   c                 ó†  — 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 ]#  }|j                  | j                  |d«      «       Œ% |S )z,Check the value of "unique_together" option.z*'unique_together' must be a list or tuple.zmodels.E010r6  c              3   óJ   K  — | ]  }t        |t        t        f«       –— Œ y ­wr³   rj  rk  s     r=   rc   z/Model._check_unique_together.<locals>.<genexpr>|  s&   è ø€ ò 
àô ˜6¤E¬4 =Ó1Ô1ñ
ùrl  z7All 'unique_together' elements must be lists or tuples.zmodels.E011rÛ  )
rn   r[   rÛ  rv   rE  r   r?  rÍ   rË  rn  ro  s      r=   r%  zModel._check_unique_togetherp  s¾   € ô ˜#Ÿ)™)×3Ñ3´e¼T°]ÔCä—‘Ø@ØØ$ôðð ô ñ 
àŸ)™)×3Ñ3ô
ô 
ô
 —‘ØMØØ$ôðð ð ˆFØŸ)™)×3Ñ3ò R�Ø—‘˜c×5Ñ5°fÐ>OÓPÕQðRàˆMr@   c           	      óP  — g }t        «       }| j                  j                  D �]  }|j                  d   dk(  s|j                  d   j	                  «       r4|j                  t        j                  d|j                  z  | d¬«      «       t        |j                  «      |j                  kD  r@|j                  t        j                  d|j                  |j                  fz  | d¬«      «       |j                  sŒÖ|j                  D ])  }|j                  d„ | j                  |«      D «       «       Œ+ �Œ |D �]Ä  }t        j                  || «      sŒt         |   }|j"                  j$                  ssd	| j                  j&                  v s[t)        d
„ | j                  j                  D «       «      r5|j                  t        j*                  d|j,                  z  d| d¬«      «       |j"                  j.                  ssd| j                  j&                  v s[t)        d„ | j                  j                  D «       «      r5|j                  t        j*                  d|j,                  z  d| d¬«      «       |j"                  j0                  r�ŒNd| j                  j&                  v r�Œht)        d„ | j                  j                  D «       «      s�Œ�|j                  t        j*                  d|j,                  z  d| d¬«      «       �ŒÇ | j                  j                  D ���	cg c]  }|j2                  D ]  \  }}	|‘Œ	 Œ }
}}}	|
| j                  j                  D ��cg c]  }|j4                  D ]  }|‘Œ Œ c}}z  }
|
|z  }
|j7                  | j9                  |
d«      «       |S c c}	}}w c c}}w )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.E033r6  z8The index name '%s' cannot be longer than %d characters.zmodels.E034c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   Nr:   )ra   Úrefs     r=   rc   z'Model._check_indexes.<locals>.<genexpr>ª  s   è ø€ ò &Ø#&˜˜A�ñ&ùs   ‚Úsupports_partial_indexesc              3   ó8   K  — | ]  }|j                   d u–— Œ y ­wr³   )Ú	condition©ra   rÖ   s     r=   rc   z'Model._check_indexes.<locals>.<genexpr>´  s   è ø€ ÒQ°e�e—o‘o¨TÔ1ÑQùs   ‚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   ó4   K  — | ]  }|j                   –— Œ y ­wr³   )Úincluderx  s     r=   rc   z'Model._check_indexes.<locals>.<genexpr>Ä  s   è ø€ ÒC¨�e—m•mÑCùr¼   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   ó4   K  — | ]  }|j                   –— Œ y ­wr³   )Úcontains_expressionsrx  s     r=   rc   z'Model._check_indexes.<locals>.<genexpr>Ô  s   è ø€ ÒP°U�e×0Õ0ÑPùr¼   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.W043rŽ   )rƒ   r[   rŽ   rI   Úisdigitr*  r   r?  rô   Úmax_name_lengthr~  Úexpressionsr…   Ú_get_expr_referencesr   r8  r   rì  ru  r9  rÍ   r3  r:  ry  r|  Úfields_ordersr{  rË  rn  )r‘   r  rÎ  Ú
referencesrÖ   Ú
expressionré   r   r¨   r  r}   r{  s               r=   r&  zModel._check_indexesŽ  sB  € ð ˆÜ“Uˆ
Ø—Y‘Y×&Ñ&ó 	ˆEð �z‰z˜!‰} Ò# u§z¡z°!¡}×'<Ñ'<Ô'>Ø—‘Ü—L‘Lð'Ø).¯©ñ4àØ(ô	ôô �5—:‘:‹ ×!6Ñ!6Ò6Ø—‘Ü—L‘Lð&Ø).¯©°U×5JÑ5JÐ(KñLàØ(ô	ôð ×)Ó)Ø"'×"3Ñ"3ò �JØ×%Ñ%ñ &Ø*-×*BÑ*BÀ:Ó*Nô&õ òð-	ð4 ó 3	ˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJà×#Ñ#×<Ò<Ø-°·±×1OÑ1OÑOÜÑQ¸s¿y¹y×?PÑ?PÔQÔQØ—‘Ü—N‘NØFØ$×1Ñ1ñ2ð:ð  Ø(ô	ôð ×#Ñ#×=Ò=Ø.°#·)±)×2PÑ2PÑPÜÑC°·±×1BÑ1BÔCÔCØ—‘Ü—N‘NØKØ$×1Ñ1ñ2ðBð  Ø(ô	ôð ×#Ñ#×?Ô?Ø0°C·I±I×4RÑ4RÓRÜÑP¸c¿i¹i×>OÑ>OÔPÖPØ—‘Ü—N‘NØEØ$×1Ñ1ñ2ð:ð  Ø(ô	öðQ3	ðj  #Ÿy™y×0Ñ0÷
ð 
ØÀ×ATÑATò
Ù5=°U¸AŠEð
Øð
ˆò 
ð 	¨¯	©	×(9Ñ(9×W˜uÈÏÉÒW¸g’7ÐW�7ÓWÑWˆØ�*ÑˆØ�‰�c×-Ñ-¨f°iÓ@ÔAØˆùô
ùó Xs   ÌNÍN"c                 ó¨  — ddl m} i }| j                  j                  d¬«      D ]-  }|||j                  <   t        |d«      sŒ|||j                  <   Œ/ g }|D ]¹  }	 ||   }t        |j                  |j                  «      r2|j                  t        j                  d|›d|›d|›d	�| d
¬«      «       Œ[|| j                  j                  vsŒt|j                  t        j                  d|›d|›d| j                  j                  ›d	�d| d¬«      «       Œ» |S # t        $ r1 |j                  t        j                  d|›d|›d	�| d¬«      «       Y Œ÷w xY w)Nr   )ÚmodelsFr`  rù   r=  z' refers to a ManyToManyField 'z.', but ManyToManyFields are not permitted in 'rh   zmodels.E013r6  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[   rb  rI   rR   rù   rn   r�   ÚManyToManyRelr*  r   r?  rz   r"  rû   )r‘   r}   Úoptionr‡  Úforward_fields_mapr¨   rÎ  rV  s           r=   rn  zModel._check_local_fieldsé  sV  € å$ð  ÐØ—Y‘Y×*Ñ*°5Ð*Ó9ò 	:ˆEØ-2Ð˜uŸz™zÑ*Ü�u˜iÕ(Ø49Ð" 5§=¡=Ò1ð	:ð
 ˆØ ò '	ˆJð&Ø*¨:Ñ6�ô ˜e×0Ñ0°&×2FÑ2FÔGØ—M‘MÜŸšò !'Ú *Ú &ðð !$Ø,ô
õð  #§)¡)×"8Ñ"8Ò8Ø—M‘MÜŸšâ'-ªz¸3¿9¹9×;PÓ;PðRà!WØ #Ø,ôõð?'	ðP ˆøôK ò Ø—‘Ü—L’Lò #Ú&ðð
  Ø(ôö
ðús   ÁDÄ7EÅEc           
      óP  — | 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 ]-  }t        |v r|j                  |«       Œ|j                  |«       Œ/ |}|D ]Š  }| }d}|j                  t        «      D ]l  }		 |	d	k(  r|j                   j                  }n|j                   j                  |	«      }|j                  r$|j                  d
   j                   j"                  }nd}Œn ŒŒ |D �ch c]
  }|d	k7  sŒ	|’Œ }}g }
| j                   }t-        t/        j0                  d„ t/        |j2                  |j4                  «      D «       «      «      }|
j7                  ||z
  «       |
D ],  }|j                  t        j                  d|z  | d¬«      «       Œ. |S # t$        t&        f$ rR |�"|j)                  |	«      €;|j+                  |	«      €*|j                  t        j                  d|z  | d¬«      «       Y �Œ~w xY wc c}w )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.E021r6  zQ'ordering' must be a tuple or list (even if you want to order by only one field).zmodels.E014c              3   óN   K  — | ]  }t        |t        «      sŒ|d k7  sŒ|–— Œ y­w)ú?N)rn   rî  r»   s     r=   rc   z(Model._check_ordering.<locals>.<genexpr>@  s   è ø€ ÒG˜¤z°!´SÕ'9¸aÀ3»h”!ÑGùs   ‚%˜%ž%c              3   óL   K  — | ]  }|j                  d «      r|dd n|–— Œ y­w)r¬  r{  N)rZ  r»   s     r=   rc   z(Model._check_ordering.<locals>.<genexpr>C  s&   è ø€ ÒF¸!˜AŸL™L¨Ô-�1�Q�R‘5°1Ó4ÑFùs   ‚"$Nr  éÿÿÿÿzJ'ordering' refers to the nonexistent field, related field, or lookup '%s'.zmodels.E015c              3   ó²   K  — | ]O  }|j                   r|j                  r|j                  |j                  fn|j                  j                  «       f–— ŒQ y ­wr³   )rj   ÚconcreterI   rù   r¨   Úrelated_query_namer»   s     r=   rc   z(Model._check_ordering.<locals>.<genexpr>v  sN   è ø€ ò  ð ð Ÿš¨q¯zªzð —‘˜Ÿ™Ñ#à—g‘g×0Ñ0Ó2Ð4ó5ñ ùs   ‚AA)r[   Ú_ordering_clashr   r?  rÂ   rf   rn   rE  rv   r   r*  rB  r  rþ   rG  Ú
path_infosÚto_optsr‚   r
   ÚAttributeErrorÚget_transformÚ
get_lookuprƒ   r   Úfrom_iterabler}   rJ  rË  )r‘   rÎ  r}   Ú_fieldsÚrelated_fieldsr¢   r¨   Ú_clsÚfldÚpartÚinvalid_fieldsrÑ   Úvalid_fieldsÚinvalid_fields                 r=   r'  zModel._check_ordering   s«  € ð �9‰9×$Ò$ä—‘ØUØØ$ôðð ð �9‰9×*Ò*°#·)±)×2DÒ2DØˆIä˜#Ÿ)™)×,Ñ,¬t´U¨mÔ<ä—‘ð'àØ$ô	ðð ð ˆØ—‘×#Ñ#ˆñ H˜VÔGˆñ G¸vÔFˆð ˆØˆØò 	"ˆAÜ˜Q‰Ø×%Ñ% aÕ(à—‘˜qÕ!ð		"ð
 ˆð $ò 	ˆEØˆDØˆCØŸ™¤JÓ/ò �ðà˜t’|Ø"Ÿj™jŸm™m™à"Ÿj™j×2Ñ2°4Ó8˜Ø—’Ø"Ÿ~™~¨bÑ1×9Ñ9×?Ñ?™à#˜øñð	ð: $Ö1˜ q¨D£y’!Ð1ˆÐ1ð ˆð �y‰yˆÜÜ×Ññ  ô ˜tŸ{™{¨D×,@Ñ,@ÓAô	 ó ó
ˆð 	×Ñ˜f |Ñ3Ô4à+ò 	ˆMØ�M‰MÜ—‘ð-Ø/<ñ=àØ$ô	õð	ð ˆøôW *¬>Ð:ò Ø�{Ø×)Ñ)¨$Ó/Ð7¸C¿N¹NÈ4Ó<PÐ<XàŸ™Ü"ŸL™Lð!AØCHñ!Ià$'Ø#0ô	ôúð	üò 2s    Ä%A)H?Æ
J#Æ!J#È?AJ ÊJ c                 óœ  — |sg S g }d}d}|D ]f  }t        j                  || «      sŒt        |   }|j                  j	                  «       }|�|j
                  j                  rŒV|€|}|}Œ]||k  sŒc|}|}Œh |€|S | j                  j                  D ]f  }|j                  «       \  }	}
|j                  �Œ#|
€Œ&t        |
«      |kD  sŒ5|j                  t        j                  d|
›d|›d|›d�d| d¬«      «       Œh | j                  j                  D ]º  }t!        |j"                  j$                  t&        «      rŒ(|j"                  j$                  j                  j                  D ]f  }|j                  «       \  }	}|j                  �Œ#|€Œ&t        |«      |kD  sŒ5|j                  t        j                  d	|›d|›d|›d�d
| d¬«      «       Œh Œ¼ |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   r8  r   Úopsr€  rì  Útruncates_namesr[   rz   rV  Ú	db_columnrô   r*  r   r?  r{   rn   r�   r\  rî  )r‘   r  rÎ  Úallowed_lenÚdb_aliasré   r   r€  r¢   r  rX  Úm2mÚrel_names                r=   r  zModel._check_long_column_names‹  sß  € ñ ØˆIØˆØˆØˆð ò 	"ˆBä×-Ñ-¨b°#Ô6ØÜ$ R™ˆJØ(Ÿn™n×<Ñ<Ó>ˆOØÐ&¨*×*=Ñ*=×*MÒ*MØàÐ&Ø"1�KØ!‘HØ$ {Ó2Ø"1�KØ!‘Hð	"ð  ÐØˆMà—‘×'Ñ'ò 	ˆAØ×1Ñ1Ó3‰NˆAˆ{ð
 —‘Ñ#ØÑ+Ü˜Ó$ {Ó2à—‘Ü—L’Lò 'ª²Xð?ð OØØ(ôõ	ð	ð* —‘×-Ñ-ò 	ˆAä˜!Ÿ.™.×0Ñ0´#Ô6Øð —~‘~×-Ñ-×3Ñ3×@Ñ@ò �Ø!×4Ñ4Ó6‘��8à—M‘MÑ)Ø Ñ,Ü˜H›¨Ó3à—M‘MÜŸšò  (ª²hð@ð!Rð !$Ø,ô
õñð	ð8 ˆr@   c              #   ó  K  — t        |t        «      rz|j                  D ]j  }t        |t        «      r?|\  }}t        |j	                  t
        «      «      –— | j                  |«      E d {  –—†  ŒR| j                  |«      E d {  –—†  Œl y t        |t        «      r+t        |j                  j	                  t
        «      «      –— y t        |d«      r/|j                  «       D ]  }| j                  |«      E d {  –—†  Œ y y 7 Œ˜7 Œ€7 Œ­w)NÚget_source_expressions)rn   r)   Úchildrenrv   rB  r   r‚  r(   rI   rR   r¬  )r‘   ÚexprÚchildÚlookuprS   Úsrc_exprs         r=   r‚  zModel._get_expr_referencesÞ  sá   è ø€ ä�dœAÔØŸ™ò ?�Ü˜e¤UÔ+Ø$)‘M�F˜EÜ §¡¬ZÓ 8Ó9Ò9Ø"×7Ñ7¸Ó>×>Ñ>à"×7Ñ7¸Ó>×>Ñ>ñ?ô ˜œaÔ Ü˜Ÿ	™	Ÿ™¬
Ó3Ó4Ó4Ü�TÐ3Ô4Ø ×7Ñ7Ó9ò >�Ø×3Ñ3°HÓ=×=Ñ=ñ>ð 5ð ?øà>øð
 >ús7   ‚A)D
Á+DÁ,D
ÂDÂA5D
Ã;DÃ<	D
ÄD
ÄD
c                 ó”  — g }|D �]/  }t        j                  || «      sŒt        |   }|j                  j                  ssd| j
                  j                  v s[t        d„ | j
                  j                  D «       «      r5|j                  t        j                  d|j                  z  d| d¬«      «       |j                  j                  ssd| j
                  j                  v s[t        d„ | j
                  j                  D «       «      r5|j                  t        j                  d	|j                  z  d| d
¬«      «       |j                  j                  ssd| j
                  j                  v s[t        d„ | j
                  j                  D «       «      r5|j                  t        j                  d|j                  z  d| d¬«      «       |j                  j                  ssd| j
                  j                  v s[t        d„ | j
                  j                  D «       «      r5|j                  t        j                  d|j                  z  d| d¬«      «       |j                  j                   ssd| j
                  j                  v s[t        d„ | j
                  j                  D «       «      r5|j                  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rDt)        |j,                  t.        «      r*|j1                  | j3                  |j,                  «      «       |j                  j                   sd| j
                  j                  vsŒµ|j4                  sŒÂ|j6                  D ]"  }|j1                  | j3                  |«      «       Œ$ Œôt)        |t8        «      s�Œ|j                  j                  sd| j
                  j                  vs�Œ6t)        |j:                  t.        «      r*|j1                  | j3                  |j:                  «      «       t        d„ |j:                  j=                  «       D «       «      s�Œ¦|j                  t        j                  d|j>                  ›d�d| d¬«      «       �ŒÞ |D �]   ^}	}
|	dk7  r|jA                  |	«       |
sŒ	 |	dk(  r| j
                  jB                  }n| j
                  jE                  |	«      }|jF                  r|jH                  s|jJ                  rŒ|	 |
d   }tO        |d«      sŒ�tO        |d «      sŒœ|jQ                  |«      �Œ®|jS                  |«      �ŒÀ|j                  t        jT                  d!tW        jX                  |	g|
z   «      z  | d"¬#«      «       �Œ |j[                  | j]                  |d$«      «       �Œ2 |S # tL        $ r Y �Œ6w xY w)%NÚ supports_table_check_constraintsc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr³   )rn   r   ©ra   ré  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr>ø  s   è ø€ ò àô ˜:¤×7ñùó   ‚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.  ru  c              3   ó\   K  — | ]$  }t        |t        «      xr |j                  d u–— Œ& y ­wr³   )rn   r   rw  rµ  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr>	  s:   è ø€ ò ð ô ˜:Ô'7Ó8ò 5Ø×(Ñ(°Ð4ó5ñùó   ‚*,z7%s does not support unique constraints with conditions.zmodels.W036Ú&supports_deferrable_unique_constraintsc              3   ó\   K  — | ]$  }t        |t        «      xr |j                  d u–— Œ& y ­wr³   )rn   r   Ú
deferrablerµ  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr> 	  s:   è ø€ ò ð ô ˜:Ô'7Ó8ò 6Ø×)Ñ)°Ð5ó6ñùr¸  z2%s does not support deferrable unique constraints.zmodels.W038ry  c              3   óX   K  — | ]"  }t        |t        «      xr |j                  –— Œ$ y ­wr³   )rn   r   r{  rµ  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr>4	  s.   è ø€ ò àô ˜:Ô'7Ó8ÒO¸Z×=OÑ=OÓOñùó   ‚(*z<%s does not support unique constraints with non-key columns.zmodels.W039r|  c              3   óX   K  — | ]"  }t        |t        «      xr |j                  –— Œ$ y ­wr³   )rn   r   r~  rµ  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr>G	  s5   è ø€ ò ð ô ˜:Ô'7Ó8ò 4Ø×3Ñ3ó4ñùr½  z6%s does not support unique constraints on expressions.zmodels.W044c              3   ór   K  — | ]/  }t        |t        «      rg |j                  ¢|j                  ¢­–— Œ1 y ­wr³   )rn   r   r}   r{  rµ  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr>Y	  s9   è ø€ ò $à"Ü! *Ô.>Ô?ð >�j×'Ñ'Ð=¨*×*<Ñ*<Õ=ñ$ùs   ‚57c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr³   )rn   r    )ra   r®  s     r=   rc   z+Model._check_constraints.<locals>.<genexpr>{	  s   è ø€ ò à $ô ' t¬V×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.E041r6  rä  )/r   r8  r   rì  r³  r[   r9  rÍ   rä  r*  r   r3  r:  ru  r¹  ry  r|  rƒ   r   rš  rn   r   rw  r)   r…   r‚  r~  r�  r   rç  ÚflattenrI   r‡   r  rþ   rG  Úmany_to_manyÚone_to_manyr
   rR   r˜  r™  r?  r   rÈ   rË  rn  )r‘   r  rÎ  ré   r   r}   r„  ré  r…  rV  Úlookupsr¨   Úfirst_lookups                r=   r(  zModel._check_constraintsî  s½  € àˆØó {	JˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJà×#Ñ#×DÒDØ5¸¿¹×9WÑ9WÑWÜñ à"%§)¡)×"7Ñ"7ôô ð —‘Ü—N‘NØ@Ø$×1Ñ1ñ2ðBð  Ø(ô	ôð ×#Ñ#×<Ò<Ø-°·±×1OÑ1OÑOÜñ ð #&§)¡)×"7Ñ"7ôô ð
 —‘Ü—N‘Nð&Ø(2×(?Ñ(?ñ@ðBð  Ø(ô	ôð ×#Ñ#×JÒJØ;Ø—9‘9×1Ñ1ñ2äñ ð #&§)¡)×"7Ñ"7ôô ð
 —‘Ü—N‘NØLØ$×1Ñ1ñ2ðBð  Ø(ô	ôð ×#Ñ#×=Ò=Ø.°#·)±)×2PÑ2PÑPÜñ à"%§)¡)×"7Ñ"7ôô ð —‘Ü—N‘Nð#Ø%/×%<Ñ%<ñ=ðBð  Ø(ô	ôð ×#Ñ#×?Ò?Ø0°C·I±I×4RÑ4RÑRÜñ ð #&§)¡)×"7Ñ"7ôô ð
 —‘Ü—N‘Nð'Ø)3×)@Ñ)@ñAðBð  Ø(ô	ôô Ü×#Ñ#ñ $à&)§i¡i×&;Ñ&;ô$ó óˆFô ›ˆJØ!Ÿi™i×3Ñ3ó +�
Ü˜jÔ*:Ô;à"×+Ñ+×DÒDØ5Ø"Ÿy™y×=Ñ=ñ>ä$ Z×%9Ñ%9¼1Ô=Ø"×)Ñ)Ø×4Ñ4°Z×5IÑ5IÓJôð #×+Ñ+×GÒGØ8Ø"Ÿy™y×=Ñ=ò>à$×9Ó9Ø*4×*@Ñ*@ò T˜JØ&×-Ñ-¨c×.FÑ.FÀzÓ.RÕSñTä 
¬OÖ<à"×+Ñ+×LÒLØ=Ø"Ÿy™y×=Ñ=ó>ô & j×&6Ñ&6¼Ô:Ø&×-Ñ-Ø #× 8Ñ 8¸×9IÑ9IÓ Jôô ñ à(2×(8Ñ(8×(@Ñ(@Ó(Bôö ð #ŸM™MÜ &§¡Ø&7¸
¿¹Ð7Jð KEð %Fð).ð ),Ø'4ô
!"öð?+ðX )3ó Ð$�
˜Wà Ò%Ø—J‘J˜zÔ*ÙàðØ! TÒ)Ø #§	¡	§¡™à #§	¡	× 3Ñ 3°JÓ ?˜Ø ×,Ò,°×0BÒ0BÀe×FWÒFWØ ð GXð
  ' q™z�ä˜E ?Õ3Ü  |Õ4Ø×+Ñ+¨LÓ9ÑAØ×(Ñ(¨Ó6Ñ>à—M‘MÜŸ™ØLÜ(Ÿo™o¨z¨l¸WÑ.DÓEñFà #Ø,ô	öð1ð@ �M‰M˜#×1Ñ1°&¸-ÓHÖIðw{	Jðx ˆøô' )ò Úðús   Ô0AX:Ø:	YÙYr³   )NN)FFNN)FFFNN)FNFFNNr  )NTT)GrC   rD   rE   rÿ   Úclassmethodr  r>   rB   r  r  r&  r  r5  r7  r:  rÞ   r  r<  rQ  rS  rW  rY  Úalters_datarj  rf  rq  rr  r�  r†  r`  rž  r¡  r§  r¹  rÃ   r¿  rÂ  rÄ  rÒ  rÇ  rÈ  rÉ  r÷  rï  r	  r  r  r  rç  r)  r*  r  r  r  r  r  r  r  r#  r   r!  r"  r$  r%  r&  rn  r'  r  r‚  r(  rX   rß   s   @r=   rì   rì   Ë  s+  ø„ ôp2ðd ñ
ó ð
ò<òEò!òò
1òò"$ó,.ò;ñ 
�+˜{Ó	+€Bò
óF/óPUò,ð$ QUó4
ðl €DÔð QUó
ð €EÔð ØØØØó@ðD !€IÔò!ðJ ØØØØØóXòt,ò8
ó4ól	"ð €FÔó
ð €GÔò
òò*(ó.
òMòó*ó =*ò~/òbò>
ò"ò@ó*ó(-*ó^*ð2 ñ#ó ð#ðJ ñó ðð> ñó ðð, ñó ðð4 ñ
ó ð
ð ñó ðð ñó ðð ñ!ó ð!ðF ñó ðð$ ñ4ó ð4ðl ñó ðð0 ñó ðð. ñó ðð( ñó ðð ñó ðð8 ñó ðð: ñXó ðXðt ñ4ó ð4ðl ñhó ðhðT ñPó ðPðd ñ>ó ð>ð ñ~ó ô~r@   rì   )Ú	metaclassc           
      ó  — |j                   j                  }|j                  | «      } |j                  j	                  |«      j
                  di |¤Žj                  t        |«      D ��cg c]  \  }} |||¬«      ‘Œ c}}dg«       y c c}}w )N)r  rz  rz  r:   )r[   rÂ   Úget_forward_related_filterrÀ   rC  rD  Úbulk_updateÚ	enumerate)r<   Úordered_objÚid_listrK  Ú	order_wrtrŒ  rµ  r  s           r=   Úmethod_set_orderrÐ  ·	  sx   € Ø×!Ñ!×7Ñ7€IØ×6Ñ6°tÓ<€KØ0€K×Ñ×"Ñ" 5Ó)×0Ñ0Ñ?°;Ñ?×KÑKÜ;DÀWÓ;M×N©i¨e°R‰˜ 5Ö	)ÓNØ	ˆ
õùÛNs   Á*B	
c                 óê   — |j                   j                  }|j                  | «      }|j                   j                  j                  } |j
                  j                  di |¤Žj                  |d¬«      S )NT)Úflatr:   )r[   rÂ   rÊ  r  rI   rÀ   rD  Úvalues_list)r<   rÍ  rÏ  rŒ  Úpk_names        r=   Úmethod_get_orderrÕ  À	  sf   € Ø×!Ñ!×7Ñ7€IØ×6Ñ6°tÓ<€KØ×Ñ×"Ñ"×'Ñ'€GØ%ˆ;×Ñ×%Ñ%Ñ4¨Ñ4×@Ñ@ÀÈtÐ@ÓTÐTr@   c                 óÜ   — t        |d| j                  j                  «       z  t        t        | «      «       t        |d| j                  j                  «       z  t        t
        | «      «       y )Nzget_%s_orderzset_%s_order)r´   rC   Úlowerr   rÕ  rÐ  )r‚   r^  s     r=   rÆ   rÆ   Ç	  sZ   € ÜØØ˜Ÿ™×-Ñ-Ó/Ñ/ÜÔ&¨Ó.ôô
 ØØ˜Ÿ™×-Ñ-Ó/Ñ/ÜÔ&¨Ó.õr@   c                 ón   — t        | t        «      rt        j                  | Ž }n| }|j	                  |«      S )z7Used to unpickle Model subclasses with deferred fields.)rn   rv   r   r>  rm   )Úmodel_idr‚   s     r=   r#  r#  Ù	  s0   € ä�(œEÔ"Ü—‘ Ð)‰ð ˆØ�=‰=˜ÓÐr@   Tr³   )]rŠ   rP   r1  Ú	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ò     sñ   ðÛ Û Û Ý #Ý å &ã Ý Ý  Ý ÷÷ ÷÷ ÷ WÕ VÝ 1ß Jß 8Ý /÷ó õ 0Ý ,Ý ,ß '÷õ ÷ @Ý +Ý /ß 5Ý 6÷"ñ "ñ ‹:€òò$Pô
X)�ô X)÷v
ñ ÷	5ñ 	5ôbˆJ )õ bóX?òUò
ò$ ð (,€Õ $r@   