
    Vhx                         d dl mZmZmZ eZdZdZdZd dl	Z	d dl
Z
d dlmZ d dlmZ d dlmZmZ  G d	 d
e      Zd Zd Z G d de      Zd Zedk(  r e        yy)    )absolute_importdivisionprint_functiona  
module: homebrew
author:
  - "Indrajit Raychaudhuri (@indrajitr)"
  - "Daniel Jaouen (@danieljaouen)"
  - "Andrew Dunham (@andrew-d)"
requirements:
  - homebrew must already be installed on the target system
short_description: Package manager for Homebrew
description:
  - Manages Homebrew packages.
extends_documentation_fragment:
  - community.general.attributes
attributes:
  check_mode:
    support: full
  diff_mode:
    support: none
options:
  name:
    description:
      - A list of names of packages to install/remove.
    aliases: ['formula', 'package', 'pkg']
    type: list
    elements: str
  path:
    description:
      - A V(:) separated list of paths to search for C(brew) executable. Since a package (I(formula) in homebrew parlance)
        location is prefixed relative to the actual path of C(brew) command, providing an alternative C(brew) path enables
        managing different set of packages in an alternative location in the system.
    default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
    type: path
  state:
    description:
      - State of the package.
    choices: ['absent', 'head', 'installed', 'latest', 'linked', 'present', 'removed', 'uninstalled', 'unlinked', 'upgraded']
    default: present
    type: str
  update_homebrew:
    description:
      - Update homebrew itself first.
    type: bool
    default: false
  upgrade_all:
    description:
      - Upgrade all homebrew packages.
    type: bool
    default: false
    aliases: ['upgrade']
  install_options:
    description:
      - Options flags to install a package.
    aliases: ['options']
    type: list
    elements: str
  upgrade_options:
    description:
      - Option flags to upgrade.
    type: list
    elements: str
    version_added: '0.2.0'
  force_formula:
    description:
      - Force the package(s) to be treated as a formula (equivalent to C(brew --formula)).
      - To install a cask, use the M(community.general.homebrew_cask) module.
    type: bool
    default: false
    version_added: 9.0.0
notes:
  - When used with a C(loop:) each package will be processed individually, it is much more efficient to pass the list directly
    to the O(name) option.
a6  
# Install formula foo with 'brew' in default path
- community.general.homebrew:
    name: foo
    state: present

# Install formula foo with 'brew' in alternate path (/my/other/location/bin)
- community.general.homebrew:
    name: foo
    path: /my/other/location/bin
    state: present

# Update homebrew first and install formula foo with 'brew' in default path
- community.general.homebrew:
    name: foo
    state: present
    update_homebrew: true

# Update homebrew first and upgrade formula foo to latest available with 'brew' in default path
- community.general.homebrew:
    name: foo
    state: latest
    update_homebrew: true

# Update homebrew and upgrade all packages
- community.general.homebrew:
    update_homebrew: true
    upgrade_all: true

# Miscellaneous other examples
- community.general.homebrew:
    name: foo
    state: head

- community.general.homebrew:
    name: foo
    state: linked

- community.general.homebrew:
    name: foo
    state: absent

- community.general.homebrew:
    name: foo,bar
    state: absent

- community.general.homebrew:
    name: foo
    state: present
    install_options: with-baz,enable-debug

- name: Install formula foo with 'brew' from cask
  community.general.homebrew:
    name: homebrew/cask/foo
    state: present

- name: Use ignore-pinned option while upgrading all
  community.general.homebrew:
    upgrade_all: true
    upgrade_options: ignore-pinned

- name: Force installing a formula whose name is also a cask name
  community.general.homebrew:
    name: ambiguous_formula
    state: present
    force_formula: true
a  
msg:
  description: If the cache was updated or not.
  returned: always
  type: str
  sample: "Changed: 0, Unchanged: 2"
unchanged_pkgs:
  description:
    - List of package names which are unchanged after module run.
  returned: success
  type: list
  sample: ["awscli", "ag"]
  version_added: '0.2.0'
changed_pkgs:
  description:
    - List of package names which are changed after module run.
  returned: success
  type: list
  sample: ['git', 'git-cola']
  version_added: '0.2.0'
