diff --git a/TaskD04/Makefile b/TaskD04/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/TaskD04/run b/TaskD04/run new file mode 100644 index 0000000..ea35248 --- /dev/null +++ b/TaskD04/run @@ -0,0 +1,8 @@ +#!/usr/bin/python3 + +import sys +import re + +for line in sys.stdin.readlines(): + print(re.sub('(([\D]*[\d]+[\D]+)[\d]+(.*$))', '\\2\\3',line).strip('\n')) + diff --git a/TaskE00/description.txt b/TaskE00/description.txt new file mode 100644 index 0000000..e1ced0f --- /dev/null +++ b/TaskE00/description.txt @@ -0,0 +1,11 @@ +Read a description of a deterministic finite-state automaton in the AT&T format +(without weights) from the file in the first argument. + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +The program is invoked like this: ./run test1.arg < test1.in > test1.out + +POINTS: 3 +DEADLINE: 2020-12-20 23:59:59 diff --git a/TaskE00/test1.arg b/TaskE00/test1.arg new file mode 100644 index 0000000..1e4f452 --- /dev/null +++ b/TaskE00/test1.arg @@ -0,0 +1,16 @@ +0 1 x +1 2 y +2 3 z +0 4 y +0 4 z +1 4 x +1 4 z +2 4 x +2 4 y +3 4 x +3 4 y +3 4 z +4 4 x +4 4 y +4 4 z +3 diff --git a/TaskE00/test1.exp b/TaskE00/test1.exp new file mode 100644 index 0000000..4c1a9bc --- /dev/null +++ b/TaskE00/test1.exp @@ -0,0 +1,9 @@ +NO +YES +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskE00/test1.in b/TaskE00/test1.in new file mode 100644 index 0000000..d82237e --- /dev/null +++ b/TaskE00/test1.in @@ -0,0 +1,9 @@ +xxyz +xyz +xy +zz +xxy +yzx + +x +xyzz diff --git a/TaskE01/description.txt b/TaskE01/description.txt new file mode 100644 index 0000000..0502454 --- /dev/null +++ b/TaskE01/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the previous task. +Create your own FSA description to check whether the word "Hamlet" is in the given line. +Don't use external files like in TaskE00 (description should be included in run file). + +You may restrict the FSA alphabet to characters included in the word "Hamlet" plus "x" and +change all characters different from characters in word "Hamlet" to "x". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 2 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 0/4 diff --git a/TaskE01/shakespeare.exp b/TaskE01/shakespeare.exp new file mode 100644 index 0000000..c78ac86 --- /dev/null +++ b/TaskE01/shakespeare.exp @@ -0,0 +1,169442 @@ +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskE01/shakespeare.in b/TaskE01/shakespeare.in new file mode 120000 index 0000000..0ad4a01 --- /dev/null +++ b/TaskE01/shakespeare.in @@ -0,0 +1 @@ +../TaskA01/shakespeare.in \ No newline at end of file diff --git a/TaskE02/description.txt b/TaskE02/description.txt new file mode 100644 index 0000000..442a472 --- /dev/null +++ b/TaskE02/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the previous task. +Create your own FSA description to check whether the word "Ophelia" is in the given line. +Don't use external files like in TaskE00 (description should be included in run file). + +You may restrict the FSA alphabet to characters included in the word "Ophelia" plus "x" and +change all characters different from characters in word "Ophelia" to "x". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 2 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 1/4 diff --git a/TaskE02/shakespeare.exp b/TaskE02/shakespeare.exp new file mode 100644 index 0000000..e490cfd --- /dev/null +++ b/TaskE02/shakespeare.exp @@ -0,0 +1,169442 @@ +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskE02/shakespeare.in b/TaskE02/shakespeare.in new file mode 120000 index 0000000..0ad4a01 --- /dev/null +++ b/TaskE02/shakespeare.in @@ -0,0 +1 @@ +../TaskA01/shakespeare.in \ No newline at end of file diff --git a/TaskE03/description.txt b/TaskE03/description.txt new file mode 100644 index 0000000..18a0d75 --- /dev/null +++ b/TaskE03/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the previous task. +Create your own FSA description to check whether the word "Juliet" is in the given line. +Don't use external files like in TaskE00 (description should be included in run file). + +You may restrict the FSA alphabet to characters included in the word "Juliet" plus "x" and +change all characters different from characters in word "Juliet" to "x". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 2 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 2/4 diff --git a/TaskE03/shakespeare.exp b/TaskE03/shakespeare.exp new file mode 100644 index 0000000..9dfe0a0 --- /dev/null +++ b/TaskE03/shakespeare.exp @@ -0,0 +1,169442 @@ +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskE03/shakespeare.in b/TaskE03/shakespeare.in new file mode 120000 index 0000000..0ad4a01 --- /dev/null +++ b/TaskE03/shakespeare.in @@ -0,0 +1 @@ +../TaskA01/shakespeare.in \ No newline at end of file diff --git a/TaskE04/description.txt b/TaskE04/description.txt new file mode 100644 index 0000000..38aa53c --- /dev/null +++ b/TaskE04/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the previous task. +Create your own FSA description to check whether the word "Macbeth" is in the given line. +Don't use external files like in TaskE00 (description should be included in run file). + +You may restrict the FSA alphabet to characters included in the word "Macbeth" plus "x" and +change all characters different from characters in word "Macbeth" to "x". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 2 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 3/4 diff --git a/TaskE04/shakespeare.exp b/TaskE04/shakespeare.exp new file mode 100644 index 0000000..764fb70 --- /dev/null +++ b/TaskE04/shakespeare.exp @@ -0,0 +1,169442 @@ +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskE04/shakespeare.in b/TaskE04/shakespeare.in new file mode 120000 index 0000000..0ad4a01 --- /dev/null +++ b/TaskE04/shakespeare.in @@ -0,0 +1 @@ +../TaskA01/shakespeare.in \ No newline at end of file diff --git a/TaskE05/description.txt b/TaskE05/description.txt new file mode 100644 index 0000000..42f14c6 --- /dev/null +++ b/TaskE05/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the TaskE00. +Create your own FSA description to check whether the line contains +date from 1900 to 1999 in format '19XX r.' +Don't use external files like in TaskE00 (description should be included in run file). + +You may restrict the FSA alphabet to all possible characters included in the word "19XX r." plus "x" and +change all irrelevant characters in line to 'x'. + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 2 +DEADLINE: 2020-12-20 23:59:59 diff --git a/TaskE05/polish_wiki_excerpt.exp b/TaskE05/polish_wiki_excerpt.exp new file mode 100644 index 0000000..683de15 --- /dev/null +++ b/TaskE05/polish_wiki_excerpt.exp @@ -0,0 +1,50000 @@ +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +YES +YES +NO +NO +YES +NO +YES +NO +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +YES +YES +YES +YES +NO +NO +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +YES +NO +NO +YES +NO +NO +YES +NO +YES +NO +YES +NO +YES +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +YES +YES +YES +NO +YES +YES +YES +YES +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +YES +YES +NO +YES +YES +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +YES +YES +YES +YES +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +YES +YES +YES +YES +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +YES +NO +YES +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +YES +NO +NO +YES +NO +YES +YES +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +NO +NO +YES +YES +NO +YES +NO +YES +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +YES +NO +YES +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +YES +YES +YES +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +NO +NO +YES +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +YES +NO +YES +NO +NO +YES +YES +YES +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +YES +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +YES +YES +YES +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +YES +YES +YES +YES +YES +YES +YES +NO +YES +NO +NO +NO +YES +YES +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +YES +NO +YES +NO +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +YES +YES +YES +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +NO +NO +YES +YES +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +YES +NO +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +YES +NO +YES +YES +YES +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +YES +YES +YES +NO +YES +YES +YES +YES +YES +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +YES +NO +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +YES +YES +YES +NO +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +YES +NO +YES +YES +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +NO +YES +YES +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +YES +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +YES +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +YES +YES +NO +NO +YES +YES +YES +YES +YES +YES +YES +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +YES +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +YES +NO +YES +YES +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +YES +NO +NO +NO +NO +YES +YES +YES +YES +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +YES +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +YES +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +YES +YES +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +NO +YES +YES +NO +NO +NO +NO +YES +NO +YES +YES +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +NO +NO +YES +YES +NO +YES +YES +NO +NO +NO +YES +NO +NO +YES +NO +YES +NO +NO +NO +NO +NO +YES +YES +NO +NO +YES +YES +YES +NO diff --git a/TaskE05/polish_wiki_excerpt.in b/TaskE05/polish_wiki_excerpt.in new file mode 120000 index 0000000..87eb823 --- /dev/null +++ b/TaskE05/polish_wiki_excerpt.in @@ -0,0 +1 @@ +../TaskA04/polish_wiki_excerpt.in \ No newline at end of file diff --git a/TaskE06/description.txt b/TaskE06/description.txt new file mode 100644 index 0000000..0248a67 --- /dev/null +++ b/TaskE06/description.txt @@ -0,0 +1,13 @@ +Use a deterministic finite-state automaton (FSA) engine from the TaskE00. +Create your own FSA description to check whether the string starts with "01" and ends with "01. +Don't use external files like in TaskE00 (description should be included in run file). + +The alphabet is "0", "1". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 3 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 1/4 diff --git a/TaskE06/test.exp b/TaskE06/test.exp new file mode 100644 index 0000000..484228a --- /dev/null +++ b/TaskE06/test.exp @@ -0,0 +1,14 @@ +YES +NO +YES +NO +YES +NO +NO +YES +NO +NO +NO +NO +NO +NO diff --git a/TaskE06/test.in b/TaskE06/test.in new file mode 100644 index 0000000..c7610dc --- /dev/null +++ b/TaskE06/test.in @@ -0,0 +1,14 @@ +01 +10 +0101 +1010 +011101 +101010 +100010 +0100001 + +00110 +0000 +10101 +0 +1 diff --git a/TaskE07/description.txt b/TaskE07/description.txt new file mode 100644 index 0000000..2324216 --- /dev/null +++ b/TaskE07/description.txt @@ -0,0 +1,13 @@ +Use a deterministic finite-state automaton (FSA) engine from the TaskE00. +Create your own FSA description to check whether the string starts with "10" and ends with "10. +Don't use external files like in TaskE00 (description should be included in run file). + +The alphabet is "0", "1". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 3 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 2/4 diff --git a/TaskE07/test.exp b/TaskE07/test.exp new file mode 100644 index 0000000..939a1ca --- /dev/null +++ b/TaskE07/test.exp @@ -0,0 +1,14 @@ +NO +YES +NO +YES +NO +YES +YES +NO +NO +NO +NO +NO +NO +NO diff --git a/TaskE07/test.in b/TaskE07/test.in new file mode 100644 index 0000000..c7610dc --- /dev/null +++ b/TaskE07/test.in @@ -0,0 +1,14 @@ +01 +10 +0101 +1010 +011101 +101010 +100010 +0100001 + +00110 +0000 +10101 +0 +1 diff --git a/TaskE08/description.txt b/TaskE08/description.txt new file mode 100644 index 0000000..ae98b10 --- /dev/null +++ b/TaskE08/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the TaskE00. +Create your own FSA description to check whether the string contains "0" +even number of times. +Don't use external files like in TaskE00 (description should be included in run file). + +The alphabet is "0", "1". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 3 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 3/4 diff --git a/TaskE08/test.exp b/TaskE08/test.exp new file mode 100644 index 0000000..9a5f7bb --- /dev/null +++ b/TaskE08/test.exp @@ -0,0 +1,14 @@ +NO +NO +YES +YES +YES +NO +YES +NO +YES +NO +YES +YES +NO +YES diff --git a/TaskE08/test.in b/TaskE08/test.in new file mode 100644 index 0000000..c7610dc --- /dev/null +++ b/TaskE08/test.in @@ -0,0 +1,14 @@ +01 +10 +0101 +1010 +011101 +101010 +100010 +0100001 + +00110 +0000 +10101 +0 +1 diff --git a/TaskE09/description.txt b/TaskE09/description.txt new file mode 100644 index 0000000..ecd22f0 --- /dev/null +++ b/TaskE09/description.txt @@ -0,0 +1,14 @@ +Use a deterministic finite-state automaton (FSA) engine from the TaskE00. +Create your own FSA description to check whether the string contains "0" +odd number of times. +Don't use external files like in TaskE00 (description should be included in run file). + +The alphabet is "0", "1". + +Read strings from the standard input. +If a string is accepted by the +automaton, write YES, otherwise- write NO. + +POINTS: 3 +DEADLINE: 2020-12-20 23:59:59 +REMAINDER: 0/4 diff --git a/TaskE09/test.exp b/TaskE09/test.exp new file mode 100644 index 0000000..d40ad22 --- /dev/null +++ b/TaskE09/test.exp @@ -0,0 +1,14 @@ +YES +YES +NO +NO +NO +YES +NO +YES +NO +YES +NO +NO +YES +NO diff --git a/TaskE09/test.in b/TaskE09/test.in new file mode 100644 index 0000000..c7610dc --- /dev/null +++ b/TaskE09/test.in @@ -0,0 +1,14 @@ +01 +10 +0101 +1010 +011101 +101010 +100010 +0100001 + +00110 +0000 +10101 +0 +1 diff --git a/blend.sh b/blend.sh index d92ec26..84d00d4 100755 --- a/blend.sh +++ b/blend.sh @@ -21,7 +21,7 @@ cp "${PREFIX}/count-points.pl" arena/ cp "${PREFIX}/overrides.txt" arena/ cp "${PREFIX}/Makefile" arena/ -for TX in X01 X02 X03 A01 B01 B02 B03 B04 D00 D01 D02 D03 D04 D05 # X04 X05 X06 X07 X08 B00 B01 B02 B03 B04 B05 B06 C00 C01 C02 C03 C04 C05 C06 E01 E02 E03 E04 E05 E06 E07 # X05 X06 X07 X08 X09 X10 B03 B04 X10 +for TX in X01 X02 X03 A01 B01 B02 B03 B04 D00 D01 D02 D03 D04 D05 E00 # X04 X05 X06 X07 X08 B00 B01 B02 B03 B04 B05 B06 C00 C01 C02 C03 C04 C05 C06 E01 E02 E03 E04 E05 E06 E07 # X05 X06 X07 X08 X09 X10 B03 B04 X10 do mkdir -p arena/Task$TX done diff --git a/count-points.pl b/count-points.pl index b0d37aa..b0e39b6 100755 --- a/count-points.pl +++ b/count-points.pl @@ -52,7 +52,7 @@ sub update_total { my $section = get_section($report_file_path); - if (defined $section && ($section ne 'A' && $section ne 'B' && $section ne 'C' && $section ne 'D' )) { + if (defined $section && ($section ne 'A' && $section ne 'B' && $section ne 'C' && $section ne 'D' && $section ne 'E')) { if ($section_points{$section} > 0) { print "UWAGA: TYLKO ZADANIE Z NAJWIĘKSZĄ LICZBĄ PUNKTÓW BĘDZIE LICZONE DLA DZIAŁU $section\n"; } @@ -168,7 +168,7 @@ sub check_if_the_right_task { } } - return 0 if $task_id =~ m{^TaskE} and not is_estudent($student_id); + # return 0 if $task_id =~ m{^TaskE} and not is_estudent($student_id); return 0 if $task_id =~ m{^Task[AC]} and is_estudent($student_id); diff --git a/overrides.txt b/overrides.txt index 2393340..0750d74 100644 --- a/overrides.txt +++ b/overrides.txt @@ -3,3 +3,4 @@ 444469 A02 2 http://filipg-jenkins.wmi.amu.edu.pl:8090/job/djfz-2020-s444469/5/console 444469 A03 2 http://filipg-jenkins.wmi.amu.edu.pl:8090/job/djfz-2020-s444469/5/console 444469 X03 1 http://filipg-jenkins.wmi.amu.edu.pl:8090/job/djfz-2020-s444469/5/console +444523 B01 1 TS