Ë
    q^ëiÃ�  ã                   ó  — 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mZmZmZ d	„ Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d „ d!e«      Z G d"„ d#e«      Z  G d$„ d%e«      Z! G d&„ d'e!«      Z" G d(„ d)e!«      Z# G d*„ d+e!«      Z$ G d,„ d-e!«      Z% G d.„ d/e!«      Z&y0)1é    )Úmodels)Ú	Operation)Ú
ModelState)Úfield_referencesÚresolve_relation)Únormalize_together)Úcached_propertyé   )ÚAddFieldÚ
AlterFieldÚFieldOperationÚRemoveFieldÚRenameFieldc                 ót   — t        «       }|D ])  }||v rt        d|›d| ›d�«      ‚|j                  |«       Œ+ y )NzFound duplicate value z in CreateModel z
 argument.)ÚsetÚ
ValueErrorÚadd)Úarg_nameÚobjsÚ	used_valsÚvals       úW/var/www/eb/venv/lib/python3.12/site-packages/django/db/migrations/operations/models.pyÚ_check_for_duplicatesr      sC   € Ü“€IØò ˆØ�)ÑÝÚJMÊxÐXóð ð 	�‰�cÕñó    c                   ó@   ‡ — e Zd Zd„ Zed„ «       Zd„ Zˆ fd„Zd„ Zˆ xZ	S )ÚModelOperationc                 ó   — || _         y ©N©Úname)Úselfr    s     r   Ú__init__zModelOperation.__init__   s	   € Øˆ�	r   c                 ó6   — | j                   j                  «       S r   )r    Úlower©r!   s    r   Ú
name_lowerzModelOperation.name_lower   s   € à�y‰y�‰Ó Ð r   c                 ó<   — |j                  «       | j                  k(  S r   )r$   r&   ©r!   r    Ú	app_labels      r   Úreferences_modelzModelOperation.references_model   s   € Ø�z‰z‹|˜tŸ™Ñ.Ð.r   c                 óL   •— t         ‰| �  ||«      xs | j                  ||«      S r   )ÚsuperÚreduceÚcan_reduce_through©r!   Ú	operationr)   Ú	__class__s      €r   r-   zModelOperation.reduce    s-   ø€ Ü‰w‰~˜i¨Ó3ò 
°t×7NÑ7NØ�yó8
ð 	
r   c                 ó<   — |j                  | j                  |«       S r   )r*   r    )r!   r0   r)   s      r   r.   z!ModelOperation.can_reduce_through%   s   € Ø×-Ñ-¨d¯i©i¸ÓCÐCÐCr   )
Ú__name__Ú
__module__Ú__qualname__r"   r	   r&   r*   r-   r.   Ú__classcell__©r1   s   @r   r   r      s,   ø„ òð ñ!ó ð!ò/ô
ö
Dr   r   c                   ój   ‡ — e Zd ZdZg d¢Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zd
„ Zˆ fd„Zˆ xZS )ÚCreateModelzCreate a model's table.)ÚfieldsÚoptionsÚmanagersc                 ó@  •— || _         |xs i | _        |xs t        j                  f| _        |xs g | _        t        ‰| �  |«       t        dd„ | j                   D «       «       t        dd„ | j                  D «       «       t        dd„ | j
                  D «       «       y )Nr:   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   © ©Ú.0r    Ú_s      r   ú	<genexpr>z'CreateModel.__init__.<locals>.<genexpr>6   s   è ø€ Ò(I±'°$¸¬Ñ(Iùó   ‚Úbasesc              3   ó¤   K  — | ]H  }t        |d «      r|j                  j                  n!t        |t        «      r|j                  «       n|–— ŒJ y­w)Ú_metaN)ÚhasattrrG   Úlabel_lowerÚ
isinstanceÚstrr$   )rA   Úbases     r   rC   z'CreateModel.__init__.<locals>.<genexpr>9   sO   è ø€ ò ð ô	 ˜4 Ô)ð —
‘
×&Ò&ô ˜d¤CÔ(ð —Z‘Z”\àó	ñùs   ‚AAr<   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r?   r@   s      r   rC   z'CreateModel.__init__.<locals>.<genexpr>B   s   è ø€ Ò*M±G°D¸!¬4Ñ*MùrD   )	r:   r;   r   ÚModelrE   r<   r,   r"   r   )r!   r    r:   r;   rE   r<   r1   s         €r   r"   zCreateModel.__init__.   s‰   ø€ ØˆŒØ’} "ˆŒØÒ-œvŸ|™|˜oˆŒ
Ø š BˆŒÜ‰Ñ˜Ôô 	˜hÑ(I¸T¿[¹[Ô(IÔJÜØñð !ŸJ™Jôô
	
ô 	˜jÑ*M¸t¿}¹}Ô*MÕNr   c                 óŒ  — | j                   | j                  dœ}| j                  r| j                  |d<   | j                  r-| j                  t        j
                  fk7  r| j                  |d<   | j                  r3| j                  dt	        j                  «       fgk7  r| j                  |d<   | j                  j                  g |fS )N)r    r:   r;   rE   Úobjectsr<   )
