§
    ¤”jÜž  ã                   ó€  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dl	mZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$ ddl%m&Z& ddl'm(Z( d#d„Z)d„ Z*d„ Z+d„ Z, G d„ d¦  «        Z- G d„ de¦  «        Z. G d„ d e
¦  «        Z/ G d!„ d"¦  «        Z0dS )$é    N)Údefaultdict)Úcontextmanager)Úpartial)Ú	AppConfig)ÚApps)Úapps)Úsettings)ÚFieldDoesNotExist)Úmodels)Úfield_is_referencedÚget_references)ÚNOT_PROVIDED)ÚRECURSIVE_RELATIONSHIP_CONSTANT)ÚDEFAULT_NAMESÚnormalize_together)Úmake_model_tuple)Úcached_property)Úimport_string)Úget_docs_versioné   )ÚInvalidBasesError)Úresolve_relationÚ c                 óà   — t          | t          ¦  «        rB|                      dd¦  «        }t          |¦  «        dk    rt	          |¦  «        n	||d         fS | j        j        | j        j        fS )Nú.r   é   r   )Ú
isinstanceÚstrÚsplitÚlenÚtupleÚ_metaÚ	app_labelÚ
model_name)Úmodelr#   r   s      úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/db/migrations/state.pyÚ_get_app_label_and_model_namer'      sc   € Ý�%�ÑÔð =Ø—’˜C Ñ#Ô#ˆÝ" 5™zœz¨Qš˜�u�U‰|Œ|ˆ|°YÀÀaÄÐ4IÐIàŒ{Ô$ e¤kÔ&<Ð<Ð<ó    c                 ó¬  — d„ |                       ¦   «         D ¦   «         }t          ¦   «         }| j                             dd¬¦  «        D ]^}|j        rU|j        �Nt          |j        t          ¦  «        s4|                     |j	        ¦  «         | 
                    |j        ¦  «         Œ_| j        }|j        r| |v r| 
                    |j        ¦  «         |S )zEReturn all models that have a direct relationship to the given model.c                 óF   — g | ]}t          |t          j        ¦  «        ¯|‘ŒS © )Ú
issubclassr   ÚModel)Ú.0Úsubclasss     r&   ú
<listcomp>z'_get_related_models.<locals>.<listcomp>#   s:   € ð ð ð àÝ�h¥¤Ñ-Ô-ðØðð ð r(   T)Úinclude_parentsÚinclude_hidden)Ú__subclasses__Úsetr"   Ú
get_fieldsÚis_relationÚrelated_modelr   r   Úaddr%   ÚappendÚproxyÚconcrete_model)ÚmÚrelated_modelsÚrelated_fields_modelsÚfÚoptss        r&   Ú_get_related_modelsrA   !   sì   € ðð à×(Ò(Ñ*Ô*ðñ ô €Nõ
  ™EœEÐØŒW×Ò°ÀTÐÑJÔJð 3ð 3ˆàŒMð	3à”Ð+Ý˜qœµÑ4Ô4ð ,ð "×%Ò% a¤gÑ.Ô.Ð.Ø×!Ò! !¤/Ñ2Ô2Ð2øð Œ7€DØ„zð 3�aÐ0Ð0Ð0Ø×Ò˜dÔ1Ñ2Ô2Ð2ØÐr(   c                 ó4   — d„ t          | ¦  «        D ¦   «         S )zq
    Return a list of typical (app_label, model_name) tuples for all related
    models for the given model.
    c                 ó>   — h | ]}|j         j        |j         j        f’ŒS r+   )r"   r#   r$   )r.   Úrel_mods     r&   ú	<setcomp>z,get_related_models_tuples.<locals>.<setcomp>>   s7   € ð ð ð àð 
ŒÔ	  '¤-Ô":Ð;ðð ð r(   )rA   )r%   s    r&   Úget_related_models_tuplesrF   9   s+   € ð
ð å*¨5Ñ1Ô1ðñ ô ð r(   c                 ó.  — t          ¦   «         }t          | ¦  «        }|D ]Z}|j        j        |j        j        }}||f|v rŒ!|                     ||f¦  «         |                     t          |¦  «        ¦  «         Œ[|| j        j        | j        j        fhz
  S )aå  
    Return all models that have a direct or indirect relationship
    to the given model.

    Relationships are either defined by explicit relational fields, like
    ForeignKey, ManyToManyField or OneToOneField, or by inheriting from another
    model (a superclass is related to its subclasses, but not vice versa). Note,
    however, that a model inheriting from a concrete model is also related to
    its superclass through the implicit *_ptr OneToOneField on the subclass.
    )r4   rA   r"   r#   r$   r8   Úextend)r%   ÚseenÚqueuerD   Úrel_app_labelÚrel_model_names         r&   Úget_related_models_recursiverM   D   s§   € õ ‰5Œ5€DÝ Ñ&Ô&€EØð 3ð 3ˆàŒMÔ#ØŒMÔ$ð &ˆð ˜>Ð*¨dÐ2Ð2ØØ�Š�- Ð0Ñ1Ô1Ð1Ø�ŠÕ(¨Ñ1Ô1Ñ2Ô2Ð2Ð2Ø�E”KÔ)¨5¬;Ô+AÐBÐCÑCÐCr(   c                   ó$  — e Zd ZdZd(d„Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d)d„Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd*d„Zd*d„Zd+d„Zd„ Zd„ Z	 d)d„Zd)d„Zd„ Zd „ Z d!„ Z!d"„ Z"d#„ Z#d$„ Z$e%d%„ ¦   «         Z&e'd&„ ¦   «         Z(d'„ Z)dS ),ÚProjectStatez½
    Represent the entire project's overall state. This is the item that is
    passed around - do it here rather than at the app level so that cross-app
    FKs/etc. resolve properly.
    Nc                 ó’   — |pi | _         |€t          ¦   «         }nt          |t          ¦  «        sJ ‚|| _        d| _        d | _        d S ©NF)r   r4   r   Ú	real_appsÚ
is_delayedÚ
_relations)Úselfr   rR   s      r&   Ú__init__zProjectState.__init__d   sM   € Ø�l ˆŒàÐÝ™œˆIˆIå˜i­Ñ-Ô-Ð-Ð-Ð-Ø"ˆŒØˆŒàˆŒˆˆr(   c                 óF   — | j         €|                      ¦   «          | j         S ©N)rT   Úresolve_fields_and_relations©rU   s    r&   Ú	relationszProjectState.relationsp   s$   € àŒ?Ð"Ø×-Ò-Ñ/Ô/Ð/ØŒÐr(   c                 ó˜   — |j         |j        f}|| j        |<   | j        �|                      |¦  «         d| j        v r | j        |Ž  d S d S ©Nr   )r#   Ú
name_lowerr   rT   Úresolve_model_relationsÚ__dict__Úreload_model)rU   Úmodel_stateÚ	model_keys      r&   Ú	add_modelzProjectState.add_modelv   se   € ØÔ)¨;Ô+AÐAˆ	Ø!,ˆŒ�IÑØŒ?Ð&Ø×(Ò(¨Ñ3Ô3Ð3Ø�T”]Ð"Ð"ØˆDÔ˜yÐ)Ð)Ð)Ð)ð #Ð"r(   c                 ó`  — ||f}| j         |= | j        �g| j                             |d ¦  «         t          | j                             ¦   «         ¦  «        D ]%\  }}|                     |d ¦  «         |s| j        |= Œ&d| j        v r* | j        j        |Ž  | j                             ¦   «          d S d S r]   )	r   rT   ÚpopÚlistÚitemsr`   r   Úunregister_modelÚclear_cache)rU   r#   r$   rc   Úrelated_model_keyÚmodel_relationss         r&   Úremove_modelzProjectState.remove_model~   sÎ   € Ø˜zÐ)ˆ	ØŒK˜	Ð"ØŒ?Ð&ØŒO×Ò 	¨4Ñ0Ô0Ð0å6:¸4¼?×;PÒ;PÑ;RÔ;RÑ6SÔ6Sð ;ð ;Ñ2Ð! ?Ø×#Ò# I¨tÑ4Ô4Ð4Ø&ð ;ØœÐ(9Ð:øØ�T”]Ð"Ð"Ø&ˆDŒIÔ&¨	Ð2Ð2ð ŒI×!Ò!Ñ#Ô#Ð#Ð#Ð#ð	 #Ð"r(   c                 óŒ  — |                      ¦   «         }|                      ¦   «         }| j        ||f                              ¦   «         }||_        || j        ||f<   ||f}|› d|› �}t	          ¦   «         }	t          | |¦  «        D ]†\  }
}}}d }|j        r |                     ¦   «         }||j        _        |j	        r"|€|                     ¦   «         }||j        _	        |r+||
j
        |<   |	                     |
