Ë
    *CàeÞ1  ã                   óÚ   — d dl mZ ddlmZmZ ddlmZmZ  G d„ d«      Z G d„ d«      Z	 G d	„ d
«      Z
 G d„ d«      Z G d„ d«      Z G d„ d«      Ze G d„ d«      «       Z G d„ d«      Zy)é    )Ú	dataclassé   )ÚffiÚlib)Ú_string_realloc_call_no_errorÚNetplanExceptionc            	       ó&  — e Zd Zd„ Zdd defd„Zd!dedededefd	„Zed"d
„«       Z	edefd„«       Z
edefd„«       Zedefd„«       Zed#d„«       Zed$d„«       Zed%d„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Z edefd„«       Z!edefd „«       Z"y)&ÚNetDefinitionc                 ó    — || _         || _        y ©N)Ú_ptrÚ_parent)ÚselfÚnp_stateÚptrs      ú0/usr/lib/python3/dist-packages/netplan/netdef.pyÚ__init__zNetDefinition.__init__   s   € ØˆŒ	ð  ˆ�ó    ÚotherÚreturnc                 óN   — t        |d«      sy| j                  |j                  k(  S )Nr   F)Úhasattrr   )r   r   s     r   Ú__eq__zNetDefinition.__eq__   s"   € Ü�u˜fÔ%ØØ�y‰y˜EŸJ™JÑ&Ð&r   NÚ
iface_nameÚiface_driverÚ	iface_macc           
      ó.  — t        t        j                  | j                  |r|j	                  d«      nt
        j                  |r|j	                  d«      nt
        j                  |r|j	                  d«      «      «      S t
        j                  «      «      S ©Núutf-8)Úboolr   Únetplan_netdef_match_interfacer   Úencoder   ÚNULL)r   r   r   r   s       r   Ú_match_interfacezNetDefinition._match_interface"   s~   € Ü”C×6Ñ6Ø�I‰IÙ*4ˆJ×Ñ˜gÔ&¼#¿(¹(Ù)2ˆI×Ñ˜WÔ%¼¿¹Ù,8ˆL×Ñ Ó(ó	Hó Ið 	Iô ?B¿h¹hó	Hó Ið 	Ir   c                 ó,   — t        | j                  «      S r   )Ú_NetdefAddressIteratorr   ©r   s    r   Ú	addresseszNetDefinition.addresses)   s   € ä% d§i¡iÓ0Ð0r   c                 óR   — t        t        j                  | j                  «      «      S r   )r    r   Únetplan_netdef_get_dhcp4r   r'   s    r   Údhcp4zNetDefinition.dhcp4-   ó   € ä”C×0Ñ0°·±Ó;Ó<Ð<r   c                 óR   — t        t        j                  | j                  «      «      S r   )r    r   Únetplan_netdef_get_dhcp6r   r'   s    r   Údhcp6zNetDefinition.dhcp61   r,   r   c                 óî   — g }t        t        j                  | j                  «      «      r|j	                  d«       t        t        j
                  | j                  «      «      r|j	                  d«       |S )NÚipv4Úipv6)r    r   Ú"netplan_netdef_get_link_local_ipv4r   ÚappendÚ"netplan_netdef_get_link_local_ipv6)r   Ú	linklocals     r   Ú