r    r:   r;   rE   r   rN   r<   ÚManagerr1   r5   ©r!   Úkwargss     r   ÚdeconstructzCreateModel.deconstructD   s™   € à—I‘IØ—k‘kñ
ˆð �<Š<Ø $§¡ˆF�9ÑØ�:Š:˜$Ÿ*™*¬¯©¨Ò7Ø"Ÿj™jˆF�7‰OØ�=Š=˜TŸ]™]°	¼6¿>¹>Ó;KÐ/LÐ.MÒMØ!%§¡ˆF�:ÑØ—‘×+Ñ+¨R°Ð8Ð8r   c                 óî   — |j                  t        || j                  t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      «      «       y r   )
Ú	add_modelr   r    Úlistr:   Údictr;   ÚtuplerE   r<   ©r!   r)   Ústates      r   Ústate_forwardszCreateModel.state_forwardsQ   sP   € Ø�‰ÜØØ—	‘	Ü�T—[‘[Ó!Ü�T—\‘\Ó"Ü�d—j‘jÓ!Ü�T—]‘]Ó#óõ		
r   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   ©ÚappsÚ	get_modelr    Úallow_migrate_modelÚ
connectionÚaliasÚcreate_model©r!   r)   Úschema_editorÚ
from_stateÚto_stateÚmodels         r   Údatabase_forwardszCreateModel.database_forwards]   óL   € Ø—‘×'Ñ'¨	°4·9±9Ó=ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& uÕ-ð Kr   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   ©r_   r`   r    ra   rb   rc   Údelete_modelre   s         r   Údatabase_backwardszCreateModel.database_backwardsb   óL   € Ø—‘×)Ñ)¨)°T·Y±YÓ?ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& uÕ-ð Kr   c                 ób   — d| j                   j                  dd«      rdnd›d| j                  ›�S )NzCreate ÚproxyFzproxy Ú zmodel )r;   Úgetr    r%   s    r   ÚdescribezCreateModel.describeg   s.   � àŸ™×(Ñ(¨°%Ô8‰H¸bÑ@Ø�IŠIð
ð 	
r   c                 ó   — | j                   S r   ©r&   r%   s    r   Úmigration_name_fragmentz#CreateModel.migration_name_fragmentm   s   € à�‰Ðr   c                 ój  — |j                  «       }|| j                  k(  ry||f}| j                  D ]Q  }|t        j                  usŒt        |t        j                  j                  t        f«      sŒAt        ||«      |k(  sŒQ y | j                  D ]   \  }}t        || j                  f||«      sŒ  y y)NTF)r$   r&   rE   r   rN   rJ   rL   Ú	ModelBaserK   r   r:   r   )r!   r    r)   r&   Úreference_model_tuplerL   Ú_nameÚfields           r   r*   zCreateModel.references_modelq   s°   € Ø—Z‘Z“\ˆ
Ø˜Ÿ™Ò(Øð "+¨JÐ 7ÐØ—J‘Jò 	ˆDàœFŸL™LÒ(Ü˜t¤f§k¡k×&;Ñ&;¼SÐ%AÕBÜ$ T¨9Ó5Ð9NÓNáð	ð !ŸK™Kò 	‰LˆE�5ÜØ˜DŸO™OÐ,¨eÐ5Jõñ ð		ð
 r   c           
      ó(  •‡— t        ‰t        «      r7| j                  ‰j                  k(  r| j                  j	                  dd«      sg S t        ‰t
        «      r\| j                  ‰j                  k(  rCt        ‰j                  | j                  | j                  | j                  | j                  ¬«      gS t        ‰t        «      rž| j                  ‰j                  k(  r…i | j                  ¥‰j                  ¥}‰j                  D ]#  }|‰j                  vsŒ|j                  |d «       Œ% t        | j                  | j                  || j                  | j                  ¬«      gS t        ‰t         «      r\| j                  ‰j                  k(  rCt        | j                  | j                  | j                  | j                  ‰j                  ¬«      gS t        ‰t"        «      rv| j                  ‰j                  k(  r]t        | j                  | j                  i | j                  ¥‰j$                  ‰j&                  i¥| j                  | j                  ¬«      gS t        ‰t(        «      rl| j                  ‰j                  k(  rSt        | j                  | j                  i | j                  ¥d‰j*                  i¥| j                  | j                  ¬«      gS t        ‰t,        «      �r
| j                  ‰j.                  k(  �rðt        ‰t0        «      r]t        | j                  | j                  ‰j                  ‰j2                  fgz   | j                  | j                  | j                  ¬«      gS t        ‰t4        «      rst        | j                  | j                  D ��cg c]$  \  }}||‰j                  k(  r‰j2                  n|f‘Œ& c}}| j                  | j                  | j                  ¬«      gS t        ‰t6        «      rî| j                  j9                  «       }dD ]A  }|j                  |d «      }|sŒt;        t=        t>        ˆfd„|D «       «      «      }|sŒ=|||<   ŒC |j	                  d«      }	|	‰j                  k(  r|d= t        | j                  | j                  D ��cg c]&  \  }}|jA                  «       ‰j                  k7  r||f‘Œ( c}}|| j                  | j                  ¬«      gS t        ‰tB        «      rò| j                  j9                  «       }dD ];  }|j	                  |«      }|sŒ|D �
ch c]  }
tE        ˆfd„|
D «       «      ’Œ c}
||<   Œ= |j	                  d«      }	|	‰jF                  k(  r‰j                  |d<   t        | j                  | j                  D ��cg c]$  \  }}|‰jF                  k(  r‰j                  n||f‘Œ& c}}|| j                  | j                  ¬«      gS tH        ‰| �•  ‰|«      S c c}}w c c}}w c c}
w c c}}w )Nrr   F)r:   r;   rE   r<   Úorder_with_respect_to)Úunique_togetherÚindex_togetherc              3   óF   •K  — | ]  }t        ˆfd „|D «       «      –— Œ y­w)c              3   óB   •K  — | ]  }|‰j                   k7  sŒ|–— Œ y ­wr   rw   ©rA   Úfr0   s     €r   rC   z/CreateModel.reduce.<locals>.<genexpr>.<genexpr>þ   s#   øè ø€ ò *&Ø./¸QÀ)×BVÑBVÓ=V¬ñ*&ùs   ƒ˜N)rY   )rA   r:   r0   s     €r   rC   z%CreateModel.reduce.<locals>.<genexpr>ý   s-   øè ø€ ò !"ð )/ô %*ó *&Ø39ô*&÷ %&ñ!"ùs   ƒ!c              3   óX   •K  — | ]!  }|‰j                   k(  r‰j                  n|–— Œ# y ­wr   ©Úold_nameÚnew_namer„   s     €r   rC   z%CreateModel.reduce.<locals>.<genexpr>  s2   øè ø€ ò "à$%ð 78¸9×;MÑ;MÒ6M 	× 2Ò 2ÐSTÓ Tñ"ùs   ƒ'*)&rJ   ÚDeleteModelr&   r;   rt   ÚRenameModelÚold_name_lowerr9   r‰   r:   rE   r<   ÚAlterModelOptionsÚALTER_OPTION_KEYSÚpopr    ÚAlterModelManagersÚAlterTogetherOptionOperationÚoption_nameÚoption_valueÚAlterOrderWithRespectTor   r   Úmodel_name_lowerr   r}   r   r   Úcopyr   ÚfilterÚboolr$   r   rY   rˆ   r,   r-   )r!   r0   r)   r;   ÚkeyÚnÚvr’   Úoptionr   r:   r1   s    `         €r   r-   zCreateModel.reduceˆ   s…  ù€ ä�y¤+Ô.Ø—‘ 9×#7Ñ#7Ò7Ø—L‘L×$Ñ$ W¨eÔ4àˆIä�y¤+Ô.Ø—‘ 9×#;Ñ#;Ò;ô Ø×&Ñ&ØŸ;™;Ø ŸL™LØŸ*™*Ø!Ÿ]™]ôðð ô �yÔ"3Ô4Ø—‘ 9×#7Ñ#7Ò7à;˜Ÿ™Ð;¨×):Ñ):Ð;ˆGØ ×2Ñ2ò +�Ø˜i×/Ñ/Ò/Ø—K‘K  TÕ*ð+ô Ø—I‘IØŸ;™;Ø#ØŸ*™*Ø!Ÿ]™]ôðð ô �yÔ"4Ô5Ø—‘ 9×#7Ñ#7Ò7ô Ø—I‘IØŸ;™;Ø ŸL™LØŸ*™*Ø&×/Ñ/ôðð ô �yÔ">Ô?Ø—‘ 9×#7Ñ#7Ò7ô Ø—I‘IØŸ;™;ðØŸ,™,ðà$×0Ñ0°)×2HÑ2HÐIðð Ÿ*™*Ø!Ÿ]™]ô	ðð ô �yÔ"9Ô:Ø—‘ 9×#7Ñ#7Ò7ô Ø—I‘IØŸ;™;ðØŸ,™,ðà/°×1PÑ1Pñð Ÿ*™*Ø!Ÿ]™]ô	ðð ô �y¤.Õ1Ø—‘ 9×#=Ñ#=Ó=ä˜)¤XÔ.äØŸ	™	Ø#Ÿ{™{¨y¯~©~¸y¿¹Ð.OÐ-PÑPØ $§¡Ø"Ÿj™jØ!%§¡ôðð ô ˜I¤zÔ2äØŸ	™	ð )-¯©÷ á $  1ð °1¸	¿¹Ò3F 	§¢ÈAÒNó ð !%§¡Ø"Ÿj™jØ!%§¡ô	ðð ô ˜I¤{Ô3ØŸ,™,×+Ñ+Ó-�Ø#Hò :�KØ$Ÿ[™[¨°dÓ;�FÚÜ!$Ü"Ü $ó!"ð 39ô	!"óó
"˜ò "Ø39˜G KÒ0ð:ð  )0¯©Ð4KÓ(LÐ%Ø(¨I×,@Ñ,@Ò@ØÐ 7Ð8äØŸ	™	ð )-¯©÷ á $  1Ø Ÿw™w›y¨I×,@Ñ,@Ò@ð  šFó ð
 !(Ø"Ÿj™jØ!%§¡ô
ðð ô ˜I¤{Ô3ØŸ,™,×+Ñ+Ó-�Ø#Hò 	�KØ$Ÿ[™[¨Ó5�FÚð +1ö0ð
 !'ô	 "ó "à)/ô"õ ò0˜ Ò,ð	ð )0¯©Ð4KÓ(LÐ%Ø(¨I×,>Ñ,>Ò>Ø7@×7IÑ7I�GÐ3Ñ4äØŸ	™	ð )-¯©÷ á $  1ð 45¸	×8JÑ8JÒ3J˜Y×/Ò/ÐPQÐSTÒUó ð !(Ø"Ÿj™jØ!%§¡ô	ðð ô ‰w‰~˜i¨Ó3Ð3ùóM ùóB ùò0ùó s   Î)W=Ò+XÔ2X	Ö#)X)NNN)r3   r4   r5   Ú__doc__Úserialization_expand_argsr"   rT   r\   rj   ro   ru   Úpropertyrx   r*   r-   r6   r7   s   @r   r9   r9   )   sP   ø„ Ù!â AÐõOò,9ò

ò.ò
.ò

ð ñó ðò÷.j4ð j4r   r9   c                   óD   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zy	)
rŠ   zDrop a model's table.c                 óP   — d| j                   i}| j                  j                  g |fS ©Nr    )r    r1   r5   rR   s     r   rT   zDeleteModel.deconstruct8  s+   € à�D—I‘Ið
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 ó<   — |j                  || j                  «       y r   )Úremove_modelr&   rZ   s      r   r\   zDeleteModel.state_forwards>  s   € Ø×Ñ˜9 d§o¡oÕ6r   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   rm   re   s         r   rj   zDeleteModel.database_forwardsA  rp   r   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   r^   re   s         r   ro   zDeleteModel.database_backwardsF  rk   r   c                  ó   — y)NTr?   r(   s      r   r*   zDeleteModel.references_modelK  s   € ð r   c                 ó    — d| j                   z  S )NzDelete model %sr   r%   s    r   ru   zDeleteModel.describeP  s   € Ø  4§9¡9Ñ,Ð,r   c                 ó    — d| j                   z  S )Nz	delete_%srw   r%   s    r   rx   z#DeleteModel.migration_name_fragmentS  s   € à˜TŸ_™_Ñ,Ð,r   N)r3   r4   r5   r�   rT   r\   rj   ro   r*   ru   rŸ   rx   r?   r   r   rŠ   rŠ   5  s7   „ Ùò9ò7ò.ò
.ò
ò
-ð ñ-ó ñ-r   rŠ   c                   ó€   ‡ — e Zd ZdZˆ fd„Zed„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zed„ «       Zˆ fd„Zˆ xZS )r‹   zRename a model.c                 ó@   •— || _         || _        t        ‰| �  |«       y r   )rˆ   r‰   r,   r"   )r!   rˆ   r‰   r1   s      €r   r"   zRenameModel.__init__[  s   ø€ Ø ˆŒØ ˆŒÜ‰Ñ˜Õ"r   c                 ó6   — | j                   j                  «       S r   ©rˆ   r$   r%   s    r   rŒ   zRenameModel.old_name_lower`  ó   € à�}‰}×"Ñ"Ó$Ð$r   c                 ó6   — | j                   j                  «       S r   ©r‰   r$   r%   s    r   Únew_name_lowerzRenameModel.new_name_lowerd  r®   r   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )Nr‡   )rˆ   r‰   r1   r5   rR   s     r   rT   zRenameModel.deconstructh  s0   € àŸ™ØŸ™ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óR   — |j                  || j                  | j                  «       y r   )Úrename_modelrˆ   r‰   rZ   s      r   r\   zRenameModel.state_forwardso  s   € Ø×Ñ˜9 d§m¡m°T·]±]ÕCr   c                 ód  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      �rã|j                   j                  || j                  «      }|j                  ||j                  j                  |j                  j                  «       |j                  j                  D ]Ñ  }|j                  |k(  r|}|| j                  f}	nL|j                  }|j                  j                  j                  |j                  j                  j                  f}	 |j                   j                  |	Ž j                  j                  |j                   j"                  «      }
|j%                  ||j                   |
«       ŒÓ t'        |j                  j(                  |j                  j(                  «      }|D ]^  \  }}|j*                  |j                  k(  s*|j,                  j.                  j                  j0                  sŒJ|j3                  |||d¬«       Œ` y y )NF)Ústrict)r_   r`   r‰   ra   rb   rc   rˆ   Úalter_db_tablerG   Údb_tableÚrelated_objectsÚrelated_modelr±   r)   Ú
model_nameÚ	get_fieldr}   r    Úalter_fieldÚzipÚlocal_many_to_manyri   Úremote_fieldÚthroughÚauto_createdÚ_alter_many_to_many)r!   r)   rf   rg   rh   Ú	new_modelÚ	old_modelÚrelated_objectri   Úrelated_keyÚto_fieldr:   Ú	old_fieldÚ	new_fields                 r   rj   zRenameModel.database_forwardsr  sà  € Ø—M‘M×+Ñ+¨I°t·}±}ÓEˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÕNØ"Ÿ™×1Ñ1°)¸T¿]¹]ÓKˆIà×(Ñ(ØØ—‘×(Ñ(Ø—‘×(Ñ(ôð #,§/¡/×"AÑ"Aò �Ø!×/Ñ/°9Ò<Ø%�EØ#,¨d×.AÑ.AÐ"B‘Kà*×8Ñ8�Eà&×4Ñ4×:Ñ:×DÑDØ&×4Ñ4×:Ñ:×EÑEð#�Kð 3˜8Ÿ=™=×2Ñ2°KÐ@×FÑF×PÑPØ"×(Ñ(×-Ñ-ó�ð ×)Ñ)ØØ"×(Ñ(Øõðô& Ø—‘×2Ñ2°I·O±O×4VÑ4VóˆFð )/ò Ñ$�	˜9ð —O‘O y×'>Ñ'>Ò>Ø$×1Ñ1×9Ñ9×?Ñ?×LÒLàà×1Ñ1ØØØØ ð	 2õ ñð? Or   c                 óD  — | j                   | j                  c| _        | _         | j                  | j                  c| _        | _        | j	                  ||||«       | j                   | j                  c| _        | _         | j                  | j                  c| _        | _        y r   )rŒ   r±   rˆ   r‰   rj   ©r!   r)   rf   rg   rh   s        r   ro   zRenameModel.database_backwards¢  sŽ   € à×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t”}à×Ñ˜y¨-¸ÀXÔNð ×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t•}r   c                 óz   — |j                  «       | j                  k(  xs |j                  «       | j                  k(  S r   )r$   rŒ   r±   r(   s      r   r*   zRenameModel.references_model±  s1   € à�J‰J‹L˜D×/Ñ/Ñ/ÒV°4·:±:³<À4×CVÑCVÑ3Vð	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzRename model ú to r‡   r%   s    r   ru   zRenameModel.describe¶  s   � Ø*.¯-«-¸¿ºÐGÐGr   c                 ó:   — d| j                   ›d| j                  ›�S ©NÚrename_rB   )rŒ   r±   r%   s    r   rx   z#RenameModel.migration_name_fragment¹  s   � à!%×!4Ó!4°d×6IÒ6IÐJÐJr   c                 óþ   •— t        |t        «      r:| j                  |j                  k(  r!t        | j                  |j
                  «      gS t        t        | �#  ||«      xs |j                  | j
                  |«       S r   )
