(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(salt)} spids:[9])]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2017.7.1)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ("A parallel remote execution system"))}
          spids: [18]
        )
      ]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ("https://github.com/saltstack/salt"))}
          spids: [23]
        )
      ]
      spids: [23]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (noarch))} spids:[28])]
      spids: [28]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (ASL-2.0))} spids:[33])]
      spids: [33]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:depends)
          op: Equal
          rhs: 
            {
              (DQ ("py2-tornado py2-yaml py2-jinja2 py2-markupsafe py2-msgpack py2-crypto py2-zmq\n") 
                ("\tpy2-six py2-requests py2-futures py2-pygit2 py2-dateutil procps")
              )
            }
          spids: [38]
        )
      ]
      spids: [38]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: {(DQ ("python2-dev py2-libcloud"))}
          spids: [44]
        )
      ]
      spids: [44]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-master ") 
                ($ VSub_Name "$pkgname") ("-minion ") ($ VSub_Name "$pkgname") ("-syndic ") ($ VSub_Name "$pkgname") ("-api\n") ("\t") 
                ($ VSub_Name "$pkgname") ("-cloud ") ($ VSub_Name "$pkgname") (-ssh)
              )
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") 
                (".tar.gz::https://codeload.github.com/saltstack/") ($ VSub_Name "$pkgname") (/tar.gz/v) ($ VSub_Name "$pkgver") ("\n") ("\tsalt-api.confd\n") 
                ("\tsalt-api.initd\n") ("\tsalt-master.confd\n") ("\tsalt-master.initd\n") ("\tsalt-minion.confd\n") ("\tsalt-minion.initd\n") 
                ("\tsalt-syndic.confd\n") ("\tsalt-syndic.initd\n") ("\t")
              )
            }
          spids: [68]
        )
      ]
      spids: [68]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))}
          spids: [89]
        )
      ]
      spids: [89]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (AndOr
              children: [
                (C {(python2)} {(setup.py)} {(build)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [103]
        )
      spids: [99 102]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (AndOr
              children: [
                (C {(python2)} {(setup.py)} {(install)} 
                  {(--root) (Lit_Other "=") (DQ ($ VSub_Name "$pkgdir")) (/)} {(--optimize) (Lit_Other "=") (1)}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/var/log/) ($ VSub_Name "$pkgname")})
          ]
          spids: [133]
        )
      spids: [129 132]
    )
    (FuncDef
      name: master
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("Management component for salt, a parallel remote execution system"))}
                  spids: [188]
                )
              ]
              spids: [188]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname"))}
                  spids: [194]
                )
              ]
              spids: [194]
            )
            (AndOr
              children: [
                (C {(_init_copy)} {(master)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(_conf_copy)} {(master)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[226])]
                  spids: [224]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: i
              iter_words: [{(cp)} {(key)} {(master)} {(run)} {(unity)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(_submv)} {(usr/bin/salt-) ($ VSub_Name "$i")})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [246 261]
                )
              spids: [234 244]
            )
            (C {(_submv)} {(usr/bin/salt)})
          ]
          spids: [185]
        )
      spids: [181 184]
    )
    (FuncDef
      name: minion
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("Client component for Salt, a parallel remote execution system"))}
                  spids: [278]
                )
              ]
              spids: [278]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname"))}
                  spids: [284]
                )
              ]
              spids: [284]
            )
            (AndOr
              children: [
                (C {(_init_copy)} {(minion)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(_conf_copy)} {(minion)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(_conf_copy)} {(proxy)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[327])]
                  spids: [325]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: i
              iter_words: [{(call)} {(minion)} {(proxy)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(_submv)} {(usr/bin/salt-) ($ VSub_Name "$i")})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [343 358]
                )
              spids: [335 341]
            )
          ]
          spids: [275]
        )
      spids: [271 274]
    )
    (FuncDef
      name: syndic
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("Master-of-master component for Salt, a parallel remote execution system"))
                    }
                  spids: [370]
                )
              ]
              spids: [370]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname") (-master))}
                  spids: [376]
                )
              ]
              spids: [376]
            )
            (C {(_submv)} {(usr/bin/salt-syndic)})
          ]
          spids: [367]
        )
      spids: [363 366]
    )
    (FuncDef
      name: api
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("REST API for Salt, a parallel remote execution system"))}
                  spids: [398]
                )
              ]
              spids: [398]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname") (-master))}
                  spids: [404]
                )
              ]
              spids: [404]
            )
            (AndOr
              children: [(C {(_init_copy)} {(api)}) (C {(_submv)} {(usr/bin/salt-api)})]
              op_id: Op_DAmp
            )
          ]
          spids: [395]
        )
      spids: [391 394]
    )
    (FuncDef
      name: cloud
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("Cloud provisioner for Salt, a parallel remote execution system"))}
                  spids: [432]
                )
              ]
              spids: [432]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname") ("-master py2-libcloud"))}
                  spids: [438]
                )
              ]
              spids: [438]
            )
            (AndOr
              children: [(C {(_conf_copy)} {(cloud)}) (C {(_submv)} {(usr/bin/salt-cloud)})]
              op_id: Op_DAmp
            )
          ]
          spids: [429]
        )
      spids: [425 428]
    )
    (FuncDef
      name: ssh
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("Agentless SSH-based version of Salt, a parallel remote execution system"))
                    }
                  spids: [466]
                )
              ]
              spids: [466]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname"))}
                  spids: [472]
                )
              ]
              spids: [472]
            )
            (AndOr
              children: [(C {(_conf_copy)} {(roster)}) (C {(_submv)} {(usr/bin/salt-ssh)})]
              op_id: Op_DAmp
            )
          ]
          spids: [463]
        )
      spids: [459 462]
    )
    (FuncDef
      name: _submv
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:path)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [501]
                )
              ]
              spids: [499]
            )
            (C {(mkdir)} {(-p)} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/) 
                (BracedVarSub
                  token: <VSub_Name path>
                  suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")})
                  spids: [515 520]
                )
              }
            )
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$path")} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$path")}
            )
          ]
          spids: [496]
        )
      spids: [492 495]
    )
    (FuncDef
      name: _init_copy
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:type)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [549]
                )
              ]
              spids: [547]
            )
            (AndOr
              children: [
                (C {(install)} {(-m)} {(755)} {(-D)} 
                  {(DQ ($ VSub_Name "$srcdir")) (/salt-) ($ VSub_Name "$type") (.initd)} {(DQ ($ VSub_Name "$subpkgdir")) (/etc/init.d/salt-) ($ VSub_Name "$type")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(install)} {(-m)} {(644)} {(-D)} 
                  {(DQ ($ VSub_Name "$srcdir")) (/salt-) ($ VSub_Name "$type") (.confd)} {(DQ ($ VSub_Name "$subpkgdir")) (/etc/conf.d/salt-) ($ VSub_Name "$type")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [544]
        )
      spids: [540 543]
    )
    (FuncDef
      name: _conf_copy
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:type)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [622]
                )
              ]
              spids: [620]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/etc/salt/)})
            (C {(cp)} {(-r)} 
              {(DQ ($ VSub_Name "$builddir")) (/conf/) ($ VSub_Name "$type") (Lit_Other "*")} {(DQ ($ VSub_Name "$subpkgdir")) (/etc/salt/)}
            )
          ]
          spids: [617]
        )
      spids: [613 616]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"f675b5d5f4afa79daf65686bfc6563743183913b0d4cc22ce5220636a4abd62cd3569b7f9e32035afc7132adaba7d9c211d1b03b39227b052c0080dce9d5a915  salt-2017.7.1.tar.gz\n"
                ) 
                (
"975ba2f5e681fbd62045da61cc3dc065b148683a07b5df7eca9f131e47314eb6bfa8660ca1c06a3bd93683c7097d0ff9f8e514273dd24d82fb2de6a255e6b275  salt-api.confd\n"
                ) 
                (
"435d399bfecf431d0c713031e2ae57ce25b5c6edc98b62f33bd7a4ff1c587e3cdeb988445ae0c3e9ffc1911555c3694654d98815f9562b8a14bf0688ec1ebea6  salt-api.initd\n"
                ) 
                (
"cfbbeb8023a383e7c42d84e3346edfd068c9ec7650c4ddc3caa38534da325a67497e1f06ca02cc1f0941b7348a3af6d1dca7cd6f2bcb3612ca10e1ec98997e5a  salt-master.confd\n"
                ) 
                (
"324e687e8b0eaccb799b4a719448341a4e09cda3add102890beddaf371ac42957bbc1622f145b2b86420061655bb27f27879302b5b34c6eee1987d2dcae6b8ef  salt-master.initd\n"
                ) 
                (
"0051e13351cef8db81dc075a194bb384723f07d5591b5b4d3f3adf4180afaf7beced470ab79ceca9d1ec0dae62dbd72084eb76af009fc78411a011050a94a2ed  salt-minion.confd\n"
                ) 
                (
"c6634a592c6f3e65dd2b704cb500486bf8004c5b287d4a4d42b09af36ef129c59d6a89f005af058cf7911e8587d927b3db931186569084f13ebaca56f6ef93a0  salt-minion.initd\n"
                ) 
                (
"bafc6ea10cdafd0aef868feb35aecbe4ae6a7dff0ae42862bded85715ad763eb89e1ed27437866a7e5f2b9f7064e3c2a3fb59814487744ba4227238d95cf3818  salt-syndic.confd\n"
                ) 
                (
"d71133e834685304e0167554035ebbc861252f972bbe981cc71e45b70f15d94a28a02a369463c9a641372919689f96b62a0408b14f824ad986d536e52b1e5ec0  salt-syndic.initd"
                )
              )
            }
          spids: [657]
        )
      ]
      spids: [657]
    )
  ]
)