j        |
j        f¦  «         Œ‡| j        �k||f}||f}|| j        v r"| j                             |¦  «        | j        |<   | j                             ¦   «         D ]}||v r|                     |¦  «        ||<   Œ|                      |	d¬¦  «         |                      ||¦  «         |                      ||d¬¦  «         d S )Nr   T©Údelay)Úlowerr   ÚcloneÚnamer4   r   ÚtoÚremote_fieldr%   ÚthroughÚfieldsr8   r#   r^   rT   rf   ÚvaluesÚreload_modelsrm   ra   )rU   r#   Úold_nameÚnew_nameÚold_name_lowerÚnew_name_lowerÚrenamed_modelÚold_model_tupleÚnew_remote_modelÚ	to_reloadrb   rs   ÚfieldÚ	referenceÚchanged_fieldÚold_name_keyÚnew_name_keyrl   s                     r&   Úrename_modelzProjectState.rename_modelŽ   s  € à!ŸšÑ)Ô)ˆØ!ŸšÑ)Ô)ˆØœ I¨~Ð$=Ô>×DÒDÑFÔFˆØ%ˆÔØ1>ˆŒ�I˜~Ð-Ñ.à$ nÐ5ˆØ'Ð4Ð4¨(Ð4Ð4ÐÝ‘E”Eˆ	Ý3AØ�/ñ4
ô 4
ð 	Oð 	OÑ/ˆK˜˜u ið !ˆMØŒ|ð DØ %§¢¡¤�Ø3C�Ô*Ô0ØÔ ð FØ Ð(Ø$)§K¢K¡M¤M�MØ5E�Ô*Ô2Øð OØ+8�Ô" 4Ñ(Ø—’˜{Ô4°kÔ6LÐMÑNÔNÐNøØŒ?Ð&Ø$ nÐ4ˆLØ$ nÐ4ˆLØ˜tœÐ.Ð.Ø04´×0CÒ0CÀLÑ0QÔ0Q�” Ñ-Ø#'¤?×#9Ò#9Ñ#;Ô#;ð Vð V�Ø ?Ð2Ð2Ø4C×4GÒ4GÈÑ4UÔ4U�O LÑ1øà×Ò˜9¨DÐÑ1Ô1Ð1à×Ò˜) ^Ñ4Ô4Ð4Ø×Ò˜) ^¸4ÐÑ@Ô@Ð@Ð@Ð@r(   c                 óÀ   — | j         ||f         }i |j        ¥|¥|_        |r$|D ]!}||vr|j                             |d¦  «         Œ"|                      ||d¬¦  «         d S )NFTro   )r   Úoptionsrf   ra   )rU   r#   r$   r‰   Úoption_keysrb   Úkeys          r&   Úalter_model_optionsz ProjectState.alter_model_optionsµ   s…   € Ø”k )¨ZÐ"7Ô8ˆØ@ Ô!4Ð@¸Ð@ˆÔØð 	8Ø"ð 8ð 8�Ø˜gÐ%Ð%ØÔ'×+Ò+¨C°Ñ7Ô7Ð7øØ×Ò˜) Z°tÐÑ<Ô<Ð<Ð<Ð<r(   c                 óº   ‡— | j         ||f         }|j                             |¦  «        x}rˆfd„|D ¦   «         |j        |<   |                      ||d¬¦  «         d S )Nc                 óT   •— g | ]$}t          |¦  «        t          ‰¦  «        k    ¯"|‘Œ%S r+   )r!   )r.   ÚobjÚvalue_to_removes     €r&   r0   z5ProjectState.remove_model_options.<locals>.<listcomp>Á   s8   ø€ ð 0ð 0ð 0Ø¥u¨S¡z¤zµU¸?Ñ5KÔ5KÒ'KÐ'K�Ð'KÐ'KÐ'Kr(   Tro   )r   r‰   Úgetra   )rU   r#   r$   Úoption_namer�   rb   Úobjss       `  r&   Úremove_model_optionsz!ProjectState.remove_model_options¾   s…   ø€ Ø”k )¨ZÐ"7Ô8ˆØÔ&×*Ò*¨;Ñ7Ô7Ð7ˆ4ð 	ð0ð 0ð 0ð 0Ø#ð0ñ 0ô 0ˆKÔ Ñ,ð 	×Ò˜) Z°tÐÑ<Ô<Ð<Ð<Ð<r(   c                 ó|   — | j         ||f         }t          |¦  «        |_        |                      ||d¬¦  «         d S ©NTro   )r   rg   Úmanagersra   )rU   r#   r$   r—   rb   s        r&   Úalter_model_managersz!ProjectState.alter_model_managersÆ   sB   € Ø”k )¨ZÐ"7Ô8ˆÝ# H™~œ~ˆÔØ×Ò˜) Z°tÐÑ<Ô<Ð<Ð<Ð<r(   c                 ó†   — | j         ||f         }g |j        |         ¢|‘|j        |<   |                      ||d¬¦  «         d S r–   ©r   r‰   ra   )rU   r#   r$   r’   r�   rb   s         r&   Ú_append_optionzProjectState._append_optionË   sS   € Ø”k )¨ZÐ"7Ô8ˆØ+S¨[Ô-@ÀÔ-MÐ+SÈsÐ+SˆÔ˜KÑ(Ø×Ò˜) Z°tÐÑ<Ô<Ð<Ð<Ð<r(   c                 óœ   ‡— | j         ||f         }|j        |         }ˆfd„|D ¦   «         |j        |<   |                      ||d¬¦  «         d S )Nc                 ó*   •— g | ]}|j         ‰k    ¯|‘ŒS r+   ©rs   )r.   r�   Úobj_names     €r&   r0   z/ProjectState._remove_option.<locals>.<listcomp>Ó   s%   ø€ Ð+XÐ+XÐ+X°CÀ3Ä8ÈxÒCWÐCW¨CÐCWÐCWÐCWr(   Tro   rš   )rU   r#   r$   r’   rŸ   rb   r“   s       `  r&   Ú_remove_optionzProjectState._remove_optionÐ   sc   ø€ Ø”k )¨ZÐ"7Ô8ˆØÔ" ;Ô/ˆØ+XÐ+XÐ+XÐ+X¸4Ð+XÑ+XÔ+XˆÔ˜KÑ(Ø×Ò˜) Z°tÐÑ<Ô<Ð<Ð<Ð<r(   c                 ó6   — |                       ||d|¦  «         d S ©NÚindexes©r›   )rU   r#   r$   Úindexs       r&   Ú	add_indexzProjectState.add_indexÖ   s"   € Ø×Ò˜I z°9¸eÑDÔDÐDÐDÐDr(   c                 ó6   — |                       ||d|¦  «         d S r¢   ©r    )rU   r#   r$   Ú
index_names       r&   Úremove_indexzProjectState.remove_indexÙ   s"   € Ø×Ò˜I z°9¸jÑIÔIÐIÐIÐIr(   c                 ó  — | j         ||f         }|j        d         }g }|D ]=}|j        |k    r|                     ¦   «         }||_        |                     |¦  «         Œ>||j        d<   |                      ||d¬¦  «         d S )Nr£   Tro   )r   r‰   rs   rr   r9   ra   )	rU   r#   r$   Úold_index_nameÚnew_index_namerb   r“   Únew_indexesr�   s	            r&   Úrename_indexzProjectState.rename_indexÜ   sš   € Ø”k )¨ZÐ"7Ô8ˆØÔ" 9Ô-ˆàˆØð 	$ð 	$ˆCØŒx˜>Ò)Ð)Ø—i’i‘k”k�Ø)�”Ø×Ò˜sÑ#Ô#Ð#Ð#à)4ˆÔ˜IÑ&Ø×Ò˜) Z°tÐÑ<Ô<Ð<Ð<Ð<r(   c                 ó6   — |                       ||d|¦  «         d S ©NÚconstraintsr¤   )rU   r#   r$   Ú
constraints       r&   Úadd_constraintzProjectState.add_constraintê   s"   € Ø×Ò˜I z°=À*ÑMÔMÐMÐMÐMr(   c                 ó6   — |                       ||d|¦  «         d S r±   r¨   )rU   r#   r$   Úconstraint_names       r&   Úremove_constraintzProjectState.remove_constraintí   s"   € Ø×Ò˜I z°=À/ÑRÔRÐRÐRÐRr(   c                 óè   — |s!|                      ¦   «         }t          |_        n|}||f}|| j        |         j        |<   | j        �|                      |||¦  «         |j         } | j        |d|iŽ d S ©Nrp   )	rr   r   Údefaultr   rw   rT   Úresolve_model_field_relationsr6   ra   )rU   r#   r$   rs   r‚   Úpreserve_defaultrc   rp   s           r&   Ú	add_fieldzProjectState.add_fieldð   sŒ   € àð 	Ø—K’K‘M”MˆEÝ(ˆEŒMˆMàˆEØ˜zÐ)ˆ	Ø.3ˆŒ�IÔÔ% dÑ+ØŒ?Ð&Ø×.Ò.¨y¸$ÀÑFÔFÐFàÔ%Ð%ˆØˆÔ˜9Ð2¨EÐ2Ð2Ð2Ð2Ð2r(   c                 óÂ   — ||f}| j         |         }|j                             |¦  «        }| j        �|                      |||¦  «         |j         } | j        |d|iŽ d S r¹   )r   rw   rf   rT   r»   r6   ra   )rU   r#   r$   rs   rc   rb   Ú	old_fieldrp   s           r&   Úremove_fieldzProjectState.remove_fieldÿ   sw   € Ø˜zÐ)ˆ	Ø”k )Ô,ˆØÔ&×*Ò*¨4Ñ0Ô0ˆ	ØŒ?Ð&Ø×.Ò.¨y¸$À	ÑJÔJÐJàÔ)Ð)ˆØˆÔ˜9Ð2¨EÐ2Ð2Ð2Ð2Ð2r(   c                 ó”  — |s!|                      ¦   «         }t          |_        n|}||f}| j        |         j        }| j        �W|                     |¦  «        }|j        r|                      |||¦  «         |||<   |j        r|                      |||¦  «         n|||<   |j         ot          | |||f¦  «         }	 | j
        |d|	iŽ d S r¹   )rr   r   rº   r   rw   rT   rf   r6   r»   r   ra   )
