# Python Middleware
if (type == exact) {
if (type != exact) {
   setupRequired(utils -j g8956d74c4f+4d0caed120)
   setupRequired(sconsUtils -j g9e4288ad24)
   setupRequired(sphinxutils -j gea51db0f99+afb4790f61)
   setupRequired(daf_butler -j g3b0764e602+d12b3ad526)
   setupRequired(sphgeom -j g04536d8304+afb4790f61)
   setupRequired(resources -j g0ed9cbdc82+d7b0bd4da5)
   setupRequired(pipe_base -j g6cec3c9704+ea0b1ae81f)
   setupRequired(pex_config -j ge80df9fc40+4231e0532e)
   setupOptional(daf_base -j g8ea07a8fe4+ec70b78035)
   setupRequired(cpputils -j g87389fa792+2df283593c)
   setupRequired(base -j g53246c7159+afb4790f61)
   setupRequired(pex_exceptions -j g786e29fd12+c90741701a)
   setupRequired(astro_metadata_translator -j g36c86f07e0+4231e0532e)
   setupRequired(afw -j g714e0ed6de+196fb0684f)
   setupRequired(geom -j g19811a7679+8d3e741b9f)
   setupRequired(log -j geaed405ab2+d7b0bd4da5)
   setupRequired(astshim -j gf5dcc679e7+dafe91c9d6)
}
} else {
   if (type == exact) {
      setupRequired(utils           -j g8956d74c4f+4d0caed120)
      setupRequired(sconsUtils      -j g9e4288ad24)
      setupRequired(sphinxutils     -j gea51db0f99+afb4790f61)
      setupRequired(daf_butler      -j g3b0764e602+d12b3ad526)
      setupRequired(sphgeom         -j g04536d8304+afb4790f61)
      setupRequired(resources       -j g0ed9cbdc82+d7b0bd4da5)
      setupRequired(pipe_base       -j g6cec3c9704+ea0b1ae81f)
      setupRequired(pex_config      -j ge80df9fc40+4231e0532e)
      setupOptional(daf_base        -j g8ea07a8fe4+ec70b78035)
      setupRequired(cpputils        -j g87389fa792+2df283593c)
      setupRequired(base            -j g53246c7159+afb4790f61)
      setupRequired(pex_exceptions  -j g786e29fd12+c90741701a)
      setupRequired(astro_metadata_translator -j g36c86f07e0+4231e0532e)
      setupRequired(afw             -j g714e0ed6de+196fb0684f)
      setupRequired(geom            -j g19811a7679+8d3e741b9f)
      setupRequired(log             -j geaed405ab2+d7b0bd4da5)
      setupRequired(astshim         -j gf5dcc679e7+dafe91c9d6)
   } else {
      setupRequired(utils g8956d74c4f+4d0caed120 [>= g8956d74c4f+4d0caed120])
      setupRequired(daf_butler g3b0764e602+d12b3ad526 [>= g3b0764e602+d12b3ad526])
      setupRequired(pipe_base g6cec3c9704+ea0b1ae81f [>= g6cec3c9704+ea0b1ae81f])
      setupRequired(resources g0ed9cbdc82+d7b0bd4da5 [>= g0ed9cbdc82+d7b0bd4da5])
      setupRequired(astro_metadata_translator g36c86f07e0+4231e0532e [>= g36c86f07e0+4231e0532e])
      setupRequired(pex_config ge80df9fc40+4231e0532e [>= ge80df9fc40+4231e0532e])
      
      # LSST C++.
      setupRequired(daf_base g8ea07a8fe4+ec70b78035 [>= g8ea07a8fe4+ec70b78035])
      setupRequired(afw g714e0ed6de+196fb0684f [>= g714e0ed6de+196fb0684f])
      setupRequired(geom g19811a7679+8d3e741b9f [>= g19811a7679+8d3e741b9f])
      setupRequired(pex_exceptions g786e29fd12+c90741701a [>= g786e29fd12+c90741701a])
      setupOptional(log geaed405ab2+d7b0bd4da5 [>= geaed405ab2+d7b0bd4da5])
   }
}
envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
envPrepend(PATH, ${PRODUCT_DIR}/bin)