link_localzNetDefinition.link_local5   sW   € àˆ	Ü”×6Ñ6°t·y±yÓAÔBØ×Ñ˜VÔ$Ü”×6Ñ6°t·y±yÓAÔBØ×Ñ˜VÔ$ØÐr   c                 ó,   — t        | j                  «      S r   )Ú_NetdefNameserverIteratorr   r'   s    r   Únameserver_addressesz"NetDefinition.nameserver_addresses>   s   € ä(¨¯©Ó3Ð3r   c                 ó,   — t        | j                  «      S r   )Ú_NetdefSearchDomainIteratorr   r'   s    r   Únameserver_searchzNetDefinition.nameserver_searchB   s   € ä*¨4¯9©9Ó5Ð5r   c                 ó,   — t        | j                  «      S r   )Ú_NetdefRouteIteratorr   r'   s    r   ÚrouteszNetDefinition.routesF   s   € ä# D§I¡IÓ.Ð.r   c                 ó    ‡ — t        ˆ fd„«      S )Nc                 óX   •— t        j                  ‰j                  | t        | «      «      S r   )r   Únetplan_netdef_get_macaddressr   Úlen©Úbr   s    €r   ú<lambda>z*NetDefinition.macaddress.<locals>.<lambda>L   ó%   ø€ ´s×7XÑ7XÐY]×YbÑYbÐdeÔgjÐklÓgmÓ7n€ r   ©r   r'   s   `r   Ú
macaddresszNetDefinition.macaddressJ   ó   ø€ ä,Ó-nÓoÐor   c                 óR   — t        t        j                  | j                  «      «      S r   )r    r   Únetplan_netdef_has_matchr   r'   s    r   Ú
_has_matchzNetDefinition._has_matchN   r,   r   c                 ó    ‡ — t        ˆ fd„«      S )Nc                 óX   •— t        j                  ‰j                  | t        | «      «      S r   )r   Únetplan_netdef_get_set_namer   rD   rE   s    €r   rG   z(NetDefinition.set_name.<locals>.<lambda>T   ó%   ø€ ´s×7VÑ7VÐW[×W`ÑW`ÐbcÔehÐijÓekÓ7l€ r   rI   r'   s   `r   Úset_namezNetDefinition.set_nameR   ó   ø€ ä,Ó-lÓmÐmr   c                 óR   — t        t        j                  | j                  «      «      S r   )r    r   Ú_netplan_netdef_get_criticalr   r'   s    r   ÚcriticalzNetDefinition.criticalV   s   € ä”C×4Ñ4°T·Y±YÓ?Ó@Ð@r   c                 óÒ  — t        «       }t        j                  | j                  «      x}rt	        | j
                  |«      |d<   t        j                  | j                  «      x}rt	        | j
                  |«      |d<   t        j                  | j                  «      x}rt	        | j
                  |«      |d<   t        j                  | j                  «      x}rt	        | j
                  |«      |d<   t        j                  | j                  «      x}rt	        | j
                  |«      |d<   t        j                  | j                  «      x}rt	        | j
                  |«      |d<   |S )NÚsriovÚvlanÚbridgeÚbondÚvrfÚpeer)Údictr   Únetplan_netdef_get_sriov_linkr   r
   r   Únetplan_netdef_get_vlan_linkÚnetplan_netdef_get_bridge_linkÚnetplan_netdef_get_bond_linkÚnetplan_netdef_get_vrf_linkÚnetplan_netdef_get_peer_link)r   ÚdÚ