rU   r#   r$   rs   r‚   r¼   rc   rw   r¿   rp   s
             r&   Úalter_fieldzProjectState.alter_field	  s  € Øð 	Ø—K’K‘M”MˆEÝ(ˆEŒMˆMàˆEØ˜zÐ)ˆ	Ø”˜YÔ'Ô.ˆØŒ?Ð&ØŸ
š
 4Ñ(Ô(ˆIØÔ$ð OØ×2Ò2°9¸dÀIÑNÔNÐNØ ˆF�4‰LØÔ ð KØ×2Ò2°9¸dÀEÑJÔJÐJøà ˆF�4‰Lð
 Ô%Ð%ð 
Õ.AØ�)˜d E˜]ñ/
ô /
ð +
ˆð 	ˆÔ˜9Ð2¨EÐ2Ð2Ð2Ð2Ð2r(   c           	      ó¢  ‡‡— ||f}| j         |         }|j        }	 |                     ‰¦  «        }n&# t          $ r t	          |› d|› d‰› d�¦  «        ‚w xY w||‰<   |                     ¦   «         D ]6}	t          |	dd ¦  «        }
|
r!t          ˆˆfd„|
D ¦   «         ¦  «        |	_        Œ7|j	        }dD ]}||v rˆˆfd„||         D ¦   «         ||<   Œd}t          | |‰|f¦  «        }|D ]X�^ }}	}d	}|j        rI|j        \  }}t          |d
d ¦  «        ‰k    r‰|_        |r!t          ˆˆfd„|D ¦   «         ¦  «        |	_        ŒY| j        �{‰                     ¦   «         }‰                     ¦   «         }| j                             ¦   «         D ]9}|||         v r-||                              |¦  «        }	||	_        |	||         |<   Œ: | j        |d|iŽ d S )Nr   z has no field named 'ú'Úfrom_fieldsc                 ó$   •— g | ]}|‰k    r‰n|‘ŒS r+   r+   )r.   Úfrom_field_namer{   rz   s     €€r&   r0   z-ProjectState.rename_field.<locals>.<listcomp>4  s7   ø€ ð ð ð à+ð %4°xÒ$?Ð$?˜˜À_ðð ð r(   )Úindex_togetherÚunique_togetherc                 ó.   •— g | ]}ˆˆfd „|D ¦   «         ‘ŒS )c                 ó$   •— g | ]}|‰k    r‰n|‘ŒS r+   r+   )r.   Únr{   rz   s     €€r&   r0   z8ProjectState.rename_field.<locals>.<listcomp>.<listcomp>>  s%   ø€ ÐHÐHÐH¸!  h¢ �X�X°AÐHÐHÐHr(   r+   )r.   Útogetherr{   rz   s     €€r&   r0   z-ProjectState.rename_field.<locals>.<listcomp>=  sA   ø€ ð #ð #ð #à ð IÐHÐHÐHÐH¸xÐHÑHÔHð#ð #ð #r(   TFÚ
field_namec                 ó$   •— g | ]}|‰k    r‰n|‘ŒS r+   r+   )r.   Úto_field_namer{   rz   s     €€r&   r0   z-ProjectState.rename_field.<locals>.<listcomp>L  s7   ø€ ð ð ð à -ð )6¸Ò(AÐ(A˜H˜HÀ}ðð ð r(   rp   )r   rw   rf   ÚKeyErrorr
   rx   Úgetattrr!   rÅ   r‰   r   rt   rÎ   Ú	to_fieldsrT   rq   rs   ra   )rU   r#   r$   rz   r{   rc   rb   rw   Úfoundr‚   rÅ   r‰   Úoptionrp   Ú
referencesÚ_rƒ   ru   rÓ   r|   r}   Úto_models      ``                 r&   Úrename_fieldzProjectState.rename_field#  s­  øø€ Ø˜zÐ)ˆ	Ø”k )Ô,ˆàÔ#ˆð	Ø—J’J˜xÑ(Ô(ˆEˆEøÝð 	ð 	ð 	Ý#ØÐKÐK˜zÐKÐKÀÐKÐKÐKñô ð ð	øøøð !ˆˆxÑØ—]’]‘_”_ð 		ð 		ˆEå! %¨¸Ñ=Ô=ˆKØð Ý$)ðð ð ð ð à/:ðñ ô ñ%ô %�Ô!øð Ô%ˆØ;ð 	ð 	ˆFØ˜Ð Ð ð#ð #ð #ð #ð #à$+¨F¤Oð#ñ #ô #�˜‘øð
 ˆÝ# D¨)°hÀÐ5FÑGÔGˆ
Ø$.ð 	ð 	Ñ ˆQ��yØˆEØŒ|ð 
Ø*3¬,Ñ'�˜iÝ˜<¨°tÑ<Ô<ÀÒHÐHØ.6�LÔ+Øð Ý&+ðð ð ð ð à1:ðñ ô ñ'ô '�E”Oøð Œ?Ð&Ø%Ÿ^š^Ñ-Ô-ˆNØ%Ÿ^š^Ñ-Ô-ˆNØ œO×2Ò2Ñ4Ô4ð @ð @�Ø! X¨iÔ%8Ð8Ð8Ø$ YÔ/×3Ò3°NÑCÔC�EØ!/�E”JØ:?�H˜YÔ'¨Ñ7øØˆÔ˜9Ð2¨EÐ2Ð2Ð2Ð2Ð2s	   œ2 ²#AFc                 óL  — |rd| _         t          ¦   «         }	 | j                             ||¦  «        }|rt	          |¦  «        }n t          |¦  «        }n# t          $ r Y nw xY w| j        ||f         }t          ¦   «         }|j         	                    ¦   «         D ]`}|j
        rW|j        j        t          k    rŒt          |j        |¦  «        \  }	}
|                     |	|
                     ¦   «         f¦  «         Œa|                     |¦  «         |D ]x\  }	}
	 | j                             |	|