rJ   r‹   r±   rŒ   rˆ   r‰   r,   r   r-   r*   r/   s      €r   r-   zRenameModel.reduce½  s~   ø€ ä�y¤+Ô.Ø×#Ñ# y×'?Ñ'?Ò?ô Ø—M‘MØ×&Ñ&óðð ô ”^ TÑ1Ø�yó
ò Fà×+Ñ+¨D¯M©M¸9ÓEÐEð	Fr   )r3   r4   r5   r�   r"   r	   rŒ   r±   rT   r\   rj   ro   r*   ru   rŸ   rx   r-   r6   r7   s   @r   r‹   r‹   X  sw   ø„ Ùô#ð
 ñ%ó ð%ð ñ%ó ð%ò9òDò.ò`Dò
ò
Hð ñKó ðK÷Fð Fr   r‹   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚModelOptionOperationc                 ó”   •— t        || j                  t        f«      r| j                  |j                  k(  r|gS t        ‰| �  ||«      S r   )rJ   r1   rŠ   r&   r,   r-   r/   s      €r   r-   zModelOptionOperation.reduceÐ  sA   ø€ ä�y 4§>¡>´;Ð"?Ô@Ø—‘ 9×#7Ñ#7Ò7à�;ÐÜ‰w‰~˜i¨Ó3Ð3r   )r3   r4   r5   r-   r6   r7   s   @r   rÕ   rÕ   Ï  s   ø„ ÷4ð 4r   rÕ   c                   óP   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zˆ xZS )	ÚAlterModelTablezRename a model's table.c                 ó2   •— || _         t        ‰| �	  |«       y r   )Útabler,   r"   )r!   r    rÚ   r1   s      €r   r"   zAlterModelTable.__init__Ü  s   ø€ ØˆŒ
Ü‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N©r    rÚ   )r    rÚ   r1   r5   rR   s     r   rT   zAlterModelTable.deconstructà  s0   € à—I‘IØ—Z‘Zñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óV   — |j                  || j                  d| j                  i«       y )Nr¸   )Úalter_model_optionsr&   rÚ   rZ   s      r   r\   zAlterModelTable.state_forwardsç  s!   € Ø×!Ñ! )¨T¯_©_¸zÈ4Ï:É:Ð>VÕWr   c                 ó  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      �r@|j                   j                  || j                  «      }|j                  ||j                  j                  |j                  j                  «       t        |j                  j                  |j                  j                  «      D ]§  \  }}|j                  j                  j                  j                  sŒ1|j                  |j                  j                  |j                  j                  j                  j                  |j                  j                  j                  j                  «       Œ© y y r   )r_   r`   r    ra   rb   rc   r·   rG   r¸   r¾   r¿   rÀ   rÁ   rÂ   )	r!   r)   rf   rg   rh   rÄ   rÅ   rÉ   rÊ   s	            r   rj   z!AlterModelTable.database_forwardsê  s'  € Ø—M‘M×+Ñ+¨I°t·y±yÓAˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÕNØ"Ÿ™×1Ñ1°)¸T¿Y¹YÓGˆIØ×(Ñ(ØØ—‘×(Ñ(Ø—‘×(Ñ(ôô ),Ø—‘×2Ñ2°I·O±O×4VÑ4Vó)ò Ñ$�	˜9ð ×)Ñ)×1Ñ1×7Ñ7×DÓDØ!×0Ñ0Ø!×.Ñ.×6Ñ6Ø!×.Ñ.×6Ñ6×<Ñ<×EÑEØ!×.Ñ.×6Ñ6×<Ñ<×EÑEõñ	ð Or   c                 ó*   — | j                  ||||«      S r   ©rj   rÌ   s        r   ro   z"AlterModelTable.database_backwardsþ  ó   € Ø×%Ñ% i°À
ÈHÓUÐUr   c                 óZ   — d| j                   ›d| j                  �| j                  ›�S d›�S )NzRename table for rÏ   z	(default)rÜ   r%   s    r   ru   zAlterModelTable.describe  s6   � à�I‹IØŸ*™*Ð0ˆD�J‰JÐAð
ð 	
à6AÐAð
ð 	
r   c                 ó    — d| j                   z  S )Nzalter_%s_tablerw   r%   s    r   rx   z'AlterModelTable.migration_name_fragment  s   € à $§/¡/Ñ1Ð1r   )r3   r4   r5   r�   r"   rT   r\   rj   ro   ru   rŸ   rx   r6   r7   s   @r   rØ   rØ   Ù  s:   ø„ Ù!ôò9òXòò(Vò
ð ñ2ó ô2r   rØ   c                   óL   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Ze	d„ «       Z
ˆ xZS )ÚAlterModelTableCommentc                 ó2   •— || _         t        ‰| �	  |«       y r   )Útable_commentr,   r"   )r!   r    rè   r1   s      €r   r"   zAlterModelTableComment.__init__  s   ø€ Ø*ˆÔÜ‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r    rè   )r    rè   r1   r5   rR   s     r   rT   z"AlterModelTableComment.deconstruct  s2   € à—I‘IØ!×/Ñ/ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óV   — |j                  || j                  d| j                  i«       y )NÚdb_table_comment)rÞ   r&   rè   rZ   s      r   r\   z%AlterModelTableComment.state_forwards  s'   € Ø×!Ñ!Ø�t—‘Ð);¸T×=OÑ=OÐ(Põ	
r   c                 ó`  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rb|j                   j                  || j                  «      }|j                  ||j                  j                  |j                  j                  «       y y r   )	r_   r`   r    ra   rb   rc   Úalter_db_table_commentrG   rë   )r!   r)   rf   rg   rh   rÄ   rÅ   s          r   rj   z(AlterModelTableComment.database_forwards  sƒ   € Ø—M‘M×+Ñ+¨I°t·y±yÓAˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÔNØ"Ÿ™×1Ñ1°)¸T¿Y¹YÓGˆIØ×0Ñ0ØØ—‘×0Ñ0Ø—‘×0Ñ0õð Or   c                 ó*   — | j                  ||||«      S r   rá   rÌ   s        r   ro   z)AlterModelTableComment.database_backwards'  râ   r   c                 ó"   — d| j                   › d�S )NúAlter z table commentr   r%   s    r   ru   zAlterModelTableComment.describe*  s   € Ø˜Ÿ	™	�{ .Ð1Ð1r   c                 ó"   — d| j                   › d�S )NÚalter_Ú_table_commentrw   r%   s    r   rx   z.AlterModelTableComment.migration_name_fragment-  s   € à˜Ÿ™Ð(¨Ð7Ð7r   )r3   r4   r5   r"   rT   r\   rj   ro   ru   rŸ   rx   r6   r7   s   @r   ræ   ræ     s6   ø„ ôò9ò
ò
òVò2ð ñ8ó ô8r   ræ   c                   óp   ‡ — e Zd ZdZˆ fd„Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zed
„ «       Zˆ fd„Zˆ xZS )r‘   Nc                 ó~   •— |rt        t        |«      «      }t        | | j                  |«       t        ‰| �  |«       y r   )r   r   Úsetattrr’   r,   r"   )r!   r    r“   r1   s      €r   r"   z%AlterTogetherOptionOperation.__init__5  s5   ø€ ÙÜÔ1°,Ó?Ó@ˆLÜ��d×&Ñ&¨Ô5Ü‰Ñ˜Õr   c                 ó.   — t        | | j                  «      S r   )Úgetattrr’   r%   s    r   r“   z)AlterTogetherOptionOperation.option_value;  s   € ä�t˜T×-Ñ-Ó.Ð.r   c                 ó|   — d| j                   | j                  | j                  i}| j                  j                  g |fS r¢   )r    r’   r“   r1   r5   rR   s     r   rT   z(AlterTogetherOptionOperation.deconstruct?  s<   € à�D—I‘IØ×Ñ˜d×/Ñ/ð
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 ój   — |j                  || j                  | j                  | j                  i«       y r   )rÞ   r&   r’   r“   rZ   s      r   r\   z+AlterTogetherOptionOperation.state_forwardsF  s.   € Ø×!Ñ!ØØ�O‰OØ×Ñ˜t×0Ñ0Ð1õ	
r   c           
      óÌ  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r˜|j                   j                  || j                  «      }t        |d| j                  z  «      } ||t        |j                  | j                  t        «       «      t        |j                  | j                  t        «       «      «       y y )Nzalter_%s)