sriov_linkÚ	vlan_linkÚbridge_linkÚ	bond_linkÚvrf_linkÚ	peer_links           r   ÚlinkszNetDefinition.linksZ   s$  € ä‹FˆÜ×:Ñ:¸4¿9¹9ÓEÐEˆ:ÐEÜ& t§|¡|°ZÓ@ˆAˆg‰Jä×8Ñ8¸¿¹ÓCÐCˆ9ÐCÜ% d§l¡l°IÓ>ˆAˆf‰Iä×<Ñ<¸T¿Y¹YÓGÐGˆ;ÐGÜ'¨¯©°kÓBˆAˆh‰Kä×8Ñ8¸¿¹ÓCÐCˆ9ÐCÜ% d§l¡l°IÓ>ˆAˆf‰Iä×6Ñ6°t·y±yÓAÐAˆ8ÐAÜ$ T§\¡\°8Ó<ˆAˆe‰Hô ×8Ñ8¸¿¹ÓCÐCˆ9ÐCÜ% d§l¡l°IÓ>ˆAˆf‰IØˆr   c                 ól   — t        j                  | j                  «      }|t         j                  k(  ry |S r   )r   Ú_netplan_netdef_get_vlan_idr   ÚUINT_MAX)r   Úvlan_ids     r   Ú_vlan_idzNetDefinition._vlan_idq   s*   € ä×1Ñ1°$·)±)Ó<ˆØ”c—l‘lÒ"ØØˆr   c                 óR   — t        t        j                  | j                  «      «      S r   )r    r   Ú%_netplan_netdef_get_sriov_vlan_filterr   r'   s    r   Ú_has_sriov_vlan_filterz$NetDefinition._has_sriov_vlan_filterx   s   € ä”C×=Ñ=¸d¿i¹iÓHÓIÐIr   c                 óª   — t        j                  t        j                  t        j                  | j
                  «      «      «      j                  d«      S r   )r   Ústringr   Únetplan_backend_nameÚnetplan_netdef_get_backendr   Údecoder'   s    r   ÚbackendzNetDefinition.backend|   s:   € ä�z‰zœ#×2Ñ2´3×3QÑ3QÐRV×R[ÑR[Ó3\Ó]Ó^×eÑeÐfmÓnÐnr   c                 óª   — t        j                  t        j                  t        j                  | j
                  «      «      «      j                  d«      S r   )r   rw   r   Únetplan_def_type_nameÚnetplan_netdef_get_typer   rz   r'   s    r   ÚtypezNetDefinition.type€   s:   € ä�z‰zœ#×3Ñ3´C×4OÑ4OÐPT×PYÑPYÓ4ZÓ[Ó\×cÑcÐdkÓlÐlr   c                 ó    ‡ — t        ˆ fd„«      S )Nc                 óX   •— t        j                  ‰j                  | t        | «      «      S r   )r   Únetplan_netdef_get_idr   rD   rE   s    €r   rG   z"NetDefinition.id.<locals>.<lambda>†   s%   ø€ ´s×7PÑ7PÐQU×QZÑQZÐ\]Ô_bÐcdÓ_eÓ7f€ r   rI   r'   s   `r   ÚidzNetDefinition.id„   s   ø€ ä,Ó-fÓgÐgr   c                 ó    ‡ — t        ˆ fd„«      S )Nc                 óX   •— t        j                  ‰j                  | t        | «      «      S r   )r   Únetplan_netdef_get_filepathr   rD   rE   s    €r   rG   z(NetDefinition.filepath.<locals>.<lambda>Š   rR   r   rI   r'   s   `r   ÚfilepathzNetDefinition.filepathˆ   rT   r   c                 ó    ‡ — t        ˆ fd„«      S )Nc                 óX   •— t        j                  ‰j                  | t        | «      «      S r   )r   Ú(_netplan_netdef_get_embedded_switch_moder   rD   rE   s    €r   rG   z5NetDefinition._embedded_switch_mode.<locals>.<lambda>Ž   s%   ø€ ´s×7cÑ7cÐdh×dmÑdmÐopÔruÐvwÓrxÓ7y€ r   rI   r'   s   `r   Ú_embedded_switch_modez#NetDefinition._embedded_switch_modeŒ   s   ø€ ä,Ó-yÓzÐzr   c                 óR   — t        t        j                  | j                  «      «      S r   )r    r   Ú2_netplan_netdef_get_delay_virtual_functions_rebindr   r'   s    r   Ú_delay_virtual_functions_rebindz-NetDefinition._delay_virtual_functions_rebind�   s   € ä”C×JÑJÈ4Ï9É9ÓUÓVÐVr   c                 óâ   ‡— t        j                  d«      }t        j                  | j                  j
                  | j
                  |«      }|dk  r|d   Št        ˆfd„«      }t        |«      ‚|S )NzNetplanError **r   c                 óD   •— t        j                  ‰| t        | «      «      S r   )r   Únetplan_error_messagerD   )rF   Úerrs    €r   rG   z)NetDefinition._vf_count.<locals>.<lambda>š   s   ø€ ¼#×:SÑ:SÐTWÐYZÔ\_Ð`aÓ\bÓ:c€ r   )r   Únewr   Ú#_netplan_state_get_vf_count_for_defr   r   r   r   )r   ÚrefÚcountÚmsgr’   s       @r   Ú	_vf_countzNetDefinition._vf_count”   s`   ø€ ä�g‰gÐ'Ó(ˆÜ×7Ñ7¸¿¹×8IÑ8IÈ4Ï9É9ÐVYÓZˆØ�1Š9Ø�a‘&ˆCÜ/Ó0cÓdˆCÜ" 3Ó'Ð'Øˆr   c                 ó    ‡ — t        ˆ fd„«      S )Nc                 óX   •— t        j                  ‰j                  | t        | «      «      S r   )r   Ú_netplan_netdef_get_bond_moder   rD   rE   s    €r   rG   z*NetDefinition._bond_mode.<locals>.<lambda>    rH   r   rI   r'   s   `r   Ú