¦  «        }|r#|                     t	          |¦  «        ¦  «         ŒF|                     t          |¦  «        ¦  «         Œi# t          $ r Y Œuw xY w|                     ||f¦  «         |S )NT)rS   r4   r   Ú	get_modelrF   rM   ÚLookupErrorr   rw   rx   r6   ru   r%   r   r'   r7   r8   rq   Úupdate)rU   r#   r$   rp   r=   Ú	old_modelrb   Údirect_related_modelsr‚   rK   rL   Ú	rel_models               r&   Ú_find_reload_modelzProjectState._find_reload_model[  sþ  € Øð 	#Ø"ˆDŒOå™œˆð
	IØœ	×+Ò+¨I°zÑBÔBˆIð ð IÝ!:¸9Ñ!EÔ!E��å!=¸iÑ!HÔ!H��øõ ð 	ð 	ð 	ØˆDð	øøøð ”k 9¨jÐ"9Ô:ˆõ !$¡¤ÐØ Ô'×.Ò.Ñ0Ô0ð 	Sð 	SˆEØÔ ð SØÔ%Ô+Õ/NÒNÐNØÝ0MØÔ'¨ñ1ô 1Ñ-�˜~ð &×)Ò)¨=¸.×:NÒ:NÑ:PÔ:PÐ*QÑRÔRÐRøð 	×ÒÐ3Ñ4Ô4Ð4Ø-Bð 		Sð 		SÑ)ˆM˜>ðSØ œI×/Ò/°¸~ÑNÔN�	ð ð SØ"×)Ò)Õ*CÀIÑ*NÔ*NÑOÔOÐOÐOà"×)Ò)Õ*FÀyÑ*QÔ*QÑRÔRÐRÐRøõ ð ð ð Ø�ðøøøð 	×Ò˜I zÐ2Ñ3Ô3Ð3àÐs#   ™A Á
A#Á"A#ÄE=Å=
F
Æ	F
c                 ót   — d| j         v r.|                      |||¦  «        }|                      |¦  «         d S d S r]   )r`   rá   Ú_reload)rU   r#   r$   rp   r=   s        r&   ra   zProjectState.reload_model�  sF   € Ø�T”]Ð"Ð"Ø!×4Ò4°YÀ
ÈEÑRÔRˆNØ�LŠL˜Ñ(Ô(Ð(Ð(Ð(ð #Ð"r(   Tc                 óÆ   — d| j         v rWt          ¦   «         }|D ]/\  }}|                     |                      |||¦  «        ¦  «         Œ0|                      |¦  «         d S d S r]   )r`   r4   rÝ   rá   rã   )rU   r   rp   r=   r#   r$   s         r&   ry   zProjectState.reload_models’  s€   € Ø�T”]Ð"Ð"Ý ™UœUˆNØ)/ð ð Ñ%�	˜:Ø×%Ò%Ø×+Ò+¨I°zÀ5ÑIÔIñô ð ð ð �LŠL˜Ñ(Ô(Ð(Ð(Ð(ð #Ð"r(   c                 óÊ  — | j                              ¦   «         5  |D ] \  }}| j                              ||¦  «         Œ!	 d d d ¦  «         n# 1 swxY w Y   g }| j         j        D ]'}|j        |j        f|v r|                     |¦  «         Œ(|D ]:\  }}	 | j        ||f         }|                     |¦  «         Œ+# t          $ r Y Œ7w xY w| j          	                    |¦  «         d S rX   )
r   Úbulk_updateri   Úreal_modelsr#   r^   r9   r   rÑ   Úrender_multiple)rU   r=   rK   rL   Ústates_to_be_renderedrb   s         r&   rã   zProjectState._reload›  s‚  € àŒY×"Ò"Ñ$Ô$ð 	Jð 	JØ1?ð Jð JÑ-�˜~Ø”	×*Ò*¨=¸.ÑIÔIÐIÐIðJð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð !#Ðð  œ9Ô0ð 	:ð 	:ˆKØÔ% {Ô'=Ð>À.ÐPÐPØ%×,Ò,¨[Ñ9Ô9Ð9øð .<ð 	:ð 	:Ñ)ˆM˜>ð:Ø"œk¨-¸Ð*GÔH�ð &×,Ò,¨[Ñ9Ô9Ð9Ð9øõ ð ð ð Ø�ðøøøð 	Œ	×!Ò!Ð"7Ñ8Ô8Ð8Ð8Ð8s#   š$AÁAÁAÂB9Â9
CÃCc                 óö   — t          |g|¢R Ž }|d         | j        vr||v r||         }| j        |         }|| j        |         j        v r|||         vsJ ‚|||         |<   d S ||         |= ||         s||= d S d S )Nr   )r   rR   rT   r   rw   )rU   r%   rc   rÎ   r‚   Ú	concretesÚremote_model_keyÚrelations_to_remote_models           r&   Úupdate_model_field_relationz(ProjectState.update_model_field_relationµ  sÇ   € õ ,¨EÐ>°IÐ>Ð>Ð>ÐØ˜AÔ d¤nÐ4Ð4Ð9IÈYÐ9VÐ9VØ(Ð)9Ô:ÐØ$(¤OÐ4DÔ$EÐ!Ø˜œ YÔ/Ô6Ð6Ð6ð Ð%>¸yÔ%IÐIÐIÐIÐIØ?DÐ% iÔ0°Ñ<Ð<Ð<à)¨)Ô4°ZÐ@Ø,¨YÔ7ð 9Ø-¨iÐ8Ð8Ð8ð9ð 9r(   c                 óæ   — |j         }|sd S |€|                      ¦   «         \  }}|                      |j        ||||¦  «         t	          |dd ¦  «        }|sd S |                      |||||¦  «         d S )Nrv   )ru   Ú-_get_concrete_models_mapping_and_proxy_modelsrî   r%   rÒ   )rU   rc   rÎ   r‚   rë   ru   r×   rv   s           r&   r»   z*ProjectState.resolve_model_field_relationsÌ  s«   € ð Ô)ˆØð 	ØˆFØÐØ×MÒMÑOÔO‰LˆI�qà×(Ò(ØÔØØØØñ	
ô 	
ð 	
õ ˜,¨	°4Ñ8Ô8ˆØð 	ØˆFØ×(Ò(Ø�Y 
¨E°9ñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 óÀ   — |€|                       ¦   «         \  }}| j        |         }|j                             ¦   «         D ]\  }}|                      ||||¦  «         Œd S rX   )rð   r   rw   rh   r»   )rU   rc   rë   r×   rb   rÎ   r‚   s          r&   r_   z$ProjectState.resolve_model_relationsè  sw   € ØÐØ×MÒMÑOÔO‰LˆI�qà”k )Ô,ˆØ!,Ô!3×!9Ò!9Ñ!;Ô!;ð 	Xð 	XÑˆJ˜Ø×.Ò.¨y¸*ÀeÈYÑWÔWÐWÐWð	Xð 	Xr(   c                 ó†  — | j                              ¦   «         D ](}|j                             ¦   «         D ]\  }}||_        ŒŒ)t          t          t
          t          ¦  «        ¦  «        | _        |  	                    ¦   «         \  }}|D ]}|  
                    ||¦  «         Œ|D ]}| j        ||                  | j        |<   Œd S rX   )r   rx   rw   rh   rs   r   r   ÚdictrT   rð   r_   )rU   rb   rÎ   r‚   rë   Úproxiesrc   s          r&   rY   z)ProjectState.resolve_fields_and_relationsð  sá   € àœ;×-Ò-Ñ/Ô/ð 	(ð 	(ˆKØ%0Ô%7×%=Ò%=Ñ%?Ô%?ð (ð (Ñ!�
˜EØ'�”
�
ð(õ &¥g­k½4Ñ&@Ô&@ÑAÔAˆŒØ!×OÒOÑQÔQÑˆ	�7à"ð 	?ð 	?ˆIØ×(Ò(¨°IÑ>Ô>Ð>Ð>à ð 	Oð 	OˆIØ)-¬¸À9Ô9MÔ)NˆDŒO˜IÑ&Ð&ð	Oð 	Or(   c                 ó^   — |                       ¦   «         \  }}t          |¦  «        }||         S rX   )rð   r   )rU   r%   Úconcrete_models_mappingr×   rc   s        r&   Úget_concrete_model_keyz#ProjectState.get_concrete_model_key   s6   € ð ×>Ò>Ñ@Ô@ñ	
Ø#Øå$ UÑ+Ô+ˆ	Ø& yÔ1Ð1r(   c                 óÌ   — i }i }| j                              ¦   «         D ]C\  }}|j                             d¦  «        r|||<   |                      ||¦  «        ||<   Œ>|||<   ŒD||fS )Nr:   )r   rh   r‰   r‘   Ú_find_concrete_model_from_proxy)rU   rö   Úproxy_modelsrc   rb   s        r&   rð   z:ProjectState._get_concrete_models_mapping_and_proxy_models  s•   € Ø"$ÐØˆà&*¤k×&7Ò&7Ñ&9Ô&9ð 	?ð 	?Ñ"ˆI�{ØÔ"×&Ò& wÑ/Ô/ð 
?Ø*5�˜YÑ'ð ×8Ò8Ø$Ø#ñô ð (¨	Ñ2Ð2ð 6?Ð'¨	Ñ2Ð2Ø&¨Ð4Ð4r(   c                 óü   — |j         D ]s}t          |t          ¦  «        st          |t          j        ¦  «        sŒ2t          |¦  «        }|                     |¦  «        }|s|c S |                      ||¦  «        c S d S rX   )	Úbasesr   r   r,   r   r-   r   r‘   rù   )rU   rú   rb   ÚbaseÚbase_keyÚ
base_states         r&   rù   z,ProjectState._find_concrete_model_from_proxy  s—   € ØÔ%ð 	Rð 	RˆDÝ˜t¥SÑ)Ô)ð ­Z¸½f¼lÑ-KÔ-Kð ØÝ'¨Ñ-Ô-ˆHØ%×)Ò)¨(Ñ3Ô3ˆJØð  à���Ø×7Ò7¸ÀjÑQÔQÐQÐQÐQð	Rð 	Rr(   c                 óÚ   — t          d„ | j                             ¦   «         D ¦   «         | j        ¬¦  «        }d| j        v r| j                             ¦   «         |_        | j        |_        |S )z*Return an exact copy of this ProjectState.c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r+   ©rr   )r.   ÚkÚvs      r&   ú
<dictcomp>z&ProjectState.clone.<locals>.<dictcomp>(  s&   € ÐAÐAÐA¡T Q¨�A�q—w’w‘y”yÐAÐAÐAr(   ©r   rR   r   )rO   r   rh   rR   r`   r   rr   rS   )rU   Ú	new_states     r&   rr   zProjectState.clone%  sl   € å ØAÐA¨T¬[×->Ò->Ñ-@Ô-@ÐAÑAÔAØ”nð
ñ 
ô 
ˆ	ð �T”]Ð"Ð"Ø!œYŸ_š_Ñ.Ô.ˆIŒNØ#œˆ	ÔØÐr(   c                 ó>   — | j         rd| j        v r| j        d= d S d S d S r]   )rS   r`   rZ   s    r&   Úclear_delayed_apps_cachez%ProjectState.clear_delayed_apps_cache0  s8   € ØŒ?ð 	&˜v¨¬Ð6Ð6Ø”˜fÐ%Ð%Ð%ð	&ð 	&Ð6Ð6r(   c                 ó6   — t          | j        | j        ¦  «        S rX   )Ú	StateAppsrR   r   rZ   s    r&   r   zProjectState.apps4  s   € å˜œ¨¬Ñ5Ô5Ð5r(   c                 ó¤   — i }|                      d¬¦  «        D ]-}t                               |¦  «        }|||j        |j        f<   Œ. | |¦  «        S )z3Take an Apps and return a ProjectState matching it.T)Úinclude_swapped)Ú
get_modelsÚ
ModelStateÚ
from_modelr#   r^   )Úclsr   Ú
app_modelsr%   rb   s        r&   Ú	from_appszProjectState.from_apps8  sa   € ð ˆ
Ø—_’_°T�_Ñ:Ô:ð 	Vð 	VˆEÝ$×/Ò/°Ñ6Ô6ˆKØJUˆJ˜Ô-¨{Ô/EÐFÑGÐGØˆs�:‰ŒÐr(   c                 óB   — | j         |j         k    o| j        |j        k    S rX   r  ©rU   Úothers     r&   Ú__eq__zProjectState.__eq__A  s   € ØŒ{˜eœlÒ*ÐP¨t¬~ÀÄÒ/PÐPr(   )NNrX   ©F)T)*Ú__name__Ú
__module__Ú__qualname__Ú__doc__rV   Úpropertyr[   rd   rm   r‡   rŒ   r”   r˜   r›   r    r¦   rª   r¯   r´   r·   r½   rÀ   rÂ   rÙ   rá   ra   ry   rã   rî   r»   r_   rY   r÷   rð   rù   rr   r	  r   r   Úclassmethodr  r  r+   r(   r&   rO   rO   ]   s˜  € € € € € ðð ð
ð 
ð 
ð 
ð ðð ñ „Xðð
*ð *ð *ð$ð $ð $ð %Að %Að %AðN=ð =ð =ð =ð=ð =ð =ð=ð =ð =ð
=ð =ð =ð
=ð =ð =ðEð Eð EðJð Jð Jð=ð =ð =ðNð Nð NðSð Sð Sð3ð 3ð 3ð3ð 3ð 3ð3ð 3ð 3ð463ð 63ð 63ðp0ð 0ð 0ð 0ðd)ð )ð )ð )ð
)ð )ð )ð )ð9ð 9ð 9ð49ð 9ð 9ð8 ð
ð 
ð 
ð 
ð8Xð Xð Xð XðOð Oð Oð 2ð 2ð 2ð5ð 5ð 5ð$	Rð 	Rð 	Rð	ð 	ð 	ð&ð &ð &ð ð6ð 6ñ „_ð6ð ðð ñ „[ððQð Qð Qð Qð Qr(   rO   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚAppConfigStubzAStub of an AppConfig. Only provides a label and a dict of models.c                 ó>   — d | _         i | _        || _        || _        d S rX   )r   r   Úlabelrs   )rU   r"  s     r&   rV   zAppConfigStub.__init__H  s$   € ØˆŒ	ØˆŒð ˆŒ
ØˆŒ	ˆ	ˆ	r(   c                 ó>   — | j         j        | j                 | _        d S rX   )r   Ú
all_modelsr"  r   rZ   s    r&   Úimport_modelszAppConfigStub.import_modelsQ  s   € Ø”iÔ*¨4¬:Ô6ˆŒˆˆr(   N)r  r  r  r  rV   r%  r+   r(   r&   r   r   E  s8   € € € € € ØKÐKðð ð ð7ð 7ð 7ð 7ð 7r(   r   c                   óR   ‡ — e Zd ZdZd	ˆ fd„	Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )
r  zo
    Subclass of the global Apps registry class to better handle dynamic model
    additions and removals.
    Fc                 óÔ  •— g | _         |D ]a}t          j        |¦  «        }|                     ¦   «         D ]6}| j                              t
                               |d¬¦  «        ¦  «         Œ7Œbd„  |j        ¦   «         D ¦   «         }d„ t          g |¢|¢¦  «        D ¦   «         }t          ¦   «          
                    |¦  «         d | _        d | _        |                      g  |j        ¦   «         ¢| j         ¢¦  «         ddlm}	 |rt!          t"          j        ¦  «        hnt'          ¦   «         }
 |	| |