r_   r`   r    ra   rb   rc   rø   r’   rG   r   )r!   r)   rf   rg   rh   rÄ   rÅ   Úalter_togethers           r   rj   z.AlterTogetherOptionOperation.database_forwardsM  sª   € Ø—M‘M×+Ñ+¨I°t·y±yÓAˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÔNØ"Ÿ™×1Ñ1°)¸T¿Y¹YÓGˆIÜ$ ]°JÀ×AQÑAQÑ4QÓRˆNÙØÜ˜	Ÿ™¨×)9Ñ)9¼3»5ÓAÜ˜	Ÿ™¨×)9Ñ)9¼3»5ÓAõð Or   c                 ó*   — | j                  ||||«      S r   rá   rÌ   s        r   ro   z/AlterTogetherOptionOperation.database_backwardsX  râ   r   c                 ó†   ‡— | j                  ||«      xr- | j                   xs t        ˆfd„| j                  D «       «      S )Nc              3   ó&   •K  — | ]  }‰|v –— Œ
 y ­wr   r?   )rA   r:   r    s     €r   rC   z@AlterTogetherOptionOperation.references_field.<locals>.<genexpr>^  s   øè ø€ ÒD¨�D˜F”NÑDùs   ƒ)r*   r“   Úany©r!   r»   r    r)   s     ` r   Úreferences_fieldz-AlterTogetherOptionOperation.references_field[  sC   ø€ Ø×$Ñ$ Z°Ó;ò 
Ø×!Ñ!Ð!ò EÜÓD°$×2CÑ2CÔDÓDð	
r   c           	      óp   — d| j                   ›d| j                  ›dt        | j                  xs d«      ›d�S )Nrð   z for z (rs   z constraint(s)))r’   r    Úlenr“   r%   s    r   ru   z%AlterTogetherOptionOperation.describea  s/   � à×ÓØ�I‹IÜ�×!Ñ!Ò' RÕ(ð
ð 	
r   c                 ó:   — d| j                   ›d| j                  ›�S )Nrò   rB   )r&   r’   r%   s    r   rx   z4AlterTogetherOptionOperation.migration_name_fragmenth  s   � à $§£°×1AÒ1AÐBÐBr   c                 óx   •— t         ‰| �  ||«      xs( t        |t        «      xr t	        |«      t	        | «      uS r   )r,   r.   rJ   r‘   Útyper/   s      €r   r.   z/AlterTogetherOptionOperation.can_reduce_throughl  s<   ø€ Ü‰wÑ)¨)°YÓ?ò 
Ü�yÔ">Ó?ò 2Ü�Y“¤t¨D£zÐ1ð	
r   )r3   r4   r5   r’   r"   r	   r“   rT   r\   rj   ro   r  ru   rŸ   rx   r.   r6   r7   s   @r   r‘   r‘   2  s`   ø„ Ø€Kôð ñ/ó ð/ò9ò
ò	òVò
ò
ð ñCó ðC÷
ð 
r   r‘   c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚAlterUniqueTogetherz|
    Change the value of unique_together to the target one.
    Input value of unique_together must be a set of tuples.
    r€   c                 ó&   •— t         ‰| �  ||«       y r   ©r,   r"   )r!   r    r€   r1   s      €r   r"   zAlterUniqueTogether.__init__{  s   ø€ Ü‰Ñ˜˜Õ/r   ©r3   r4   r5   r�   r’   r"   r6   r7   s   @r   r	  r	  s  s   ø„ ñð
 $€K÷0ð 0r   r	  c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚAlterIndexTogetherzz
    Change the value of index_together to the target one.
    Input value of index_together must be a set of tuples.
    r�   c                 ó&   •— t         ‰| �  ||«       y r   r  )r!   r    r�   r1   s      €r   r"   zAlterIndexTogether.__init__‡  s   ø€ Ü‰Ñ˜˜~Õ.r   r  r7   s   @r   r  r    s   ø„ ñð
 #€K÷/ð /r   r  c                   óZ   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zed