_bond_modezNetDefinition._bond_modež   rK   r   c                 óR   — t        t        j                  | j                  «      «      S )z¬
        Returns True if the interface is a compound interface (bond or bridge),
        and its configuration is trivial, without any variation from the defaults.
        )r    r   Ú'_netplan_netdef_is_trivial_compound_itfr   r'   s    r   Ú_is_trivial_compound_itfz&NetDefinition._is_trivial_compound_itf¢   s   € ô ”C×?Ñ?ÀÇ	Á	ÓJÓKÐKr   )NNN)r   r&   )r   r9   )r   r<   )r   r?   )#Ú__name__Ú
__module__Ú__qualname__r   r    r   Ústrr$   Úpropertyr(   r+   r/   Úlistr7   r:   r=   r@   rJ   rN   rS   rW   r_   rm   Úintrr   ru   r{   r   rƒ   r‡   r‹   rŽ   r˜   rœ   rŸ   © r   r   r
   r
      s·  „ ò ð'˜Oð '°ó 'ñ
I¨3ð IÀSð IÐ\_ð IÐkoó Ið ò1ó ð1ð ð=�tò =ó ð=ð ð=�tò =ó ð=ð ð˜Dò ó ðð ò4ó ð4ð ò6ó ð6ð ò/ó ð/ð ðp˜Cò pó ðpð ð=˜Dò =ó ð=ð ðn˜#ò nó ðnð ðA˜$ò Aó ðAð ð�tò ó ðð, ð˜#ò ó ðð ðJ¨ò Jó ðJð ðo˜ò oó ðoð ðm�cò mó ðmð ðh�Cò hó ðhð ðn˜#ò nó ðnð ð{ sò {ó ð{ð ðW°ò Wó ðWð ð˜3ò ó ðð ðp˜Cò pó ðpð ðL¨$ò Ló ñLr   r
   c                   ó,   — e Zd Zddefd„Zd„ Zd„ Zd„ Zy)ÚNetDefinitionIteratorNÚdev_typec                 ó¢   — || _         |r|j                  d«      nt        j                  }t	        j
                  |j                  |«      | _        y r   )r   r"   r   r#   r   Ú&_netplan_state_new_netdef_pertype_iterr   Úiterator)r   r   rª   Únp_types       r   r   zNetDefinitionIterator.__init__¬   s8   € à ˆŒÙ.6�(—/‘/ 'Ô*¼C¿H¹HˆÜ×BÑBÀ8Ç=Á=ÐRYÓZˆ�r   c                 óB   — t        j                  | j                  «       y r   )r   Ú!_netplan_netdef_pertype_iter_freer­   r'   s    r   Ú__del__zNetDefinitionIterator.__del__²   s   € Ü×-Ñ-¨d¯m©mÕ<r   c                 ó   — | S r   r§   r'   s    r   Ú__iter__zNetDefinitionIterator.__iter__µ   ó   € Øˆr   c                 ó|   — t        j                  | j                  «      }|st        ‚t	        | j
                  |«      S r   )r   Ú!_netplan_netdef_pertype_iter_nextr­   ÚStopIterationr
   r   ©r   Ú