¬¦  «        }|r,t)          d                     d	„ |D ¦   «         ¦  «        ¦  «        ‚d S )
NT)Úexclude_relsc                 ó   — h | ]	}|j         ’Œ
S r+   )r#   )r.   rb   s     r&   rE   z%StateApps.__init__.<locals>.<setcomp>g  s   € ÐOÐOÐO°�kÔ+ÐOÐOÐOr(   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r+   )r   )r.   r"  s     r&   r0   z&StateApps.__init__.<locals>.<listcomp>h  s-   € ð 
ð 
ð 
Ø%*�M˜%Ñ Ô ð
ð 
ð 
r(   r   )Ú_check_lazy_references)Úignoreú
c              3   ó$   K  — | ]}|j         V — Œd S rX   )Úmsg)r.   Úerrors     r&   ú	<genexpr>z%StateApps.__init__.<locals>.<genexpr>}  s$   è è € Ð&EÐ&E°U u¤yÐ&EÐ&EÐ&EÐ&EÐ&EÐ&Er(   )rç   Úglobal_appsÚget_app_configr  r9   r  r  rx   ÚsortedÚsuperrV   Ú_lockÚready_eventrè   Údjango.core.checks.model_checksr+  r   r	   ÚAUTH_USER_MODELr4   Ú
ValueErrorÚjoin)rU   rR   r   Úignore_swappabler#   Úappr%   Ú
app_labelsÚapp_configsr+  r,  ÚerrorsÚ	__class__s               €r&   rV   zStateApps.__init__[  s¶  ø€ ð ˆÔØ"ð 	Yð 	YˆIÝÔ,¨YÑ7Ô7ˆCØŸšÑ)Ô)ð Yð Y�ØÔ ×'Ò'­
×(=Ò(=¸eÐRVÐ(=Ñ(WÔ(WÑXÔXÐXÐXðYð PÐO¸}¸v¼}¹¼ÐOÑOÔOˆ
ð
ð 
Ý.4Ð5N°yÐ5NÀ:Ð5NÑ.OÔ.Oð
ñ 
ô 
ˆõ 	‰Œ×Ò˜Ñ%Ô%Ð%ð
 ˆŒ
ØˆÔà×ÒÐB˜}˜vœ}™œÐB°Ô1AÐBÑCÔCÐCð 	KÐJÐJÐJÐJÐJð =MÐWÕ�hÔ6Ñ7Ô7Ð8Ð8ÕRUÑRWÔRWð 	ð (Ð'¨°VÐ<Ñ<Ô<ˆØð 	GÝ˜TŸYšYÐ&EÐ&E¸fÐ&EÑ&EÔ&EÑEÔEÑFÔFÐFð	Gð 	Gr(   c              #   ó¦   K  — | j         }d| _         	 d V — || _         |                      ¦   «          d S # || _         |                      ¦   «          w xY wrQ   )Úreadyrj   )rU   rC  s     r&   ræ   zStateApps.bulk_update  se   è è € ð ”
ˆØˆŒ
ð	ØˆEˆEˆEàˆDŒJØ×ÒÑÔÐÐÐøð ˆDŒJØ×ÒÑÔÐÐøøøs	   ’3 ³Ac                 ó€  — |sd S |                       ¦   «         5  |}|rˆg }|D ]=}	 |                     | ¦  «         Œ# t          $ r |                     |¦  «         Y Œ:w xY wt	          |¦  «        t	          |¦  «        k    r"t          d|›dt          ¦   «         ›d�¦  «        ‚|}|°ˆd d d ¦  «         d S # 1 swxY w Y   d S )NzCannot resolve bases for z£
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
 in an app with no migrations; see https://docs.djangoproject.com/en/z)/topics/migrations/#dependencies for more)ræ   Úrenderr   r9   r    r   )rU   Úmodel_statesÚunrendered_modelsÚnew_unrendered_modelsr%   s        r&   rè   zStateApps.render_multiple‹  s]  € ð
 ð 	ØˆFà×ÒÑÔð 	:ð 	:Ø ,ÐØ#ð :Ø(*Ð%Ø.ð <ð <�Eð<ØŸš TÑ*Ô*Ð*Ð*øÝ,ð <ð <ð <Ø-×4Ò4°UÑ;Ô;Ð;Ð;Ð;ð<øøøåÐ,Ñ-Ô-µÐ5FÑ1GÔ1GÒGÐGÝ+Ð+ð 1Ð0Ð0Õ2BÑ2DÔ2DÐ2DÐ2DðFñô ð ð %:Ð!ð! $ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s2   ™B3¥;ºB3»AÁB3ÁAÁA	B3Â3B7Â:B7c                 óö   — t          g i ¦  «        }t          j        | j        ¦  «        |_        | j        D ]6}t          |¦  «        }||_        |                     ¦   «          ||j        |<   Œ7| j        |_        |S )z Return a clone of this registry.)	r  ÚcopyÚdeepcopyr$  r?  r   r   r%  rç   )rU   rr   r#   Ú
