(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<bitcoin>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<0.15.0.1>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_ver)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name pkgver>
                suffix_op: (suffix_op.PatSub pat:{<_>} replace:{} replace_mode:Id.Undefined_Tok)
              )
            }
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<3>}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'decentralized P2P electronic cash system'>)}
          spids: [23]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://www.bitcoin.org/'>)}
          spids: [28]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <'all !armhf'>)}
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <MIT>)}
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'autoconf automake libtool boost-dev libressl-dev db-dev miniupnpc-dev\n'> 
                <
'\tqt5-qtbase-dev qt5-qttools-dev protobuf-dev libqrencode-dev libevent-dev chrpath'
                >
              )
            }
          spids: [43]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:install)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'.post-install '> 
                ($ Id.VSub_DollarName '$pkgname') <'.post-upgrade '> ($ Id.VSub_DollarName '$pkgname') <.pre-install>
              )
            }
          spids: [49]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-dev '> ($ Id.VSub_DollarName '$pkgname') <'-qt '> 
                ($ Id.VSub_DollarName '$pkgname') <'-cli '> ($ Id.VSub_DollarName '$pkgname') <'-tx '> ($ Id.VSub_DollarName '$pkgname') <'-tests '> 
                ($ Id.VSub_DollarName '$pkgname') <'-bench\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <-doc>
              )
            }
          spids: [59]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$_ver') 
                <'.tar.gz::https://github.com/bitcoin/bitcoin/archive/v'> (${ Id.VSub_Name _ver) <'.tar.gz\n'> <'\tssize_t.patch\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') 
                <'.initd\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'.conf\n'> <'\t'>
              )
            }
          spids: [78]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$srcdir') <'/bitcoin-'> ($ Id.VSub_DollarName '$_ver'))}
          spids: [98]
        )
      ]
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<'./autogen.sh'>})
            (C {<'./configure'>} {<--build> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$CBUILD')} 
              {<--host> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$CHOST')} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} 
              {<--with-incompatible-bdb>} {<--with-gui> <Id.Lit_Equals '='> <qt5>} {<--with-utils>} {<--disable-ccache>} {<--disable-static>} 
              {<--enable-hardening>}
            )
            (C {<make>})
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<make>} {<install>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir'))})
            (C {<install>} {<-m755>} {<-D>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <.initd>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/init.d/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<install>} {<-m600>} {<-D>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <.conf>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <.conf>}
            )
            (C {<rm>} {<-f>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/lib/'> <Id.Lit_Star '*'> <.la>}
            )
          ]
        )
    )
    (command.ShFunction
      name: qt
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'Bitcoin with a Qt frontend & QR Code support'>)}
                  spids: [267]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>})
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/'> ($ Id.VSub_DollarName '$pkgname') 
                <-qt>
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: cli
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'Bitcoin CLI'>)}
                  spids: [307]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>})
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/'> ($ Id.VSub_DollarName '$pkgname') 
                <-cli>
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: tx
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'Bitcoin TX (Transaction Tool)'>)}
                  spids: [347]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>})
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/'> ($ Id.VSub_DollarName '$pkgname') 
                <-tx>
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: tests
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'Bitcoin & Bitcoin-QT Unit Tests)'>)}
                  spids: [387]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>})
            (C {<chrpath>} {<-d>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/test_'> 
                ($ Id.VSub_DollarName '$pkgname')
              }
            )
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/test_'> 
                ($ Id.VSub_DollarName '$pkgname') <-qt>
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin/'>}
            )
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/test_'> 
                ($ Id.VSub_DollarName '$pkgname')
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: bench
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'Bitcoin Benchmarking Tools)'>)}
                  spids: [452]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>})
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/bench_'> 
                ($ Id.VSub_DollarName '$pkgname')
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: dev
      body: 
        (BraceGroup
          children: [
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr'>})
            (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/lib'>} 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/'>}
            )
            (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/include'>} 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [(C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (C {<make>} {<check>})]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'2b325be1d4a1ddaa518a932314419aa9493fcd0c86c9402d360391595e25e3b9a3b07098a20122c16cb0c92cec82a42ad782ed70198c43b87dca9cf4b91ff56f  bitcoin-0.15.0.1.tar.gz\n'
                > 
                <
'98aa5ad81bdb4ae961b791bc978c39117cdf2d83c2181f92bebbb0db107d9b6e86eda265fb3f93ff8a5ca8a7754d7148818b98095d57201dff9363d60b97e7dd  ssize_t.patch\n'
                > 
                <
'71e5f3b5079a22b6ddecfad89363fc642d5ea7da18f1203057f626d214734467f4b933b839c269401be7af2c3dcc01afcb3b98198b7d580c56d8740b34451558  bitcoin.initd\n'
                > 
                <
'a31210d8db76c5a9b614a6de756c1678c0344898565ac3e5d6a34ac1bed66aec4964f1dc874294bc978f53b0e961df921655f7309df19b66c90aa6bd40379a09  bitcoin.conf'
                >
              )
            }
          spids: [550]
        )
      ]
    )
  ]
)