next_values     r   Ú__next__zNetDefinitionIterator.__next__¸   s0   € Ü×:Ñ:¸4¿=¹=ÓIˆ
ÙÜÐÜ˜TŸ]™]¨JÓ7Ð7r   r   )r    r¡   r¢   r£   r   r±   r³   rº   r§   r   r   r©   r©   «   s   „ ñ[¨3ó [ò=òó8r   r©   c                   ó,   — e Zd Zdededefd„Zdefd„Zy)ÚNetplanAddressÚaddressÚlifetimeÚlabelc                 ó.   — || _         || _        || _        y r   )r½   r¾   r¿   )r   r½   r¾   r¿   s       r   r   zNetplanAddress.__init__À   s   € ØˆŒØ ˆŒØˆ�
r   r   c                 ó   — | j                   S r   )r½   r'   s    r   Ú__str__zNetplanAddress.__str__Å   s   € Ø�|‰|Ðr   N)r    r¡   r¢   r£   r   rÂ   r§   r   r   r¼   r¼   ¿   s(   „ ð ð ¨sð ¸3ó ð
˜ô r   r¼   c                   ó*   — e Zd Zdefd„Zd„ Zd„ Zd„ Zy)r&   Únetdefc                 óF   — || _         t        j                  |«      | _        y r   )rÄ   r   Ú _netplan_netdef_new_address_iterr­   ©r   rÄ   s     r   r   z_NetdefAddressIterator.__init__Ê   s   € ØˆŒÜ×<Ñ<¸VÓDˆ�r   c                 óB   — t        j                  | j                  «       y r   )r   Ú_netplan_address_iter_freer­   r'   s    r   r±   z_NetdefAddressIterator.__del__Î   s   € Ü×&Ñ& t§}¡}Õ5r   c                 ó   — | S r   r§   r'   s    r   r³   z_NetdefAddressIterator.__iter__Ñ   r´   r   c                 óÖ  — t        j                  | j                  «      }|st        ‚|}|j                  r.t        j                  |j                  «      j                  d«      nd }|j                  r.t        j                  |j                  «      j                  d«      nd }|j                  r.t        j                  |j                  «      j                  d«      nd }t        |||«      S r   )r   Ú_netplan_address_iter_nextr­   r·   r½   r   rw   rz   r¾   r¿   r¼   )r   r¹   Úcontentr½   r¾   r¿   s         r   rº   z_NetdefAddressIterator.__next__Ô   s­   € Ü×3Ñ3°D·M±MÓBˆ
ÙÜÐØˆð BIÇÂ”#—*‘*˜WŸ_™_Ó-×4Ñ4°WÔ=ÐVZˆØCJ×CSÒCS”3—:‘:˜g×.Ñ.Ó/×6Ñ6°wÔ?ÐY]ˆØ=D¿]º]”—
‘
˜7Ÿ=™=Ó)×0Ñ0°Ô9ÐPTˆÜ˜g x°Ó7Ð7r   N©r    r¡   r¢   r
   r   r±   r³   rº   r§   r   r   r&   r&   É   s   „ ðE˜}ó Eò6òó
8r   r&   c                   ó*   — e Zd Zdefd„Zd„ Zd„ Zd„ Zy)r9   rÄ   c                 óF   — || _         t        j                  |«      | _        y r   )rÄ   r   Ú#_netplan_netdef_new_nameserver_iterr­   rÇ   s     r   r   z"_NetdefNameserverIterator.__init__â   s   € ØˆŒÜ×?Ñ?ÀÓGˆ�r   c                 óB   — t        j                  | j                  «       y r   )r   Ú_netplan_nameserver_iter_freer­   r'   s    r   r±   z!_NetdefNameserverIterator.__del__æ   s   € Ü×)Ñ)¨$¯-©-Õ8r   c                 ó   — | S r   r§   r'   s    r   r³   z"_NetdefNameserverIterator.__iter__é   r´   r   c                 ó˜   — t        j                  | j                  «      }|st        ‚t	        j
                  |«      j                  d«      S r   )r   Ú_netplan_nameserver_iter_nextr­   r·   r   rw   rz   r¸   s     r   rº   z"_NetdefNameserverIterator.__next__ì   s9   € Ü×6Ñ6°t·}±}ÓEˆ
ÙÜÐÜ�z‰z˜*Ó%×,Ñ,¨WÓ5Ð5r   NrÎ   r§   r   r   r9   r9   á   s   „ ðH˜}ó Hò9òó6r   r9   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)r<   c                 óF   — || _         t        j                  |«      | _        y r   )rÄ   r   Ú&_netplan_netdef_new_search_domain_iterr­   rÇ   s     r   r   z$_NetdefSearchDomainIterator.__init__ô   s   € ØˆŒÜ×BÑBÀ6ÓJˆ�r   c                 óB   — t        j                  | j                  «       y r   )r   Ú _netplan_search_domain_iter_freer­   r'   s    r   r±   z#_NetdefSearchDomainIterator.__del__ø   s   € Ü×,Ñ,¨T¯]©]Õ;r   c                 ó   — | S r   r§   r'   s    r   r³   z$_NetdefSearchDomainIterator.__iter__û   r´   r   c                 ó˜   — t        j                  | j                  «      }|st        ‚t	        j
                  |«      j                  d«      S r   )r   Ú _netplan_search_domain_iter_nextr­   r·   r   rw   rz   r¸   s     r   rº   z$_NetdefSearchDomainIterator.__next__þ   s9   € Ü×9Ñ9¸$¿-¹-ÓHˆ
