[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:[{:}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]