app_configs       r&   rr   zStateApps.clone§  s   € å˜"˜bÑ!Ô!ˆÝœ=¨¬Ñ9Ô9ˆÔàÔ)ð 	6ð 	6ˆIÝ& yÑ1Ô1ˆJØ#ˆJŒOØ×$Ò$Ñ&Ô&Ð&Ø+5ˆEÔ˜iÑ(Ð(ð !Ô,ˆÔØˆr(   c                 ó.  — || j         |         |j        j        <   || j        vr)t	          |¦  «        | j        |<   | | j        |         _        || j        |         j        |j        j        <   |                      |¦  «         |                      ¦   «          d S rX   )	r$  r"   r$   r?  r   r   r   Údo_pending_operationsrj   )rU   r#   r%   s      r&   Úregister_modelzStateApps.register_model¶  s‘   € Ø=BˆŒ˜	Ô" 5¤;Ô#9Ñ:Ø˜DÔ,Ð,Ð,Ý*7¸	Ñ*BÔ*BˆDÔ˜YÑ'Ø/3ˆDÔ˜YÔ'Ô,ØEJˆÔ˜Ô#Ô*¨5¬;Ô+AÑBØ×"Ò" 5Ñ)Ô)Ð)Ø×ÒÑÔÐÐÐr(   c                 ól   — 	 | j         |         |= | j        |         j        |= d S # t          $ r Y d S w xY wrX   )r$  r?  r   rÑ   )rU   r#   r$   s      r&   ri   zStateApps.unregister_model¿  sQ   € ð	Ø” 	Ô*¨:Ð6ØÔ  Ô+Ô2°:Ð>Ð>Ð>øÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚!% ¥
3²3r  )r  r  r  r  rV   r   ræ   rè   rr   rO  ri   Ú__classcell__)rA  s   @r&   r  r  U  s¥   ø€ € € € € ðð ð
"Gð "Gð "Gð "Gð "Gð "GðH ð	ð 	ñ „^ð	ð:ð :ð :ð8ð ð ðð ð ðð ð ð ð ð ð r(   r  c                   óz   — e Zd ZdZ	 dd„Zed„ ¦   «         Zd„ Zedd„¦   «         Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )r  a�  
    Represent a Django Model. Don't use the actual Model class as it's not
    designed to have its options changed - instead, mutate this one and then
    render it into a Model as required.

    Note that while you are allowed to mutate .fields, you are not allowed
    to mutate the Field instances inside there themselves - you must instead
    assign new ones, as these are not detached during a clone.
    Nc                 ó˜  — || _         || _        t          |¦  «        | _        |pi | _        | j                             dg ¦  «         | j                             dg ¦  «         |pt          j        f| _        |pg | _	        | j         
                    ¦   «         D ]ˆ\  }}t          |d¦  «        rt          d|z  ¦  «        ‚|j        r't          |j        d¦  «        rt          d|z  ¦  «        ‚|j        r,t          |j        j        d¦  «        rt          d|z  ¦  «        ‚Œ‰| j        d         D ]}|j        st          d|z  ¦  «        ‚Œd S )	Nr£   r²   r%   z7ModelState.fields cannot be bound to a model - "%s" is.r"   z_ModelState.fields cannot refer to a model class - "%s.to" does. Use a string reference instead.zdModelState.fields cannot refer to a model class - "%s.through" does. Use a string reference instead.zKIndexes passed to ModelState require a name attribute. %r doesn't have one.)r#   rs   ró   rw   r‰   Ú
setdefaultr   r-   rü   r—   rh   Úhasattrr:  r6   r7   Úmany_to_manyru   rv   )	rU   r#   rs   rw   r‰   rü   r—   r‚   r¥   s	            r&   rV   zModelState.__init__Ò  s˜  € ð #ˆŒØˆŒ	Ý˜6‘l”lˆŒØ�} "ˆŒØŒ×Ò 	¨2Ñ.Ô.Ð.ØŒ×Ò ¨rÑ2Ô2Ð2ØÐ-�vœ|˜oˆŒ
Ø ˜ BˆŒØœ;×,Ò,Ñ.Ô.ð 	ð 	‰KˆD�%å�u˜gÑ&Ô&ð Ý ØMÐPTÑTñô ð ð Ô ð ¥W¨UÔ-@À'Ñ%JÔ%Jð Ý ð6Ø8<ñ=ñô ð ð Ô!ð ¥g¨eÔ.@Ô.HÈ'Ñ&RÔ&Rð Ý ð<Ø>BñCñô ð øð
 ”\ )Ô,ð 	ð 	ˆEØ”:ð Ý ð+Ø-2ñ3ñô ð ðð	ð 	r(   c                 ó4   — | j                              ¦   «         S rX   )rs   rq   rZ   s    r&   r^   zModelState.name_lowerö  s   € àŒy�ŠÑ Ô Ð r(   c                 ó^   — |dk    r| j                              d|¦  «        }| j        |         S )NÚ_orderÚorder_with_respect_to)r‰   r‘   rw   )rU   rÎ   s     r&   Ú	get_fieldzModelState.get_fieldú  s2   € Ø˜Ò!Ð!Øœ×)Ò)Ð*AÀ:ÑNÔNˆJØŒ{˜:Ô&Ð&r(   Fc           
      ó´  ‡‡— g }‰j         j        D ]–}t          |dd¦  «        r|rŒt          |t          j        ¦  «        rŒ1|j        }	 |                     ||                     ¦   «         f¦  «         Œc# t          $ r'}t          d|›d‰j         j
        ›d|›�¦  «        ‚d}~ww xY w|st‰j         j        D ]g}|j        }	 |                     ||                     ¦   «         f¦  «         Œ4# t          $ r'}t          d|›d‰j         j        ›d|›�¦  «        ‚d}~ww xY wi }t          D ]ý}|dv rŒ|‰j         j        v rè|dk    r2‰j         j        d         }t          t!          |¦  «        ¦  «        ||<   ŒM|d	k    r2‰j         j        d	         }	t          t!          |	¦  «        ¦  «        ||<   Œ…|d