ÙÜÐÜ�z‰z˜*Ó%×,Ñ,¨WÓ5Ð5r   N©r    r¡   r¢   r   r±   r³   rº   r§   r   r   r<   r<   ó   s   „ òKò<òó6r   r<   c                   óø   — e Zd ZU ej                  ZdZdZee	d<   dZ
ee	d<   dZee	d<   dZee	d<   dZee	d	<   dZee	d
<   eZee	d<   dZee	d<   eZee	d<   dZee	d<   dZee	d<   dZee	d<   dZee	d<   d„ Zd„ Zd„ Zd„ Zy)ÚNetplanRouter   NÚtoÚviaÚ	from_addrÚunicastr   ÚglobalÚscopeÚprotocolÚtableéÿÿÿÿÚfamilyÚmetricÚmtubytesÚcongestion_windowÚadvertised_receive_windowFÚonlinkc                 óø  — d}| j                   r|| j                   z   }| j                  r|d| j                  › �z   }| j                  r|d| j                  › �z   }| j                  r|d| j                  › �z   }| j                  r|d| j                  › �z   }| j
                  | j                  k  r|d| j
                  › �z   }| j                  | j                  kD  r|d| j                  › �z   }|j                  «       S )NÚ z via z type z scope z src z metric z table )
râ   rã   r   rç   rä   rì   Ú_METRIC_UNSPEC_ré   Ú_TABLE_UNSPEC_Ústrip©r   Úroutes     r   rÂ   zNetplanRoute.__str__  sæ   € ØˆØ�7Š7Ø˜DŸG™G‘OˆEØ�8Š8Ø˜e D§H¡H :Ð.Ñ.ˆEØ�9Š9Ø˜f T§Y¡Y KÐ0Ñ0ˆEØ�:Š:Ø˜g d§j¡j \Ð2Ñ2ˆEØ�>Š>Ø˜e D§N¡NÐ#3Ð4Ñ4ˆEØ�;‰;˜×-Ñ-Ò-Ø˜h t§{¡{ mÐ4Ñ4ˆEØ�:‰:˜×+Ñ+Ò+Ø˜g d§j¡j \Ð2Ñ2ˆEØ�{‰{‹}Ðr   c                 ó¦  — i }| j                   dk\  r| j                   |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   | j                  | j
                  k  r| j                  |d<   | j                  | j                  kD  r| j                  |d<   | j                  |d<   |S )	Nr   rë   râ   rã   Úfromrì   ré   r   )	rë   râ   rã   rä   rì   ró   ré   rô   r   rö   s     r   Úto_dictzNetplanRoute.to_dict*  s¬   € ØˆØ�;‰;˜!ÒØ"Ÿk™kˆE�(‰OØ�7Š7ØŸ'™'ˆE�$‰KØ�8Š8ØŸ8™8ˆE�%‰LØ�>Š>Ø ŸN™NˆE�&‰MØ�;‰;˜×-Ñ-Ò-Ø"Ÿk™kˆE�(‰OØ�:‰:˜×+Ñ+Ò+Ø!ŸZ™ZˆE�'‰NàŸ	™	ˆˆf‰àˆr   c           
      óÈ   — t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  f«      S r   )	Úhashrâ   rã   rä   ré   rë   rì   r   rç   r'   s    r   Ú__hash__zNetplanRoute.__hash__=  sH   € ÜØ�W‰W�d—h‘hØ�^‰^˜TŸZ™ZØ�[‰[˜$Ÿ+™+Ø�Y‰Y˜Ÿ