„ «       Zˆ xZS )r”   z9Represent a change with the order_with_respect_to option.r   c                 ó2   •— || _         t        ‰| �	  |«       y r   )r   r,   r"   )r!   r    r   r1   s      €r   r"   z AlterOrderWithRespectTo.__init__�  s   ø€ Ø%:ˆÔ"Ü‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N©r    r   )r    r   r1   r5   rR   s     r   rT   z#AlterOrderWithRespectTo.deconstruct”  s2   € à—I‘IØ%)×%?Ñ%?ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 ój   — |j                  || j                  | j                  | j                  i«       y r   )rÞ   r&   r’   r   rZ   s      r   r\   z&AlterOrderWithRespectTo.state_forwards›  s.   € Ø×!Ñ!ØØ�O‰OØ×Ñ˜t×9Ñ9Ð:õ	
r   c                 ó~  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rñ|j                   j                  || j                  «      }|j                  j                  rB|j                  j                  s,|j                  ||j                  j                  d«      «       y |j                  j                  r\|j                  j                  sE|j                  j                  d«      }|j                  «       sd|_        |j                  ||«       y y y y )NÚ_orderr   )r_   r`   r    ra   rb   rc   rG   r   Úremove_fieldr¼   Úhas_defaultÚdefaultÚ	add_field)r!   r)   rf   rg   rh   Úto_modelÚ
from_modelr}   s           r   rj   z)AlterOrderWithRespectTo.database_forwards¢  sý   € Ø—=‘=×*Ñ*¨9°d·i±iÓ@ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀHÔMØ#Ÿ™×2Ñ2°9¸d¿i¹iÓHˆJð × Ñ ×6Ò6Ø Ÿ™×<Ò<à×*Ñ*Ø 
× 0Ñ 0× :Ñ :¸8Ó Dõð —‘×4Ò4Ø"×(Ñ(×>Ò>à Ÿ™×0Ñ0°Ó:�Ø×(Ñ(Ô*Ø$%�E”MØ×'Ñ'ØØõð ?ð 5ð Nr   c                 ó,   — | j                  ||||«       y r   rá   rÌ   s        r   ro   z*AlterOrderWithRespectTo.database_backwards¼  s   € Ø×Ñ˜y¨-¸ÀXÕNr   c                 óh   — | j                  ||«      xr | j                  d u xs || j                  k(  S r   )r*   r   r  s       r   r  z(AlterOrderWithRespectTo.references_field¿  s:   € Ø×$Ñ$ Z°Ó;ò 
Ø×&Ñ&¨$Ð.ÒT°$¸$×:TÑ:TÑ2Tð	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzSet order_with_respect_to on rÏ   r  r%   s    r   ru   z AlterOrderWithRespectTo.describeÄ  s   � à�I‹IØ×&Ò&ð
ð 	
r   c                 ó    — d| j                   z  S )Nzalter_%s_order_with_respect_torw   r%   s    r   rx   z/AlterOrderWithRespectTo.migration_name_fragmentÊ  s   € à/°$·/±/ÑAÐAr   )r3   r4   r5   r�   r’   r"   rT   r\   rj   ro   r  ru   rŸ   rx   r6   r7   s   @r   r”   r”   ‹  sE   ø„ ÙCà)€Kôò9ò
òò4Oò
ò

ð ñBó ôBr   r”   c                   óX   ‡ — e Zd ZdZg d¢Zˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zˆ xZS )
r�   z±
    Set new model options that don't directly affect the database schema
    (like verbose_name, permissions, ordering). Python code in migrations
    may still need them.
    )Úbase_manager_nameÚdefault_manager_nameÚdefault_related_nameÚget_latest_byÚmanagedÚorderingÚpermissionsÚdefault_permissionsÚselect_on_saveÚverbose_nameÚverbose_name_pluralc                 ó2   •— || _         t        ‰| �	  |«       y r   )r;   r,   r"   )r!   r    r;   r1   s      €r   r"   zAlterModelOptions.__init__å  s   ø€ ØˆŒÜ‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r    r;   )r    r;   r1   r5   rR   s     r   rT   zAlterModelOptions.deconstructé  s0   € à—I‘IØ—|‘|ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óh   — |j                  || j                  | j                  | j                  «       y r   )rÞ   r&   r;   rŽ   rZ   s      r   r\   z AlterModelOptions.state_forwardsð  s*   € Ø×!Ñ!ØØ�O‰OØ�L‰LØ×"Ñ"õ		
r   c                  ó   — y r   r?   rÌ   s        r   rj   z#AlterModelOptions.database_forwardsø  ó   € Ør   c                  ó   — y r   r?   rÌ   s        r   ro   z$AlterModelOptions.database_backwardsû  r1  r   c                 ó    — d| j                   z  S )NzChange Meta options on %sr   r%   s    r   ru   zAlterModelOptions.describeþ  s   € Ø*¨T¯Y©YÑ6Ð6r   c                 ó    — d| j                   z  S )Nzalter_%s_optionsrw   r%   s    r   rx   z)AlterModelOptions.migration_name_fragment  s   € à! D§O¡OÑ3Ð3r   )r3   r4   r5   r�   rŽ   r"   rT   r\   rj   ro   ru   rŸ   rx   r6   r7   s   @r   r�   r�   Ï  sB   ø„ ñòÐôò9ò
òòò7ð ñ4ó ô4r   r�   c                   óV   ‡ — e Zd ZdZdgZˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zˆ xZS )
r�   zAlter the model's managers.r<   c                 ó2   •— || _         t        ‰| �	  |«       y r   )r<   r,   r"   )r!   r    r<   r1   s      €r   r"   zAlterModelManagers.__init__  s   ø€ Ø ˆŒÜ‰Ñ˜Õr   c                 ó`   — | j                   j                  | j                  | j                  gi fS r   )r1   r5   r    r<   r%   s    r   rT   zAlterModelManagers.deconstruct  s&   € Ø—‘×+Ñ+¨d¯i©i¸¿¹Ð-GÈÐLÐLr   c                 óR   — |j                  || j                  | j                  «       y r   )Úalter_model_managersr&   r<   rZ   s      r   r\   z!AlterModelManagers.state_forwards  s   € Ø×"Ñ" 9¨d¯o©o¸t¿}¹}ÕMr   c                  ó   — y r   r?   rÌ   s        r   rj   z$AlterModelManagers.database_forwards  r1  r   c                  ó   — y r   r?   rÌ   s        r   ro   z%AlterModelManagers.database_backwards  r1  r   c                 ó    — d| j                   z  S )NzChange managers on %sr   r%   s    r   ru   zAlterModelManagers.describe  s   € Ø&¨¯©Ñ2Ð2r   c                 ó    — d| j                   z  S )Nzalter_%s_managersrw   r%   s    r   rx   z*AlterModelManagers.migration_name_fragment  s   € à" T§_¡_Ñ4Ð4r   )r3   r4   r5   r�   rž   r"   rT   r\   rj   ro   ru   rŸ   rx   r6   r7   s   @r   r�   r�     sB   ø„ Ù%à!+ ÐôòMòNòòò3ð ñ5ó ô5r   r�   c                   ó    — e Zd ZdZed„ «       Zy)ÚIndexOperationÚindexesc                 ó6   — | j                   j                  «       S r   )r»   r$   r%   s    r   r•   zIndexOperation.model_name_lower&  s   € à�‰×$Ñ$Ó&Ð&r   N)r3   r4   r5   r’   r	   r•   r?   r   r   r?  r?  #  s   „ Ø€Kàñ'ó ñ'r   r?  c                   óD   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zy	)
ÚAddIndexzAdd an index on a model.c                 óT   — || _         |j                  st        d|z  «      ‚|| _        y )NzSIndexes passed to AddIndex operations require a name argument. %r doesn't have one.)r»   r    r   Úindex)r!   r»   rE  s      r   r"   zAddIndex.__init__.  s3   € Ø$ˆŒØ�zŠzÜð1Ø38ñ9óð ð ˆ�
r   c                 óR   — |j                  || j                  | j                  «       y r   )Ú	add_indexr•   rE  rZ   s      r   r\   zAddIndex.state_forwards7  s   € Ø�‰˜	 4×#8Ñ#8¸$¿*¹*ÕEr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r_   r`   r»   ra   rb   rc   rG  rE  re   s         r   rj   zAddIndex.database_forwards:  sR   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×#Ñ# E¨4¯:©:Õ6ð Kr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r_   r`   r»   ra   rb   rc   Úremove_indexrE  re   s         r   ro   zAddIndex.database_backwards?  sR   € Ø—‘×)Ñ)¨)°T·_±_ÓEˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& u¨d¯j©jÕ9ð Kr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r»   rE  )r»   rE  r1   r5   rR   s     r   rT   zAddIndex.deconstructD  s6   € àŸ/™/Ø—Z‘Zñ
ˆð
 �N‰N×'Ñ'ØØð
