(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (C {<cd>} 
      {
        (DQ 
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: (C {<dirname>} {(DQ ($ Id.VSub_Number 0))})
            right: <Id.Eof_RParen _>
          )
        ) <'/..'>
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shashort='> name:shashort)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<rev-parse>} {<--short> <Id.Lit_Equals '='> <10>} {<HEAD>})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [37]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tag='> name:tag)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<tag>} {<--points-at>} {($ Id.VSub_DollarName shashort)})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [50]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName tag))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'error: this script must be run with a tagged commit checked out'>)}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [61 74]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'version='> name:version)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<cat>} {<VERSION>})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [93]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'majmin='> name:majmin)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<cut>} {<-d.>} {<-f1-2>} {<VERSION>})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [100]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'majminpatch='> name:majminpatch)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<cut>} {<-d->} {<-f1>} {<VERSION>})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [114]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName tag))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <v> ($ Id.VSub_DollarName version))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'error: tagged commit does not match content of VERSION file'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [125 144]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<git>} {<clone>} {<https> <Id.Lit_Colon ':'> <'//github.com/JuliaLang/julia'>} {<-b>} 
      {($ Id.VSub_DollarName tag)} {<julia-> ($ Id.VSub_DollarName version)}
    )
    (C {<cd>} {<julia-> ($ Id.VSub_DollarName version)})
    (C {<make>} {<full-source-dist>})
    (C {<make>} {<light-source-dist>})
    (C {<mv>} 
      {<julia-> (${ Id.VSub_Name version) <Id.Lit_Underscore _> ($ Id.VSub_DollarName shashort) 
        <-full.tar.gz>
      } {<'../julia-'> ($ Id.VSub_DollarName version) <-full.tar.gz>}
    )
    (C {<mv>} 
      {<julia-> (${ Id.VSub_Name version) <Id.Lit_Underscore _> ($ Id.VSub_DollarName shashort) 
        <.tar.gz>
      } {<'../julia-'> ($ Id.VSub_DollarName version) <.tar.gz>}
    )
    (C {<cd>} {<..>})
    (C {<rm>} {<-rf>} {<julia-> ($ Id.VSub_DollarName version)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'julianightlies='> name:julianightlies)
          op: assign_op.Equal
          rhs: {(DQ <'https://julialangnightlies-s3.julialang.org/bin'>)}
          spids: [241]
        )
      ]
      redirects: []
    )
    (C {<curl>} {<-L>} {<-o>} {<julia-> ($ Id.VSub_DollarName version) <-linux-x86_64.tar.gz>} 
      {($ Id.VSub_DollarName julianightlies) <'/linux/x64/'> ($ Id.VSub_DollarName majmin) <'/julia-'> 
        ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-linux64.tar.gz>
      }
    )
    (C {<cp>} {<julia-> ($ Id.VSub_DollarName version) <-linux-x86_64.tar.gz>} 
      {<julia-> ($ Id.VSub_DollarName majmin) <-latest-linux-x86_64.tar.gz>}
    )
    (C {<curl>} {<-L>} {<-o>} {<julia-> ($ Id.VSub_DollarName version) <-linux-i686.tar.gz>} 
      {($ Id.VSub_DollarName julianightlies) <'/linux/x86/'> ($ Id.VSub_DollarName majmin) <'/julia-'> 
        ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-linux32.tar.gz>
      }
    )
    (C {<cp>} {<julia-> ($ Id.VSub_DollarName version) <-linux-i686.tar.gz>} 
      {<julia-> ($ Id.VSub_DollarName majmin) <-latest-linux-i686.tar.gz>}
    )
    (C {<curl>} {<-L>} {<-o>} {<julia-> ($ Id.VSub_DollarName version) <-linux-arm.tar.gz>} 
      {($ Id.VSub_DollarName julianightlies) <'/linux/arm/'> ($ Id.VSub_DollarName majmin) <'/julia-'> 
        ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-linuxarm.tar.gz>
      }
    )
    (C {<cp>} {<julia-> ($ Id.VSub_DollarName version) <-linux-arm.tar.gz>} 
      {<julia-> ($ Id.VSub_DollarName majmin) <-latest-linux-arm.tar.gz>}
    )
    (C {<curl>} {<-L>} {<-o>} {<julia-> ($ Id.VSub_DollarName version) <-linux-ppc64le.tar.gz>} 
      {($ Id.VSub_DollarName julianightlies) <'/linux/ppc64le/'> ($ Id.VSub_DollarName majmin) 
        <'/julia-'> ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-linuxppc64.tar.gz>
      }
    )
    (C {<cp>} {<julia-> ($ Id.VSub_DollarName version) <-linux-ppc64le.tar.gz>} 
      {<julia-> ($ Id.VSub_DollarName majmin) <-latest-linux-ppc64le.tar.gz>}
    )
    (C {<curl>} {<-L>} {<-o>} {(DQ <julia-> ($ Id.VSub_DollarName version) <'-osx10.7 .dmg'>)} 
      {($ Id.VSub_DollarName julianightlies) <'/osx/x64/'> ($ Id.VSub_DollarName majmin) <'/julia-'> 
        ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-osx.dmg>
      }
    )
    (C {<cp>} {(DQ <julia-> ($ Id.VSub_DollarName version) <'-osx10.7 .dmg'>)} 
      {(DQ <julia-> ($ Id.VSub_DollarName majmin) <'-latest-osx10.7 .dmg'>)}
    )
    (C {<curl>} {<-L>} {<-o>} {<julia-> ($ Id.VSub_DollarName version) <-win64.exe>} 
      {($ Id.VSub_DollarName julianightlies) <'/winnt/x64/'> ($ Id.VSub_DollarName majmin) <'/julia-'> 
        ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-win64.exe>
      }
    )
    (C {<cp>} {<julia-> ($ Id.VSub_DollarName version) <-win64.exe>} 
      {<julia-> ($ Id.VSub_DollarName majmin) <-latest-win64.exe>}
    )
    (C {<curl>} {<-L>} {<-o>} {<julia-> ($ Id.VSub_DollarName version) <-win32.exe>} 
      {($ Id.VSub_DollarName julianightlies) <'/winnt/x86/'> ($ Id.VSub_DollarName majmin) <'/julia-'> 
        ($ Id.VSub_DollarName majminpatch) <-> ($ Id.VSub_DollarName shashort) <-win32.exe>
      }
    )
    (C {<cp>} {<julia-> ($ Id.VSub_DollarName version) <-win32.exe>} 
      {<julia-> ($ Id.VSub_DollarName majmin) <-latest-win32.exe>}
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<Id.Lit_LBracket '['>} {<-e>} {<codesign.sh>} {<Id.Lit_RBracket ']'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<'./codesign.sh'>})]
          spids: [470 481]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Pipeline
      children: [
        (C {<shasum>} {<-a>} {<256>} {<julia-> ($ Id.VSub_DollarName version) <Id.Lit_Star '*'>})
        (command.Simple
          words: [{<grep>} {<-v>} {<-e>} {<sha256>} {<-e>} {<md5>} {<-e>} {<asc>}]
          redirects: [
            (redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<julia-> ($ Id.VSub_DollarName version) <.sha256>}
            )
          ]
          more_env: []
          do_fork: T
        )
      ]
      negated: F
      stderr_indices: []
    )
    (command.Pipeline
      children: [
        (C {<md5sum>} {<julia-> ($ Id.VSub_DollarName version) <Id.Lit_Star '*'>})
        (command.Simple
          words: [{<grep>} {<-v>} {<-e>} {<sha256>} {<-e>} {<md5>} {<-e>} {<asc>}]
          redirects: [
            (redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<julia-> ($ Id.VSub_DollarName version) <.md5>}
            )
          ]
          more_env: []
          do_fork: T
        )
      ]
      negated: F
      stderr_indices: []
    )
    (C {<gpg>} {<-u>} {<julia>} {<--armor>} {<--detach-sig>} 
      {<julia-> ($ Id.VSub_DollarName version) <-full.tar.gz>}
    )
    (C {<gpg>} {<-u>} {<julia>} {<--armor>} {<--detach-sig>} 
      {<julia-> ($ Id.VSub_DollarName version) <.tar.gz>}
    )
    (C {<gpg>} {<-u>} {<julia>} {<--armor>} {<--detach-sig>} 
      {<julia-> ($ Id.VSub_DollarName version) <-linux-x86_64.tar.gz>}
    )
    (C {<gpg>} {<-u>} {<julia>} {<--armor>} {<--detach-sig>} 
      {<julia-> ($ Id.VSub_DollarName version) <-linux-i686.tar.gz>}
    )
    (C {<gpg>} {<-u>} {<julia>} {<--armor>} {<--detach-sig>} 
      {<julia-> ($ Id.VSub_DollarName version) <-linux-arm.tar.gz>}
    )
    (C {<gpg>} {<-u>} {<julia>} {<--armor>} {<--detach-sig>} 
      {<julia-> ($ Id.VSub_DollarName version) <-linux-ppc64le.tar.gz>}
    )
    (C {<aws>} {<configure>})
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} {<julia-> ($ Id.VSub_DollarName version) <.sha256>} 
      {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/checksums/'>}
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} {<julia-> ($ Id.VSub_DollarName version) <.md5>} 
      {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/checksums/'>}
    )
    (command.ForEach
      iter_names: [plat]
      iterable: (for_iter.Words words:[{<x86_64>} {<i686>} {<arm>} {<ppc64le>}])
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'platshort='> name:platshort)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {($ Id.VSub_DollarName plat)})
                              (C {<sed>} {<-e>} {(SQ <'s/x86_64/x64/'>)} {<-e>} {(SQ <'s/i686/x86/'>)})
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [705]
                )
              ]
              redirects: []
            )
            (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
              {<julia-> ($ Id.VSub_DollarName version) <-linux-> ($ Id.VSub_DollarName plat) <.tar.gz>} 
              {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/linux/'> ($ Id.VSub_DollarName platshort) <'/'> 
                ($ Id.VSub_DollarName majmin) <'/'>
              }
            )
            (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
              {<julia-> ($ Id.VSub_DollarName version) <-linux-> ($ Id.VSub_DollarName plat) 
                <.tar.gz.asc>
              } 
              {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/linux/'> ($ Id.VSub_DollarName platshort) <'/'> 
                ($ Id.VSub_DollarName majmin) <'/'>
              }
            )
            (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
              {<julia-> ($ Id.VSub_DollarName majmin) <-latest-linux-> ($ Id.VSub_DollarName plat) 
                <.tar.gz>
              } 
              {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/linux/'> ($ Id.VSub_DollarName platshort) <'/'> 
                ($ Id.VSub_DollarName majmin) <'/'>
              }
            )
            (C {<curl>} {<-X>} {<PURGE>} {<-L>} 
              {
                (DQ <'https://julialang-s3.julialang.org/bin/linux/'> ($ Id.VSub_DollarName platshort) 
                  <'/'> ($ Id.VSub_DollarName majmin) <'/julia-'> ($ Id.VSub_DollarName majmin) <-latest-linux-> 
                  ($ Id.VSub_DollarName plat) <.tar.gz>
                )
              }
            )
          ]
        )
      redirects: []
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
      {(DQ <julia-> ($ Id.VSub_DollarName version) <'-osx10.7 .dmg'>)} {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/osx/x64/'> ($ Id.VSub_DollarName majmin) <'/'>}
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
      {(DQ <julia-> ($ Id.VSub_DollarName majmin) <'-latest-osx10.7 .dmg'>)} {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/osx/x64/'> ($ Id.VSub_DollarName majmin) <'/'>}
    )
    (C {<curl>} {<-X>} {<PURGE>} {<-L>} 
      {
        (DQ <'https://julialang-s3.julialang.org/bin/osx/x64/'> ($ Id.VSub_DollarName majmin) 
          <'/julia-'> ($ Id.VSub_DollarName majmin) <'-latest-osx10.7 .dmg'>
        )
      }
    )
    (C {<curl>} {<-X>} {<PURGE>} {<-L>} 
      {
        (DQ <'https://julialang-s3.julialang.org/bin/osx/x64/'> ($ Id.VSub_DollarName majmin) 
          <'/julia-'> ($ Id.VSub_DollarName majmin) <'-latest-osx10.7+.dmg'>
        )
      }
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
      {(DQ <julia-> ($ Id.VSub_DollarName version) <-win64.exe>)} {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/winnt/x64/'> ($ Id.VSub_DollarName majmin) <'/'>}
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
      {(DQ <julia-> ($ Id.VSub_DollarName majmin) <-latest-win64.exe>)} {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/winnt/x64/'> ($ Id.VSub_DollarName majmin) <'/'>}
    )
    (C {<curl>} {<-X>} {<PURGE>} {<-L>} 
      {
        (DQ <'https://julialang-s3.julialang.org/bin/winnt/x64/'> ($ Id.VSub_DollarName majmin) 
          <'/julia-'> ($ Id.VSub_DollarName majmin) <-latest-win64.exe>
        )
      }
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
      {(DQ <julia-> ($ Id.VSub_DollarName version) <-win32.exe>)} {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/winnt/x86/'> ($ Id.VSub_DollarName majmin) <'/'>}
    )
    (C {<aws>} {<s3>} {<cp>} {<--acl>} {<public-read>} 
      {(DQ <julia-> ($ Id.VSub_DollarName majmin) <-latest-win32.exe>)} {<s3> <Id.Lit_Colon ':'> <'//julialang/bin/winnt/x86/'> ($ Id.VSub_DollarName majmin) <'/'>}
    )
    (C {<curl>} {<-X>} {<PURGE>} {<-L>} 
      {
        (DQ <'https://julialang-s3.julialang.org/bin/winnt/x86/'> ($ Id.VSub_DollarName majmin) 
          <'/julia-'> ($ Id.VSub_DollarName majmin) <-latest-win32.exe>
        )
      }
    )
    (C {<echo>} {(DQ <'All files prepared. Attach julia-'> ($ Id.VSub_DollarName version) <.tar.gz>)})
    (C {<echo>} 
      {(DQ <'and julia-'> ($ Id.VSub_DollarName version) <'-full.tar.gz to github releases.'>)}
    )
  ]
)