™
ð$ó%ð 	%r   c                 ó®  — | j                   |j                   k(  xr» | j                  |j                  k(  xr  | j                  |j                  k(  xr… | j                  |j                  k(  xrj | j                  |j                  k(  xrO | j
                  |j
                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r   )râ   rã   rä   ré   rë   rì   r   rç   rö   s     r   r   zNetplanRoute.__eq__D  s´   € à�G‰G�u—x‘xÑò &Ø�H‰H˜Ÿ	™	Ñ!ò&à�N‰N˜eŸo™oÑ-ò&ð �J‰J˜%Ÿ+™+Ñ%ò&ð �K‰K˜5Ÿ<™<Ñ'ò	&ð
 �K‰K˜5Ÿ<™<Ñ'ò&ð �I‰I˜Ÿ™Ñ#ò&ð �J‰J˜%Ÿ+™+Ñ%ð		
r   )r    r¡   r¢   r   rp   ró   rô   râ   r£   Ú__annotations__rã   rä   r   rç   rè   ré   r¦   rë   rì   rí   rî   rï   rð   r    rÂ   rú   rý   r   r§   r   r   rá   rá     s¦   … à—l‘l€OØ€Nà€BˆƒNØ€CˆƒOØ€IˆsÓØ€Dˆ#ÓØ€Eˆ3ÓØ€HˆcÓØ€Eˆ3ÓØ€FˆCÓØ!€FˆCÓ!Ø€HˆcÓØÐ�sÓØ%&Ð˜sÓ&Ø€FˆDÓòò$ò&%ó

r   rá   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)r?   c                 óF   — || _         t        j                  |«      | _        y r   )rÄ   r   Ú_netplan_netdef_new_route_iterr­   rÇ   s     r   r   z_NetdefRouteIterator.__init__R  s   € ØˆŒÜ×:Ñ:¸6ÓBˆ�r   c                 óB   — t        j                  | j                  «       y r   )r   Ú_netplan_route_iter_freer­   r'   s    r   r±   z_NetdefRouteIterator.__del__V  s   € Ü×$Ñ$ T§]¡]Õ3r   c                 ó   — | S r   r§   r'   s    r   r³   z_NetdefRouteIterator.__iter__Y  r´   r   c                 óF  — t        j                  | j                  «      }|st        ‚t	        |d«      }|j
                  r.t        j                  |j
                  «      j                  d«      nd |j                  r.t        j                  |j                  «      j                  d«      nd |r$t        j                  |«      j                  d«      nd |j                  r.t        j                  |j                  «      j                  d«      nd |j                  r.t        j                  |j                  «      j                  d«      nd d |j                  |j                  |j                  |j                  |j                   |j"                  |j$                  dœ}t'        di |¤ŽS )Nrù   r   )râ   rã   rä   r   rç   rè   ré   rë   rì   rí   rî   rï   rð   r§   )r   Ú_netplan_route_iter_nextr­   r·   Úgetattrrâ   r   rw   rz   rã   r   rç   ré   rë   rì   rí   rî   rï   rð   rá   )r   r¹   rä   r÷   s       r   rº   z_NetdefRouteIterator.__next__\  s:  € Ü×1Ñ1°$·-±-Ó@ˆ
ÙÜÐô ˜J¨Ó/ˆ	ð @J¿}º}”#—*‘*˜ZŸ]™]Ó+×2Ñ2°7Ô;ÐRVØAKÇÂ”3—:‘:˜jŸn™nÓ-×4Ñ4°WÔ=ÐUYÙBKœŸ™ IÓ.×5Ñ5°gÔ>ÐQUØCMÇ?Â?”C—J‘J˜zŸ™Ó/×6Ñ6°wÔ?ÐX\ØEO×EUÒEU”S—Z‘Z 
× 0Ñ 0Ó1×8Ñ8¸ÔAÐ[_ØØ×%Ñ%Ø ×'Ñ'Ø ×'Ñ'Ø"×+Ñ+Ø!+×!=Ñ!=Ø)3×)MÑ)MØ ×'Ñ'ñ
ˆô  Ñ$˜eÑ$Ð$r   Nrß   r§   r   r   r?   r?   Q  s   „ òCò4òó%r   r?   N)Údataclassesr   Ú_netplan_cffir   r   Ú_utilsr   r   r
   r©   r¼   r&   r9   r<   rá   r?   r§   r   r   ú<module>r     sx   ðõ  "ç #ß C÷RLñ RL÷j8ñ 8÷(ñ ÷8ñ 8÷06ñ 6÷$6ñ 6ð$ ÷H
ð H
ó ðH
÷V#%ò #%r   