k    r=d„ ‰j         j        D ¦   «         }
|
D ]}|j        s|                     ‰¦  «         Œ|
|d
<   ŒÈ|dk    rd„ ‰j         j        D ¦   «         |d<   Œè‰j         j        |         ||<   Œþ|rdD ]	}||v r||= Œ
n.|                     d¦  «        d„ ‰j         j        D ¦   «         v r|d= ˆfd„Št-          t           ‰‰¦  «        ¦  «        ˆfd„¬¦  «        }t/          d„ |D ¦   «         ¦  «        }t1          d„ |D ¦   «         ¦  «        st          j        f}g }t          ¦   «         }d}‰j         j        D ]¼}|j        |v rŒ|j        r)t9          j        |¦  «        }|                     ¦   «          nJ|‰j        u s	|‰j        u r7t	          j         ¦   «         }|j!        |_!        |j        |_        |‰j        u r|}nŒ†| "                    |j        ¦  «         |                     |j        |f¦  «         Œ½|d|fgk    rg } | ‰j         j#        ‰j         j        ||||¦  «        S )z3Given a model, return a ModelState representing it.ru   NzCouldn't reconstruct field z on z: zCouldn't reconstruct m2m field )r   r#   rÉ   rÈ   r£   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r+   r  )r.   Úidxs     r&   r0   z)ModelState.from_model.<locals>.<listcomp>1  s    € ÐJÐJÐJ¨s˜sŸyšy™{œ{ÐJÐJÐJr(   r²   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r+   r  )r.   Úcons     r&   r0   z)ModelState.from_model.<locals>.<listcomp>7  s-   € ð .ð .ð .Ø(+˜Ÿ	š	™œð.ð .ð .r(   )rÉ   rÈ   rZ  rZ  c                 ó   — h | ]	}|j         ’Œ
S r+   rž   )r.   r‚   s     r&   rE   z(ModelState.from_model.<locals>.<setcomp>C  s'   € ð 6
ð 6
ð 6
Ø ˆEŒJð6
ð 6
ð 6
r(   c                 óÀ   •— g }| j         D ]R}t          |d¦  «        r+|j        j        r|                      ‰|¦  «        ¦  «         Œ=|                     |¦  «         ŒS|S )Nr"   )Ú	__bases__rU  r"   ÚabstractrH   r9   )r%   rü   rý   Úflatten_basess      €r&   re  z,ModelState.from_model.<locals>.flatten_basesH  sp   ø€ ØˆEØœð 'ð '�Ý˜4 Ñ)Ô)ð '¨d¬jÔ.Að 'Ø—L’L  ¨tÑ!4Ô!4Ñ5Ô5Ð5Ð5à—L’L Ñ&Ô&Ð&Ð&ØˆLr(   c                 ó8   •— ‰j                              | ¦  «        S rX   )Ú__mro__r¥   )Úxr%   s    €r&   ú<lambda>z'ModelState.from_model.<locals>.<lambda>W  s   ø€ °U´]×5HÒ5HÈÑ5KÔ5K€ r(   ©r‹   c              3   óR   K  — | ]"}t          |d ¦  «        r|j        j        n|V — Œ#dS )r"   N)rU  r"   Úlabel_lower©r.   rý   s     r&   r1  z(ModelState.from_model.<locals>.<genexpr>[  sO   è è € ð 
ð 
àõ (/¨t°WÑ'=Ô'=ÐGˆTŒZÔ#Ð#À4ð
ð 
ð 
ð 
ð 
ð 
r(   c              3   ót   K  — | ]3}t          |t          ¦  «        pt          |t          j        ¦  «        V — Œ4d S rX   )r   r   r,   r   r-   rm  s     r&   r1  z(ModelState.from_model.<locals>.<genexpr>`  sN   è è € ð 
ð 
ØJN�Z˜�cÑ"Ô"ÐD¥j°µv´|Ñ&DÔ&Dð
ð 
ð 
ð 
ð 
ð 
r(   Úobjects)$r"   Úlocal_fieldsrÒ   r   r   ÚOrderWrtrs   r9   rr   Ú	TypeErrorr"  Úlocal_many_to_manyÚobject_namer   Úoriginal_attrsr4   r   r£   Úset_name_with_modelr²   r‘   Úprivate_fieldsr4  r!   Úanyr-   r—   Úuse_in_migrationsrJ  Ú_set_creation_counterÚ_base_managerÚ_default_managerÚManagerr%   r8   r#   )r  r%   r(  rw   r‚   rs   Úer‰   ÚutÚitr£   r¥   r‹   Úflattened_basesrü   r—   Úmanager_namesÚdefault_manager_shimÚmanagerÚnew_managerre  s    `                  @r&   r  zModelState.from_modelÿ  s0  øø€ ð ˆØ”[Ô-ð 	ð 	ˆEÝ�u˜n¨dÑ3Ô3ð ¸ð ØÝ˜%¥¤Ñ1Ô1ð ØØ”:ˆDð
Ø—’˜t U§[¢[¡]¤]Ð3Ñ4Ô4Ð4Ð4øÝð ð ð Ý�ið ˜˜ØœÔ)Ð)Ð)Ø˜ð	ñô ð øøøøðøøøð ð 	ØœÔ7ð ð �Ø”z�ð
Ø—M’M 4¨¯ª©¬Ð"7Ñ8Ô8Ð8Ð8øÝ ð ð ð Ý#˜)ð !˜D˜DØ!œKÔ3Ð3Ð3Ø˜Að	ñô ð øøøøðøøøð ˆÝ!ð 	Eð 	EˆDàÐ,Ð,Ð,ØØ˜œÔ3Ð3Ð3ØÐ,Ò,Ð,ØœÔ3Ð4EÔF�BÝ$'Õ(:¸2Ñ(>Ô(>Ñ$?Ô$?�G˜D‘M�MØÐ-Ò-Ð-ØœÔ3Ð4DÔE�BÝ$'Õ(:¸2Ñ(>Ô(>Ñ$?Ô$?�G˜D‘M�MØ˜YÒ&Ð&ØJÐJ°e´kÔ6IÐJÑJÔJ�GØ!(ð =ð =˜Ø$œzð =Ø!×5Ò5°eÑ<Ô<Ð<øØ)0�G˜IÑ&Ð&Ø˜]Ò*Ð*ð.ð .Ø/4¬{Ô/Fð.ñ .ô .�G˜MÑ*Ð*ð %*¤KÔ$>¸tÔ$D�G˜D‘Møð ð 	1ØUð %ð %�Ø˜'�>�>Ø ˜øð%ð �[Š[Ð0Ñ1Ô1ð 6
ð 6
Ø$)¤KÔ$>ð6
ñ 6
ô 6
ð 
ð 
ð Ð/Ð0ð	ð 	ð 	ð 	ð 	õ !Ý��˜eÑ$Ô$Ñ%Ô%Ð+KÐ+KÐ+KÐ+Kð
ñ 
ô 
ˆõ
 ð 
ð 
à'ð
ñ 
ô 
ñ 
ô 
ˆõ
 ð 
