Gerald -
Your loop condition is:
The ! symbol in front of found needs to be read as "not"; if "not found" is true, then "found" must be false.
So your loop should continue while (index < notes.size()) evaluates "true" and not found evaluates "true" (which means that found evaluates as false).
The negations can be tricky, especially when combined with other conditions.
Have fun!