ð 	
r   c                 ó–  — | j                   j                  rcd| j                   j                  ›ddj                  | j                   j                  D �cg c]  }t	        |«      ‘Œ c}«      ›d| j
                  ›�S d| j                   j                  ›ddj                  | j                   j                  «      ›d| j
                  ›�S c c}w )NzCreate index ú on ú, ú
 on model z on field(s) z
 of model )rE  Úexpressionsr    ÚjoinrK   r»   r:   )r!   Ú
expressions     r   ru   zAddIndex.describeO  s�   € Ø�:‰:×!Ó!à—
‘
—“Ø—	‘	¸T¿Z¹Z×=SÑ=SÖT¨zœ3˜z�?ÒTÕUØ—’ðð ð "ð �J‰J�O‹OØ�I‰I�d—j‘j×'Ñ'Õ(Ø�OŠOð
ð 	
ùò Us   ÁCc                 óh   — | j                   ›d| j                  j                  j                  «       ›�S ©NrB   )r•   rE  r    r$   r%   s    r   rx   z AddIndex.migration_name_fragment\  s$   € à×/Ó/°·±·±×1FÑ1FÔ1HÐIÐIr   N©r3   r4   r5   r�   r"   r\   rj   ro   rT   ru   rŸ   rx   r?   r   r   rC  rC  +  s:   „ Ù"òòFò7ò
:ò
	