ð 
ØRWð
ñ 
ô 
ñ 
ô 
ð 	$õ ”\�OˆEàˆÝ™œˆØ#ÐØ”{Ô+ð 	9ð 	9ˆGØŒ|˜}Ð,Ð,àØÔ*ð å"œi¨Ñ0Ô0�Ø×1Ò1Ñ3Ô3Ð3Ð3Ø˜EÔ/Ð/Ð/°7¸eÔ>TÐ3TÐ3Tå$œnÑ.Ô.�Ø$+¤M�Ô!Ø#*¤<�Ô Ø˜eÔ4Ð4Ð4Ø+6Ð(øàØ×Ò˜gœlÑ+Ô+Ð+Ø�OŠO˜Wœ\¨;Ð7Ñ8Ô8Ð8Ð8ð ˜Ð$8Ð9Ð:Ò:Ð:ØˆHð ˆsØŒKÔ!ØŒKÔ#ØØØØñ
ô 
ð 	
s0   Á
)A4Á4
B%Á>"B Â B%Ã )C*Ã*
DÃ4"DÄDc              #   ó  K  — t          | j        d„ ¬¦  «        }|D ]d\  }}|                     ¦   «         \  }}}}}|r(t          |¦  «        }	||	                     ¦   «         fV — ŒIt          |¦  «        }
| |
|i |¤ŽfV — ŒedS )z-Deep-clone the managers using deconstruction.c                 ó   — | d         j         S )Nr   )Úcreation_counter)r  s    r&   ri  z/ModelState.construct_managers.<locals>.<lambda>�  s   € ¸aÀ¼dÔ>S€ r(   rj  N)r4  r—   Údeconstructr   Ú
as_manager)rU   Úsorted_managersÚmgr_namer„  rŠ  Úmanager_pathÚqs_pathÚargsÚkwargsÚqs_classÚmanager_classs              r&   Úconstruct_managerszModelState.construct_managersŠ  s¿   è è € õ ! ¤Ð4SÐ4SÐTÑTÔTˆØ!0ð 	?ð 	?ÑˆH�gØ>E×>QÒ>QÑ>SÔ>SÑ;ˆJ˜ g¨t°VØð ?Ý(¨Ñ1Ô1�Ø × 3Ò 3Ñ 5Ô 5Ð5Ð5Ð5Ð5Ð5å -¨lÑ ;Ô ;�Ø  ¨tÐ >°vÐ >Ð >Ð>Ð>Ð>Ð>Ð>ð	?ð 	?r(   c           
      óÂ   — |                       | j        | j        t          | j        ¦  «        t          | j        ¦  «        | j        t          | j        ¦  «        ¬¦  «        S )z(Return an exact copy of this ModelState.)r#   rs   rw   r‰   rü   r—   )	rA  r#   rs   ró   rw   r‰   rü   rg   r—   rZ   s    r&   rr   zModelState.clone—  sU   € à�~Š~Ø”nØ”Ý˜œÑ$Ô$õ ˜œÑ&Ô&Ø”*Ý˜$œ-Ñ(Ô(ð ñ 

ô 

ð 
	
r(   c                 óª  ‡— | j         ‰dœ| j        ¥}t          dd|¦  «        }	 t          ˆfd„| j        D ¦   «         ¦  «        }n%# t
          $ r t          d| j        ›�¦  «        ‚w xY wd„ | j                             ¦   «         D ¦   «         }||d<   d|d<   | 	                    |  
                    ¦   «         ¦  «         t          | j        ||¦  «        S )	zACreate a Model object from our current state into the given apps.)r#   r   ÚMetar+   c              3   óp   •K  — | ]0}t          |t          ¦  «        r‰                     |¦  «        n|V — Œ1d S rX   )r   r   rÛ   )r.   rý   r   s     €r&   r1  z$ModelState.render.<locals>.<genexpr>¬  sW   øè è € ð ð àõ *4°D½#Ñ)>Ô)>ÐH�—’ Ñ%Ô%Ð%ÀDðð ð ð ð ð r(   z&Cannot resolve one or more bases from c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r+   r  )r.   rs   r‚   s      r&   r  z%ModelState.render.<locals>.<dictcomp>µ  s&   € ÐKÐKÐK©¨¨e��e—k’k‘m”mÐKÐKÐKr(   Ú__fake__r  )r#   r‰   Útyper!   rü   rÜ   r   rw   rh   rÝ   r“  rs   )rU   r   Úmeta_contentsÚmetarü   Úbodys    `    r&   rE  zModelState.render¥  s  ø€ ð '+¤n¸dÐSÐSÀdÄlÐSˆÝ�F˜B Ñ.Ô.ˆð	Ýð ð ð ð à œJðñ ô ñ ô ˆEˆEøõ ð 	ð 	ð 	Ý#Ð#Ø>B¼j¸jÐJñô ð ð	øøøð
 LÐK°t´{×7HÒ7HÑ7JÔ7JÐKÑKÔKˆØˆˆV‰Ø'ˆˆ\Ñð 	�Š�D×+Ò+Ñ-Ô-Ñ.Ô.Ð.å�D”I˜u dÑ+Ô+Ð+s   ¥ A Á"A(c                 ót   — | j         d         D ]}|j        |k    r|c S Œt          d|›d| j        ›�¦  «        ‚)Nr£   zNo index named ú
 on model ©r‰   rs   r:  )rU   rs   r¥   s      r&   Úget_index_by_namezModelState.get_index_by_name¾  sP   € Ø”\ )Ô,ð 	ð 	ˆEØŒz˜TÒ!Ð!Ø���ð "åˆj¸D¸D¸DÀ$Ä)À)ÐLÑMÔMÐMr(   c                 ót   — | j         d         D ]}|j        |k    r|c S Œt          d|›d| j        ›�¦  «        ‚)Nr²   zNo constraint named rŸ  r   )rU   rs   r³   s      r&   Úget_constraint_by_namez!ModelState.get_constraint_by_nameÄ  sS   € Øœ, }Ô5ð 	"ð 	"ˆJØŒ $Ò&Ð&Ø!Ð!Ð!Ð!ð 'åˆjÀÀÀÀtÄyÀyÐQÑRÔRÐRr(   c                 óB   — d| j         j        ›d| j        ›d| j        ›d�S )Nú<z: 'r   z'>)rA  r  r#   rs   rZ   s    r&   Ú__repr__zModelState.__repr__Ê  s(   € € Ø"&¤.Ô"9Ð"9Ð"9¸4¼>¸>¸>È4Ì9È9È9ÐUÐUr(   c           
      óÔ  — | j         |j         k    oØ| j        |j        k    oÈt          | j        ¦  «        t          |j        ¦  «        k    ožt	          d„ t          t          | j                             ¦   «         ¦  «        t          |j                             ¦   «         ¦  «        ¦  «        D ¦   «         ¦  «        o/| j        |j        k    o| j	        |j	        k    o| j
        |j
        k    S )Nc              3   ó¨   K  — | ]M\  \  }}\  }}||k    o9|                      ¦   «         d d…         |                      ¦   «         d d…         k    V — ŒNdS )r   N)r‰  )r.   Úk1Úf1Úk2Úf2s        r&   r1  z$ModelState.__eq__.<locals>.<genexpr>Ò  sv   è è € ð ð á&‘H�R˜™h˜r 2ð �b’ÐI˜RŸ^š^Ñ-Ô-¨a¨b¨bÔ1°R·^²^Ñ5EÔ5EÀaÀbÀbÔ5IÒIðð ð ð ð ð r(   )r#   rs   r    rw   ÚallÚzipr4  rh   r‰   rü   r—   r  s     r&   r  zModelState.__eq__Í  sê   € àŒ^˜uœÒ.ð 2Ø”˜eœjÒ(ð2å�T”[Ñ!Ô!¥S¨¬Ñ%6Ô%6Ò6ð2õ ð ð å*-Ý˜4œ;×,Ò,Ñ.Ô.Ñ/Ô/Ý˜5œ<×-Ò-Ñ/Ô/Ñ0Ô0ñ+ô +ðñ ô ñ ô ð2ð ” ¤Ò.ð2ð ”˜uœ{Ò*ð2ð ” %¤.Ò0ð	
r(   )NNNr  )r  r  r  r  rV   r   r^   r[  r  r  r“  rr   rE  r¡  r£  r¦  r  r+   r(   r&   r  r  Ç  sû   € € € € € ðð ð KOð"ð "ð "ð "ðH ð!ð !ñ „_ð!ð'ð 'ð 'ð
 ðH
ð H
ð H
ñ „[ðH
ðT?ð ?ð ?ð
ð 
ð 
ð,ð ,ð ,ð2Nð Nð NðSð Sð SðVð Vð Vð
ð 
ð 
ð 
ð 
r(   r  )r   )1rJ  Úcollectionsr   Ú
contextlibr   Ú	functoolsr   Údjango.appsr   Údjango.apps.registryr   r   r2  Údjango.confr	   Údjango.core.exceptionsr
   Ú	django.dbr   Údjango.db.migrations.utilsr   r   Údjango.db.modelsr   Údjango.db.models.fields.relatedr   Údjango.db.models.optionsr   r   Údjango.db.models.utilsr   Údjango.utils.functionalr   Údjango.utils.module_loadingr   Údjango.utils.versionr   Ú
exceptionsr   Úutilsr   r'   rA   rF   rM   rO   r   r  r  r+   r(   r&   ú<module>rÁ     s†  ðØ €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø  Ð  Ð  Ð  Ð  Ð  Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ )Ð )Ð )Ð )Ð )Ð )Ø KÐ KÐ KÐ KÐ KÐ KØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #ð=ð =ð =ð =ðð ð ð0ð ð ðDð Dð Dð2eQð eQð eQð eQð eQñ eQô eQð eQðP7ð 7ð 7ð 7ð 7�Iñ 7ô 7ð 7ð oð oð oð oð o�ñ oô oð oðdU
ð U
ð U
ð U
ð U
ñ U
ô U
ð U
ð U
ð U
r(   