N)HomebrewValidate)AnsibleModule)	iteritemsstring_typesc                       e Zd Zy)HomebrewExceptionN)__name__
__module____qualname__     n/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/general/plugins/modules/homebrew.pyr   r      s    r   r   c                     d | j                  d      D        }t        d d |D              }ddj                  |      z   dz   }t        j                  |      S )Nc              3   ^   K   | ]%  }|j                         s|j                          ' y wN)strip.0lines     r   	<genexpr>z1_create_regex_group_complement.<locals>.<genexpr>   s     Ddtzz|TZZ\Ds   --
c              3   `   K   | ]&  }|j                  d       d   j                          ( yw)#r   N)splitr   r   s     r   r   z1_create_regex_group_complement.<locals>.<genexpr>   s&     G$**S/!,224Gs   ,.z[^ ])r   filterjoinrecompile)slinescharsgroups       r   _create_regex_group_complementr(      sL    DaggdmDE4GGHECHHUO#d*E::er   c                 j    t        | j                  |g       xr | |   d   j                  d            S )Nr   	installed)boolget)json_outputpackage_types     r   _check_package_in_jsonr/      s4    b1ck,6OPQ6R6V6VWb6cddr   c                   |   e Zd ZdZed        Zed        Zed        Zej                  d        Zed        Z
e
j                  d        Z
ed        Zej                  d	        Zed
        Zej                  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 Zd Zd Zd Zd Zy)!Homebrewz$A class to manage Homebrew packages.c                 P    |yt        |t              xr |j                         dv S )z
        A valid state is one of:
            - None
            - installed
            - upgraded
            - head
            - linked
            - unlinked
            - absent
        T)r*   upgradedheadlinkedunlinkedabsent)
isinstancer	   lower)clsstates     r   valid_statezHomebrew.valid_state   s5     = 5,/ KKM & 
r   c                 "    t        |t              S )z/A valid module is an instance of AnsibleModule.)r8   r   )r:   modules     r   valid_modulezHomebrew.valid_module   s     &-00r   c                     | j                   S r   )_moduleselfs    r   r>   zHomebrew.module       ||r   c                     | j                  |      s9d | _        d| _        dj                  |      | _        t        | j                        || _        |S )NTzInvalid module: {0}.)r?   rA   failedformatmessager   )rC   r>   s     r   r>   zHomebrew.module   sM      (DLDK188@DL#DLL11 "DLMr   c                     | j                   S r   )_pathrB   s    r   pathzHomebrew.path	  s    zzr   c                     t        j                  |      s9g | _        d| _        dj	                  |      | _        t        | j
                        t        |t              r|j                  d      | _        |S || _        |S )NTzInvalid path: {0}.:)
r   
valid_pathrJ   rF   rG   rH   r   r8   r	   r   )rC   rK   s     r   rK   zHomebrew.path  so    **40DJDK/66t<DL#DLL11 $-!ZZ_
 K "
Kr   c                     | j                   S r   )
_brew_pathrB   s    r   	brew_pathzHomebrew.brew_path  s    r   c                     t        j                  |      s9d | _        d| _        dj	                  |      | _        t        | j
                        || _        |S )NTzInvalid brew_path: {0}.)r   valid_brew_pathrP   rF   rG   rH   r   )rC   rQ   s     r   rQ   zHomebrew.brew_path!  sN    //	:"DODK4;;IFDL#DLL11 (DOr   c                     | j                   S r   )_paramsrB   s    r   paramszHomebrew.params-  rD   r   c                 P    | j                   j                  | _        | j                  S r   )r>   rV   rU   )rC   rV   s     r   rV   zHomebrew.params1  s    {{))||r   Nc
                     |s
t               }|s
t               }| j                          | j                  |||||||||		       | j                          y )N	r>   rK   packagesr;   update_homebrewupgrade_allinstall_optionsupgrade_optionsforce_formula)list_setup_status_vars_setup_instance_vars_prep)
rC   r>   rK   rZ   r;   r[   r\   r]   r^   r_   s
             r   __init__zHomebrew.__init__8  sY     "fO"fO!!!dX(-.92A2A0= 	" 	? 	

r   c                 J    d| _         d| _        g | _        g | _        d| _        y )NFr   )rF   changedchanged_pkgsunchanged_pkgsrH   rB   s    r   ra   zHomebrew._setup_status_varsK  s'     r   c                     t               | _        t               | _        t        |      D ]  \  }}t	        | ||        y r   )setinstalled_packagesoutdated_packagesr   setattr)rC   kwargskeyvals       r   rb   zHomebrew._setup_instance_varsR  s:    "%%!$!&) 	$HCD#s#	$r   c                 $    | j                          y r   )_prep_brew_pathrB   s    r   rc   zHomebrew._prepX  s    r   c                 8   | j                   s*d | _        d| _        d| _        t	        | j                        | j                   j                  dd| j                        | _        | j                  s d | _        d| _        d| _        t	        d      | j                  S )NTzAnsibleModule not set.brew)requiredopt_dirsz%Unable to locate homebrew executable.)r>   rQ   rF   rH   r   get_bin_pathrK   rB   s    r   rr   zHomebrew._prep_brew_path[  s    {{!DNDK3DL#DLL1111YY 2 

 ~~!DNDKBDL#$KLL~~r   c                     g }| j                   D ])  }t        j                  |      r|j                  |       + |rRd| _        dj                  t        |      dkD  rdnddj                  |            | _        t        | j                        y )NTzInvalid package{0}: {1}   r$   r   , )
rZ   r   valid_packageappendrF   rG   lenr!   rH   r   )rC   invalid_packagespackages      r   _validate_packages_namesz!Homebrew._validate_packages_nameso  s    }} 	1G#11': ''0	1 DK4;;+,q0b		*+DL $DLL11 r   c                     t        |j                  d            r| j                  j                  |       t        |j                  d            r| j                  j                  |       y y )Nr*   outdated)r+   r,   rk   addrl   )rC   package_detailpackage_names      r   _save_package_infozHomebrew._save_package_info}  sU    "";/0##''5"":./""&&|4 0r   c                    |r|d   }|d   }n
|d   }|d   }|d   r|d   dz   |z   gng }|j                  dg       }t        ||g|z   |z         }|t        | j                        z  }t        |      dk7  r<d	| _        d
dj                  d |D              z   | _        t        | j                        |j                         S )Ntoken
full_tokenname	full_nametap/aliasesry   Tz(Package names are missing or ambiguous: rz   c              3   2   K   | ]  }t        |        y wr   )str)r   ps     r   r   z1Homebrew._extract_package_name.<locals>.<genexpr>  s     Qp]^RUVWRXQps   )	r,   rj   rZ   r}   rF   r!   rH   r   pop)rC   r   is_caskr   r   tapped_namer   package_namess           r   _extract_package_namezHomebrew._extract_package_name  s     !'*D&|4I!&)D&{3I ?MU>S~e,s2T9:Y[ $$Y3T9-;gEF &DMM(::}"DKE		QpboQpHppDL#DLL11   ""r   c                    dj                  | j                        ddg}|j                  | j                         | j                  r|j                  d       | j                  j                  |      \  }}}|dk7  r8d| _        |j                         xs d|z  | _
        t        | j                        t        j                  |      }|j                  d	g       D ]'  }| j                  |d
      }| j!                  ||       ) |j                  dg       D ]'  }| j                  |d      }| j!                  ||       ) y )Nz{brew_path})rQ   infoz	--json=v2	--formular   Tz!Unknown failure with exit code %dformulaeF)r   casks)rG   rQ   extendrZ   r_   r|   r>   run_commandrF   r   rH   r   jsonloadsr,   r   r   )rC   cmdrcouterrdatar   r   s           r   _get_packages_infozHomebrew._get_packages_info  s,     4>> :

 	

4==!JJ{#{{..s3C7DK99;T+NQS+SDL#DLL11zz#"hhz26 	BN55ne5TL##NLA	B #hhw3 	BN55nd5SL##NLA	Br   c                    	 | j                          t        | j                        }t        | j                        }| j
                  s||z   dkD  rd||fz  | _        | j
                  | j                  | j                  fS # t        $ r Y xw xY w)Nry   zChanged: %d, Unchanged: %d)_runr   r}   rg   rh   rF   rH   rf   )rC   changed_countunchanged_counts      r   runzHomebrew.run  s    	IIK D--.d112{{ ?! C7; DL T\\4<<88 ! 		s   A? ?	B
Bc                 B   | j                   r| j                          | j                  r| j                          | j                  r| j                          | j                          | j                  dk(  r| j                         S | j                  dk(  r| j                         S | j                  dk(  r| j                         S | j                  dk(  r| j                         S | j                  dk(  r| j                         S | j                  dk(  r| j                         S y y )Nr*   r3   r4   r5   r6   r7   )r[   _update_homebrewr\   _upgrade_allrZ   r   r   r;   _install_packages_upgrade_packages_link_packages_unlink_packages_uninstall_packagesrB   s    r   r   zHomebrew._run  s    !!#==))+##%zz[(--//z)--//v%--//x'**,,z),,..x'//11 ( r   c                    | j                   j                  r#d| _        d| _        t	        | j                        | j                   j                  | j                  dg      \  }}}|dk(  rL|rIt        |t              r9t        d |j                  d      D              }|sd| _        d| _        yd| _        yd| _        |j                         | _        t	        | j                        )	NTzHomebrew would be updated.updater   c              3      K   | ]9  }|r5t        j                  d |j                         t         j                         ; yw)zAlready up-to-date.N)r"   searchr   
IGNORECASE)r   r$   s     r   r   z,Homebrew._update_homebrew.<locals>.<genexpr>  s3      & II4aggiO&s   ?Ar   zHomebrew updated successfully.zHomebrew already up-to-date.)r>   
check_moderf   rH   r   r   rQ   r8   r	   anyr   rF   r   )rC   r   r   r   already_updateds        r   r   zHomebrew._update_homebrew  s    ;;!!DL7DL#DLL11{{..NN0
 C 7z#|4"% & YYt_& #
 '#'DL#CDL  $BDLDK99;DL#DLL11r   c                    | j                   j                  r#d| _        d| _        t	        | j                        | j
                  dg| j                  z   }| j                   j                  |      \  }}}|dk(  r|sd| _        yd| _        d| _        yd| _        |j                         | _        t	        | j                        )NTz$Homebrew packages would be upgraded.upgrader   z#Homebrew packages already upgraded.zHomebrew upgraded.)
r>   r   rf   rH   r   rQ   r^   r   rF   r   )rC   r   r   r   r   s        r   r   zHomebrew._upgrade_all  s    ;;!!DLADL#DLL11~~y)D,@,@@{{..s3C7D   $3DK99;DL#DLL11r   c                    t        | j                        | j                  z
  }t        |      dk(  rp| j                  j                  | j                         dj                  t        | j                        dkD  rdnddj                  | j                              | _        y| j                  j                  rRd| _        dj                  t        |      dkD  rdnddj                  |            | _        t        | j                        | j                  d	k(  rd
}nd }| j                  rd}nd }| j                  dg| j                   z   t#        |      z   ||gz   }|D cg c]  }|s|	 }}| j                  j%                  |      \  }}}	|dk(  r~| j&                  j                  |       | j                  j                  | j                         d| _        dj                  t        |      dkD  rdnddj                  |            | _        yd| _        |	j+                         | _        t        | j                        c c}w )Nr   z!Package{0} already installed: {1}ry   r$   r   rz   Tz"Package{0} would be installed: {1}r4   z--HEADr   installzPackage{0} installed: {1})rj   rZ   rk   r}   rh   r   rG   r!   rH   r>   r   rf   r   r;   r_   rQ   r]   r`   r   rg   rF   r   )
rC   packages_to_installr4   formulaoptsoptr   r   r   r   s
             r   r   zHomebrew._install_packages   s   !$--043J3JJ"#q(&&t}}5>EE4==)A-2		$--(DL ;;!!DL?FF./!3		-.DL $DLL11::DD!GG ^^Y'""#&'( Wo 	 #*scs**{{..s3C7$$%89&&t'>'>?DL6==./!3		-.DL DK99;DL#DLL11 +s   H?&H?c                 .   | j                   dg| j                  z   }|D cg c]  }|s|	 }}| j                  j                  |      \  }}}|dk(  rd| _        d| _        yd| _        |j                         | _        t        | j
                        c c}w )Nr   r   TzAll packages upgraded.)	rQ   r]   r>   r   rf   rH   rF   r   r   )rC   r   r   r   r   r   r   s          r   _upgrade_all_packageszHomebrew._upgrade_all_packagesV  s    ^^Y'""# 	 #*scs**{{..s3C7DL3DLDK99;DL#DLL11 +s
   BBc                    | j                   s| j                          y t        | j                         | j                  z
  }| j                  | j                  z  }||z  }t        |      dk(  rp| j                  j                  | j                          dj                  t        | j                         dkD  rdnddj                  | j                               | _
        y| j                  j                  rRd| _        dj                  t        |      dkD  rdnddj                  |            | _
        t        | j                        d	|fd
|ffD ]  \  }}|s	| j                  |g| j                   z   t#        |      z   }|D cg c]  }|s|	 }}| j                  j%                  |      \  }	}
}|	dk7  sgd| _        |j)                         | _
        t        | j                         | j*                  j                  |       | j                  j                  t        | j                         |z
         d| _        dj                  t        |      dkD  rdnddj                  |            | _
        y c c}w )Nr   z Package{0} already upgraded: {1}ry   r$   r   rz   Tz!Package{0} would be upgraded: {1}r   r   zPackage{0} upgraded: {1})rZ   r   rj   rk   rl   r}   rh   r   rG   r!   rH   r>   r   rf   r   rQ   r]   r`   r   rF   r   rg   )rC   r   packages_to_upgradepackages_to_install_or_upgradecommandrZ   r   r   r   r   r   r   s               r   r   zHomebrew._upgrade_packagesg  s=   }}&&( #&dmm"4t7N7N"N"&"9"9D<R<R"R-@CV-V*12a7##**4==9AHHt}}-1CrIIdmm,  {{%%#BII=>BCII<=  (55 /0/0& :!   ^^W-**+8n% 
 '+2scs22#{{66s;C7"&DK#&99;DL+DLL99%:( $$%CD&&s4=='9<Z'Z[DL5<<9:Q>B		89DL 3s    I/I/c                 b   | j                   t        | j                        z  }t        |      dk(  rp| j                  j                  | j                         dj                  t        | j                        dkD  rdnddj                  | j                              | _        y| j                  j                  rRd| _        dj                  t        |      dkD  rdnddj                  |            | _        t        | j                        | j                  d	d
g| j                  z   t        |      z   }|D cg c]  }|s|	 }}| j                  j!                  |      \  }}}|dk(  r| j"                  j                  |       | j                  j                  t        | j                        | j                   z
         d| _        dj                  t        |      dkD  rdnddj                  |            | _        yd| _        |j'                         | _        t        | j                        c c}w )Nr   z#Package{0} already uninstalled: {1}ry   r$   r   rz   Tz$Package{0} would be uninstalled: {1}	uninstallz--forcezPackage{0} uninstalled: {1})rk   rj   rZ   r}   rh   r   rG   r!   rH   r>   r   rf   r   rQ   r]   r`   r   rg   rF   r   )rC   packages_to_uninstallr   r   r   r   r   r   s           r   r   zHomebrew._uninstall_packages  s    $ 7 7#dmm:L L$%*&&t}}5@GG4==)A-2		$--(DL ;;!!DLAHH01A52		/0DL $DLL11 ^^[)4""#()* 	
 #*scs**{{..s3C7$$%:;&&s4=='9D<S<S'STDL8??01A52		/0DL DK99;DL#DLL11 +s   5H,=H,c                 f   t        | j                        | j                  z
  }|rRd| _        dj	                  t        |      dkD  rdnddj                  |            | _        t        | j                        | j                  j                  rfd| _        dj	                  t        | j                        dkD  rdnddj                  | j                              | _        t        | j                        | j                  dg| j                  z   | j                  z   }|D cg c]  }|s|	 }}| j                  j                  |      \  }}}|d	k(  rw| j                  j!                  | j                         d| _        d
j	                  t        | j                        dkD  rdnddj                  | j                              | _        yd| _        dj	                  t        | j                        dkD  rdnddj                  | j                              | _        t        | j                        c c}w )NTPackage{0} not installed: {1}.ry   r$   r   rz   zPackage{0} would be linked: {1}linkr   zPackage{0} linked: {1}z$Package{0} could not be linked: {1}.rj   rZ   rk   rF   rG   r}   r!   rH   r   r>   r   rf   rQ   r]   r   rg   r   rC   missing_packagesr   r   r   r   r   r   s           r   r   zHomebrew._link_packages  s   t}}-0G0GGDK;BB+,q0b		*+DL $DLL11;;!!DL<CC4==)A-2		$--(DL $DLL11 ^^V$""#mm 	
 #*scs**{{..s3C7$$T]]3DL3::4==)A-2		$--(DL DKAHH4==)A-2		$--(DL $DLL11# +   H.'H.c                 f   t        | j                        | j                  z
  }|rRd| _        dj	                  t        |      dkD  rdnddj                  |            | _        t        | j                        | j                  j                  rfd| _        dj	                  t        | j                        dkD  rdnddj                  | j                              | _        t        | j                        | j                  dg| j                  z   | j                  z   }|D cg c]  }|s|	 }}| j                  j                  |      \  }}}|d	k(  rw| j                  j!                  | j                         d| _        d
j	                  t        | j                        dkD  rdnddj                  | j                              | _        yd| _        dj	                  t        | j                        dkD  rdnddj                  | j                              | _        t        | j                        c c}w )NTr   ry   r$   r   rz   z!Package{0} would be unlinked: {1}unlinkr   zPackage{0} unlinked: {1}z&Package{0} could not be unlinked: {1}.r   r   s           r   r   zHomebrew._unlink_packages  s   t}}-0G0GGDK;BB+,q0b		*+DL $DLL11;;!!DL>EE4==)A-2		$--(DL $DLL11 ^^X&""#mm 	
 #*scs**{{..s3C7$$T]]3DL5<<4==)A-2		$--(DL DKCJJ4==)A-2		$--(DL $DLL11# +r   )NNFFNNF) r   r   r   __doc__classmethodr<   r?   propertyr>   setterrK   rQ   rV   rd   ra   rb   rc   rr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r1      sR   .  6 1 1   ]]	 	   
[[    	 	   ]]  ;?497;$&$(25!#FB69 202>2022l2"6t'2V(2X(2r   r1   c                  0   t        t        t        g dddd      t        ddd      t        d	g d
      t        dd      t        ddgd      t        d dgdd      t        d dd      t        dd            d      } t        dddd      | _        | j                  }|d   r!|d   D cg c]  }|j	                          }}nd }|d   }|r|j                  d      }|d   }|dv rd}|dv rd}|dv rd }|d!k(  rd!}|d"k(  rd"}|d#v rd$}|d%   }|d&   }|s%| j                  j                  t        d'(             |d)   }|d*   xs g |d*<   |d*   D 	cg c]  }	d+j                  |	       }
}	|d,   xs g |d,<   |d,   D cg c]  }d+j                  |       }}t        | ||||||
||-	      }|j                         \  }}}|j                  }|j                  }|r| j                  |.       | j                  ||||/       y c c}w c c}	w c c}w )0N)pkgr   r   Fr`   r   )r   ru   typeelementsz?/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/binrK   )defaultru   r   present)
r   r*   latestr3   r4   r5   r6   r7   removeduninstalled)r   choicesr+   )r   r   r   )r   r   r   options)r   r   r   r   )r   r   r   )r   rK   r;   r[   r\   r]   r^   r_   T)argument_specsupports_check_modeC)LANGLC_ALLLC_MESSAGESLC_CTYPEr   rM   r;   )r   r*   r*   )r4   r4   )r   r3   r3   r5   r6   )r7   r   r   r7   r_   r[   True)HOMEBREW_NO_AUTO_UPDATEr\   r]   z--{0}r^   rY   )msg)rf   r   rh   rg   )r   dictrun_command_environ_updaterV   r9   r   r   rG   r1   r   rg   rh   	fail_json	exit_json)r>   r   r   rZ   rK   r;   r_   r[   r\   install_optionr]   upgrade_optionr^   rt   rF   rf   rH   rg   rh   s                      r   mainr   %  s   5	 Y
 ! ! "
 !"	 !
 S-
\ !_0Fd )-#cs]`(aF%Ay=>vYG\L&&(GGV9Dzz#gJE((
&&
44o&M)*O))000	
 M"K./52A-./@-AC) ~~n5 CO C ./52A-./@-AC) ~~n5 CO C6x +_$3=RD "&VWg$$L((NW%
%!	  ] H<CCs   0H	HH__main__)
__future__r   r   r   r   __metaclass__DOCUMENTATIONEXAMPLESRETURNr   r"   Cansible_collections.community.general.plugins.module_utils.homebrewr   ansible.module_utils.basicr   ansible.module_utils.sixr   r	   	Exceptionr   r(   r/   objectr1   r   r   r   r   r   <module>r      s~    A @GRBH
,  	 ` 4 <		 	e
P	2v P	2jk\ zF r   