ò
ð ñJó ñJr   rC  c                   óD   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zy	)
ÚRemoveIndexzRemove an index from a model.c                 ó    — || _         || _        y r   ©r»   r    ©r!   r»   r    s      r   r"   zRemoveIndex.__init__d  ó   € Ø$ˆŒØˆ�	r   c                 óR   — |j                  || j                  | j                  «       y r   )rJ  r•   r    rZ   s      r   r\   zRemoveIndex.state_forwardsh  s   € Ø×Ñ˜9 d×&;Ñ&;¸T¿Y¹YÕGr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r_   r`   r»   ra   rb   rc   r   r•   Úget_index_by_namer    rJ  )r!   r)   rf   rg   rh   ri   Úfrom_model_staterE  s           r   rj   zRemoveIndex.database_forwardsk  s~   € Ø—‘×)Ñ)¨)°T·_±_ÓEˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ)×0Ñ0°¸D×<QÑ<QÐ1QÑRÐØ$×6Ñ6°t·y±yÓAˆEØ×&Ñ& u¨eÕ4ð Kr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r_   r`   r»   ra   rb   rc   r   r•   r^  r    rG  )r!   r)   rf   rg   rh   ri   Úto_model_staterE  s           r   ro   zRemoveIndex.database_backwardsr  s{   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ%Ÿ_™_¨Y¸×8MÑ8MÐ-MÑNˆNØ"×4Ñ4°T·Y±YÓ?ˆEØ×#Ñ# E¨5Õ1ð Kr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS ©NrY  )r»   r    r1   r5   rR   s     r   rT   zRemoveIndex.deconstructy  s6   € àŸ/™/Ø—I‘Iñ
ˆð
 �N‰N×'Ñ'ØØð
ð 	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzRemove index z from ©r    r»   r%   s    r   ru   zRemoveIndex.describe„  s   � Ø,0¯I«I°t·²ÐGÐGr   c                 óV   — d| j                   ›d| j                  j                  «       ›�S ©NÚremove_rB   ©r•   r    r$   r%   s    r   rx   z#RemoveIndex.migration_name_fragment‡  ó   � à!%×!6Ó!6¸¿	¹	¿¹Ô8IÐJÐJr   NrU  r?   r   r   rW  rW  a  s;   „ Ù'òòHò5ò2ò	
òHð ñKó ñKr   rW  c                   óx   ‡ — e Zd ZdZdd„Zed„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zed
„ «       Zˆ fd„Zˆ xZS )ÚRenameIndexzRename an index.c                 óx   — |s|st        d«      ‚|r|rt        d«      ‚|| _        || _        || _        || _        y )NzHRenameIndex requires one of old_name and old_fields arguments to be set.z;RenameIndex.old_name and old_fields are mutually exclusive.)r   r»   r‰   rˆ   Ú
old_fields)r!   r»   r‰   rˆ   rn  s        r   r"   zRenameIndex.__init__�  sN   € Ù¡
Üðóð ñ ™
ÜØMóð ð %ˆŒØ ˆŒØ ˆŒØ$ˆ�r   c                 ó6   — | j                   j                  «       S r   r­   r%   s    r   rŒ   zRenameIndex.old_name_lowerž  r®   r   c                 ó6   — | j                   j                  «       S r   r°   r%   s    r   r±   zRenameIndex.new_name_lower¢  r®   r   c                 óÒ   — | j                   | j                  dœ}| j                  r| j                  |d<   | j                  r| j                  |d<   | j                  j
                  g |fS )N)r»   r‰   rˆ   rn  )r»   r‰   rˆ   rn  r1   r5   rR   s     r   rT   zRenameIndex.deconstruct¦  sZ   € àŸ/™/ØŸ™ñ
ˆð �=Š=Ø!%§¡ˆF�:ÑØ�?Š?Ø#'§?¡?ˆF�<Ñ Ø—‘×+Ñ+¨R°Ð8Ð8r   c                 óz  — | j                   r}|j                  || j                  t        j                  | j                   | j
                  ¬«      «       |j                  || j                  t        j                  | j                   «       y |j                  || j                  | j                  | j
                  «       y )N©r:   r    )rn  rG  r•   r   ÚIndexr‰   Úremove_model_optionsr  r’   Úrename_indexrˆ   rZ   s      r   r\   zRenameIndex.state_forwards±  sŠ   € Ø�?Š?Ø�O‰OØØ×%Ñ%Ü—‘ D§O¡O¸$¿-¹-ÔHôð
 ×&Ñ&ØØ×%Ñ%Ü"×.Ñ.Ø—‘õ	ð ×ÑØ˜4×0Ñ0°$·-±-ÀÇÁõr   c           
      óÆ  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      sy | j                  rê|j                   j                  || j                  «      }| j                  D �cg c]'  }|j                  j                  |«      j                  ‘Œ) }}|j                  ||d¬«      }	t        |	«      dk7  rAt        dt        |	«      ›d|j                  j                  ›ddj                  |«      ›d�«      ‚t        j                   | j                  |	d	   ¬
