3 filename=${1:-input.txt}
 
   8 IFS="," read -u 3 -a orig_data
 
  14     data=("${orig_data[@]}")
 
  18     while [ $pos -le ${#data[@]} ]; do
 
  19         loc1=${data[$((pos+1))]}
 
  20         loc2=${data[$((pos+2))]}
 
  21         res_loc=${data[$((pos+3))]}
 
  24                 data[$res_loc]=$((${data[$loc1]}+${data[$loc2]}))
 
  27                 data[$res_loc]=$((${data[$loc1]}*${data[$loc2]}))
 
  33                 echo "Invalid opcode: ${data[$pos]} at position $pos"
 
  42 echo "Part 1: $(run_program 12 2)"
 
  44 desired_output=19690720
 
  46 for (( noun=0; noun < 100; noun++)); do
 
  47     for (( verb=0; verb < 100; verb++)); do
 
  48         if [ $(run_program $noun $verb) -eq $desired_output ]; then
 
  49             echo "Part 2: $((noun * 100 + $verb)) $noun, $verb"