«      }
n6|j                  || j"                  f   }|j%                  | j&                  «      }
|
j(                  | j*                  k(  ry |j                  || j"                  f   }|j%                  | j*                  «      }|j-                  ||
|«       y c c}w )NT)Úcolumn_namesrE  r
   zFound wrong number (z) of indexes for ú(rN  z).r   rs  )r_   r`   r»   ra   rb   rc   rn  rG   r¼   ÚcolumnÚ_constraint_namesr  r   r¸   rQ  r   rt  r•   r^  rˆ   r    r‰   rv  )r!   r)   rf   rg   rh   ri   r  r}   ÚcolumnsÚmatching_index_nameÚ	old_indexr_  ra  Ú	new_indexs                 r   rj   zRenameIndex.database_forwardsÃ  s¡  € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×'Ñ'¨×(@Ñ(@×(FÑ(FÈÔNØà�?Š?Ø#Ÿ™×2Ñ2°9¸d¿o¹oÓNˆJàFJÇoÁoöØ=B�
× Ñ ×*Ñ*¨5Ó1×8Ó8ðˆGð ð #0×"AÑ"AØ¨¸ð #Bó #Ðô Ð&Ó'¨1Ò,Ý ô Ð/Õ0Ø"×(Ñ(×1Ó1ØŸ	™	 'Õ*ð	óð ô Ÿ™Ø—‘Ø(¨Ñ+ô‰Ið
  *×0Ñ0°¸D×<QÑ<QÐ1QÑRÐØ(×:Ñ:¸4¿=¹=ÓIˆIà�>‰>˜TŸ]™]Ò*Øà!Ÿ™¨°D×4IÑ4IÐ)IÑJˆØ"×4Ñ4°T·]±]ÓCˆ	Ø×"Ñ" 5¨)°YÕ?ùò9s   Â,Gc                 ó^  — | j                   ry | j                  | j                  c| _        | _        | j                  | j                  c| _        | _        | j                  ||||«       | j                  | j                  c| _        | _        | j                  | j                  c| _        | _        y r   )rn  rŒ   r±   rˆ   r‰   rj   rÌ   s        r   ro   zRenameIndex.database_backwardsè  sš   € Ø�?Š?àð ×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t”}à×Ñ˜y¨-¸ÀXÔNð ×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t•}r   c                 ó¾   — | j                   r)d| j                   › d| j                  › d| j                  › �S d| j                  › d| j                  › d| j                  › �S )NzRename index rM  rÏ   zRename unnamed index for )rˆ   r»   r‰   rn  r%   s    r   ru   zRenameIndex.describeû  s_   € Ø�=Š=à §¡˜¨d°4·?±?Ð2CÀ4ÈÏÉÀÐWðð (¨¯©Ð'8¸¸T¿_¹_Ð<MÈTØ�}‰}ˆoðð	
r   c                 óÂ   — | j                   rd| j                  ›d| j                  ›�S d| j                  ›ddj	                  | j
                  «      ›d| j                  ›�S rÑ   )rˆ   rŒ   r±   r•   rQ  rn  r%   s    r   rx   z#RenameIndex.migration_name_fragment  sS   € à�=‹=Ø%)×%8Ó%8¸$×:MÒ:MÐNÐNð ð ×!Ó!Ø�H‰H�T—_‘_Õ%Ø×Òð
ð 	
r   c                 ó0  •— t        |t        «      rv| j                  |j                  k(  r]|j                  rQ| j                  |j
                  k(  r8t        | j                  |j                  | j                  | j                  ¬«      gS t        ‰| �)  ||«      S )N)r‰   rˆ   rn  )rJ   rl  r•   rˆ   r±   rŒ   r»   r‰   rn  r,   r-   r/   s      €r   r-   zRenameIndex.reduce  sƒ   ø€ ä�y¤+Ô.Ø×%Ñ%¨×)CÑ)CÒCØ×"Ò"Ø×#Ñ# y×'?Ñ'?Ò?ô Ø—O‘OØ&×/Ñ/Ø!Ÿ]™]Ø#Ÿ™ô	ðð ô ‰w‰~˜i¨Ó3Ð3r   )NN)r3   r4   r5   r�   r"   r	   rŒ   r±   rT   r\   rj   ro   ru   rŸ   rx   r-   r6   r7   s   @r   rl  rl  Œ  sm   ø„ Ùó%ð ñ%ó ð%ð ñ%ó ð%ò	9òò$#@òJDò&
ð ñ
ó ð
÷4ð 4r   rl  c                   óD   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zy	)
ÚAddConstraintÚconstraintsc                 ó    — || _         || _        y r   ©r»   Ú
constraint)r!   r»   r‰  s      r   r"   zAddConstraint.__init__$  s   € Ø$ˆŒØ$ˆ�r   c                 óR   — |j                  || j                  | j                  «       y r   )Úadd_constraintr•   r‰  rZ   s      r   r\   zAddConstraint.state_forwards(  s   € Ø×Ñ˜Y¨×(=Ñ(=¸t¿¹ÕOr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r_   r`   r»   ra   rb   rc   r‹  r‰  re   s         r   rj   zAddConstraint.database_forwards+  sR   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×(Ñ(¨°·±Õ@ð Kr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r_   r`   r»   ra   rb   rc   Úremove_constraintr‰  re   s         r   ro   z AddConstraint.database_backwards0  sR   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×+Ñ+¨E°4·?±?ÕCð Kr   c                 ób   — | j                   j                  g | j                  | j                  dœfS )Nrˆ  )r1   r3   r»   r‰  r%   s    r   rT   zAddConstraint.deconstruct5  s/   € à�N‰N×#Ñ#Øà"Ÿo™oØ"Ÿo™oñð
ð 	
r   c                 óN   — d| j                   j                  ›d| j                  ›�S )NzCreate constraint rO  )r‰  r    r»   r%   s    r   ru   zAddConstraint.describe?  s    � à�O‰O× Ó Ø�OŠOð
ð 	
r   c                 óh   — | j                   ›d| j                  j                  j                  «       ›�S rT  )r•   r‰  r    r$   r%   s    r   rx   z%AddConstraint.migration_name_fragmentE  s&   € à×/Ó/°·±×1EÑ1E×1KÑ1KÔ1MÐNÐNr   N©r3   r4   r5   r’   r"   r\   rj   ro   rT   ru   rŸ   rx   r?   r   r   r…  r…  !  s>   „ Ø€Kò%òPòAò
Dò

ò
ð ñOó ñOr   r…  c                   óD   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zy	)
ÚRemoveConstraintr†  c                 ó    — || _         || _        y r   rY  rZ  s      r   r"   zRemoveConstraint.__init__M  r[  r   c                 óR   — |j                  || j                  | j                  «       y r   )rŽ  r•   r    rZ   s      r   r\   zRemoveConstraint.state_forwardsQ  s   € Ø×Ñ 	¨4×+@Ñ+@À$Ç)Á)ÕLr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r_   r`   r»   ra   rb   rc   r   r•   Úget_constraint_by_namer    rŽ  )r!   r)   rf   rg   rh   ri   r_  r‰  s           r   rj   z"RemoveConstraint.database_forwardsT  s~   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ)×0Ñ0°¸D×<QÑ<QÐ1QÑRÐØ)×@Ñ@ÀÇÁÓKˆJØ×+Ñ+¨E°:Õ>ð Kr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r_   r`   r»   ra   rb   rc   r   r•   r˜  r    r‹  )r!   r)   rf   rg   rh   ri   ra  r‰  s           r   ro   z#RemoveConstraint.database_backwards[  s{   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ%Ÿ_™_¨Y¸×8MÑ8MÐ-MÑNˆNØ'×>Ñ>¸t¿y¹yÓIˆJØ×(Ñ(¨°
Õ;ð Kr   c                 ób   — | j                   j                  g | j                  | j                  dœfS rc  )r1   r3   r»   r    r%   s    r   rT   zRemoveConstraint.deconstructb  s/   € à�N‰N×#Ñ#Øà"Ÿo™oØŸ	™	ñð
ð 	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzRemove constraint z from model re  r%   s    r   ru   zRemoveConstraint.describel  s   � Ø7;·y³yÀ$Ç/Â/ÐRÐRr   c                 óV   — d| j                   ›d| j                  j                  «       ›�S rg  ri  r%   s    r   rx   z(RemoveConstraint.migration_name_fragmento  rj  r   Nr’  r?   r   r   r”  r”  J  s=   „ Ø€KòòMò?ò<ò
òSð ñKó ñKr   r”  N)'Ú	django.dbr   Ú$django.db.migrations.operations.baser   Údjango.db.migrations.stater   Údjango.db.migrations.utilsr   r   Údjango.db.models.optionsr   Údjango.utils.functionalr	   r:   r   r   r   r   r   r   r   r9   rŠ   r‹   rÕ   rØ   ræ   r‘   r	  r  r”   r�   r�   r?  rC  rW  rl  r…  r”  r?   r   r   ú<module>r£     s0  ðÝ Ý :Ý 1ß IÝ 7Ý 3ç RÕ RòôD�Yô Dô(I4�.ô I4ôX -�.ô  -ôFtF�.ô tFôn4˜>ô 4ô02Ð*ô 02ôf#8Ð1ô #8ôL>
Ð#7ô >
ôB	0Ð6ô 	0ô	/Ð5ô 	/ôABÐ2ô ABôH44Ð,ô 44ôn5Ð-ô 5ô:'�Yô 'ô3Jˆ~ô 3Jôl(K�.ô (KôVR4�.ô R4ôj&O�Nô &OôR'K�~õ 'Kr   